From 6f057ecd9343d28b09a4ebba05998b3b57b99d4c Mon Sep 17 00:00:00 2001 From: Robi Meier Date: Sat, 16 Mar 2024 02:40:31 +0100 Subject: [PATCH] Fix symlink problem - add missing files --- .post_startup_env.EXAMPLE | 4 +- .system_health_check_env.EXAMPLE | 4 +- .zfs_health_check_env.EXAMPLE | 2 +- post_startup.sh | 66 +++++++++++++++++++++++++++++++- run-before-shutdown.service | 13 ++++++- 5 files changed, 84 insertions(+), 5 deletions(-) mode change 120000 => 100755 .post_startup_env.EXAMPLE mode change 120000 => 100644 .system_health_check_env.EXAMPLE mode change 120000 => 100644 .zfs_health_check_env.EXAMPLE mode change 120000 => 100755 post_startup.sh mode change 120000 => 100644 run-before-shutdown.service diff --git a/.post_startup_env.EXAMPLE b/.post_startup_env.EXAMPLE deleted file mode 120000 index 114b036..0000000 --- a/.post_startup_env.EXAMPLE +++ /dev/null @@ -1 +0,0 @@ -/home/robin/.post_startup_env \ No newline at end of file diff --git a/.post_startup_env.EXAMPLE b/.post_startup_env.EXAMPLE new file mode 100755 index 0000000..3eb7c36 --- /dev/null +++ b/.post_startup_env.EXAMPLE @@ -0,0 +1,3 @@ +DOCKER_HOME=/mnt/trident/docker +DOCKERS_TO_START=nextcloud,gitea,immich +DOCKERS_TO_RESTART=privatebin diff --git a/.system_health_check_env.EXAMPLE b/.system_health_check_env.EXAMPLE deleted file mode 120000 index aa08efe..0000000 --- a/.system_health_check_env.EXAMPLE +++ /dev/null @@ -1 +0,0 @@ -.system_health_check_env \ No newline at end of file diff --git a/.system_health_check_env.EXAMPLE b/.system_health_check_env.EXAMPLE new file mode 100644 index 0000000..cad1d3d --- /dev/null +++ b/.system_health_check_env.EXAMPLE @@ -0,0 +1,3 @@ +RAM_LIMIT=90 +CPU_LIMIT=90 +TEMP_LIMIT=85 diff --git a/.zfs_health_check_env.EXAMPLE b/.zfs_health_check_env.EXAMPLE deleted file mode 120000 index 79d0d31..0000000 --- a/.zfs_health_check_env.EXAMPLE +++ /dev/null @@ -1 +0,0 @@ -.zfs_health_check_env \ No newline at end of file diff --git a/.zfs_health_check_env.EXAMPLE b/.zfs_health_check_env.EXAMPLE new file mode 100644 index 0000000..871c3c1 --- /dev/null +++ b/.zfs_health_check_env.EXAMPLE @@ -0,0 +1 @@ +MONITORED_DATASETS="trident/media trident/private trident/qbli" diff --git a/post_startup.sh b/post_startup.sh deleted file mode 120000 index 1ff690e..0000000 --- a/post_startup.sh +++ /dev/null @@ -1 +0,0 @@ -/home/robin/post_startup.sh \ No newline at end of file diff --git a/post_startup.sh b/post_startup.sh new file mode 100755 index 0000000..b978a7c --- /dev/null +++ b/post_startup.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +set -o allexport +source .post_startup_env +set +o allexport + +check_datasets_to_unlock () { + local num_datasets_to_unlock=0 + for dataset in $(zfs list -H -p -o name,encryptionroot | awk -F "\t" '{if ($1 == $2) { print $1 }}') + do + if [ "$(zfs get -H -p -o value keylocation "$dataset")" = "prompt" ] && [ "$(zfs get -H -p -o value keystatus "$dataset")" = "unavailable" ] + then + local num_datasets_to_unlock=$((num_datasets_to_unlock+1)) + fi + done + return $num_datasets_to_unlock +} + +# /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// + +echo "Checking for locked datasets..." +echo +while true; do + check_datasets_to_unlock + datasets_to_unlock=$? + + sleep 1 + + if [[ "$datasets_to_unlock" -eq "0" ]]; then + echo "All datasets have been unlocked." + echo + + break + else + echo "There are $datasets_to_unlock dataset(s) to unlock:" + echo + + sudo /usr/bin/zfs mount -a -l + echo + fi +done +echo + + +echo "Starting relevant docker containers..." +echo +sleep 1 +for docker_folder in ${DOCKERS_TO_START//,/ } +do + sudo --user=docker /usr/bin/docker compose --file $DOCKER_HOME/$docker_folder/docker-compose.yml up -d + echo +done +echo + +echo "Restarting relevant docker containers..." +echo +sleep 1 +for docker_folder in ${DOCKERS_TO_RESTART//,/ } +do + sudo --user=docker /usr/bin/docker compose --file $DOCKER_HOME/$docker_folder/docker-compose.yml restart + echo +done +echo + +echo "Completed post startup script." diff --git a/run-before-shutdown.service b/run-before-shutdown.service deleted file mode 120000 index 582751d..0000000 --- a/run-before-shutdown.service +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/shutdown.target.wants/run-before-shutdown.service \ No newline at end of file diff --git a/run-before-shutdown.service b/run-before-shutdown.service new file mode 100644 index 0000000..14911e2 --- /dev/null +++ b/run-before-shutdown.service @@ -0,0 +1,12 @@ +[Unit] +Description=Run before shutdown service +DefaultDependencies=no +Before=shutdown.target + +[Service] +Type=oneshot +ExecStart=/root/scripts/telegram_notification.sh "[SHUTDOWN] System going down" +TimeoutStartSec=0 + +[Install] +WantedBy=shutdown.target