From 937fe0142d2a3c93b6d44ece096c3a4cc68f4b5e Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Sep 2023 14:33:20 +0200 Subject: [PATCH 01/26] =?UTF-8?q?mount=20unabh=C3=A4ngig=20von=20der=20cli?= =?UTF-8?q?entmaschine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/mount_edi.sh | 4 +++- scripts/mount_garrus.sh | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/mount_edi.sh b/scripts/mount_edi.sh index 9ed5648..8e8b006 100755 --- a/scripts/mount_edi.sh +++ b/scripts/mount_edi.sh @@ -3,4 +3,6 @@ set -euo pipefail source /sync/scripts/mount_general.sh -sshMount edi edi fabian FabisDokumente +user=$(whoami) + +sshMount edi edi $user FabisDokumente diff --git a/scripts/mount_garrus.sh b/scripts/mount_garrus.sh index 1f99015..5186a33 100755 --- a/scripts/mount_garrus.sh +++ b/scripts/mount_garrus.sh @@ -3,4 +3,6 @@ set -euo pipefail source /sync/scripts/mount_general.sh -sshMount fabian garrus fabian FabisDokumente media Filme +user=$(whoami) + +sshMount fabian garrus $user FabisDokumente media Filme From afbfeef4d2c6d8c3c91dd849737eefbbafa4b376 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Sep 2023 14:43:11 +0200 Subject: [PATCH 02/26] =?UTF-8?q?Revert=20"mount=20unabh=C3=A4ngig=20von?= =?UTF-8?q?=20der=20clientmaschine"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 937fe0142d2a3c93b6d44ece096c3a4cc68f4b5e. --- scripts/mount_edi.sh | 4 +--- scripts/mount_garrus.sh | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/scripts/mount_edi.sh b/scripts/mount_edi.sh index 8e8b006..9ed5648 100755 --- a/scripts/mount_edi.sh +++ b/scripts/mount_edi.sh @@ -3,6 +3,4 @@ set -euo pipefail source /sync/scripts/mount_general.sh -user=$(whoami) - -sshMount edi edi $user FabisDokumente +sshMount edi edi fabian FabisDokumente diff --git a/scripts/mount_garrus.sh b/scripts/mount_garrus.sh index 5186a33..1f99015 100755 --- a/scripts/mount_garrus.sh +++ b/scripts/mount_garrus.sh @@ -3,6 +3,4 @@ set -euo pipefail source /sync/scripts/mount_general.sh -user=$(whoami) - -sshMount fabian garrus $user FabisDokumente media Filme +sshMount fabian garrus fabian FabisDokumente media Filme From 784818b510b70a48eec21f2aa5b1fa251246bfd4 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Sep 2023 14:43:44 +0200 Subject: [PATCH 03/26] =?UTF-8?q?mount=20unabh=C3=A4ngig=20der=20clientmas?= =?UTF-8?q?chine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/mount_general.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/mount_general.sh b/scripts/mount_general.sh index 6e87eba..8519483 100644 --- a/scripts/mount_general.sh +++ b/scripts/mount_general.sh @@ -2,10 +2,13 @@ set -euo pipefail sshMount () { + clientUser=$(whoami); + serverUser=$1; + serverHost=$2; + shift 2; args=($@) - args=(${args[@]:2}) for ((i=0; i < ${#args[@]}; i=i + 2)); do - sshfs $1@$2:/citadel/${args[$i]}/ /home/fabian/${args[$i + 1]}/ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=8 + sshfs ${serverUser}@${serverHost}:/citadel/${args[$i]}/ /home/${clientUser}/${args[$i + 1]}/ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=8 done } From e2f4267b7a6c805d23aee8871b626ce51f431047 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 24 Sep 2023 15:11:14 +0200 Subject: [PATCH 04/26] fixed output --- scripts/backup_garrus.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/backup_garrus.sh b/scripts/backup_garrus.sh index aac6f07..c8e24bb 100755 --- a/scripts/backup_garrus.sh +++ b/scripts/backup_garrus.sh @@ -29,9 +29,9 @@ fi ### upload backup ### ##################### -echo $'upload of backup still manual for now.\nplease execute the following commands:' +echo 'upload of backup still manual for now.\nplease execute the following commands:' echo 'su garrus' -echo 'sd rsync_backup $BACKUP_DIR/ /citadel/backup/garrus/' +echo "sd rsync_backup $BACKUP_DIR/ /citadel/backup/garrus/" exit 0 su garrus From 0848db107ca7d166265f31b4baaefe895d64100a Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:40:05 +0100 Subject: [PATCH 05/26] updated edi backup script --- scripts/backup_edi.sh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/scripts/backup_edi.sh b/scripts/backup_edi.sh index d1497f4..434ea39 100755 --- a/scripts/backup_edi.sh +++ b/scripts/backup_edi.sh @@ -11,25 +11,26 @@ shopt -s expand_aliases # make aliases work BACKUP_DIR=/sync/backup BACKUP_DIR_HOME=$BACKUP_DIR/home -if [[ !($HOME/.bash_aliases_local -ef $BACKUP_DIR_HOME/.bash_aliases_local) ]]; then - ln $HOME/.bash_aliases_local $BACKUP_DIR_HOME/.bash_aliases_local -fi -rsync_backup --link-dest="$HOME/.ssh/" $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ +rsync_backup $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc -sd rsync_backup --link-dest="/etc/ddclient/" /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ -sd rsync_backup --link-dest="/etc/letsencrypt/" /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ -sd rsync_backup --link-dest="/etc/nginx/" /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ -sd rsync_backup --link-dest="/etc/ssh/" /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ -sd rsync_backup --link-dest="/etc/wireguard/" /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ -if [[ !(/etc/ddclient.conf -ef $BACKUP_DIR_ROOT/ddclient.conf) ]]; then - ln /etc/ddclient.conf $BACKUP_DIR_ROOT/ddclient.conf -fi +sd rsync_backup /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ +sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ +sd rsync_backup /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ +sd rsync_backup /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ +sd rsync_backup /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ +sd rsync_backup /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ +sd rsync_backup /etc/hosts $BACKUP_DIR_ROOT/ +sd rsync_backup /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ ##################### ### upload backup ### ##################### +if [[ "$1" == "--noupload" ]]; then + exit 0; +fi + sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" --filter="P /home/docker" /sync/backup/ fabian@garrus:/citadel/backup/edi/ sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" /home/edi/docker/ fabian@garrus:/citadel/backup/edi/home/docker/ From c926e32cda3235556f289d33ae93513842755469 Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:43:43 +0100 Subject: [PATCH 06/26] accomodate for filenames with e.g.spaces --- scripts/reencode_audio.sh | 2 +- scripts/reencode_m4a.sh | 2 +- scripts/transcode_opus.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/reencode_audio.sh b/scripts/reencode_audio.sh index 814eb43..511ea6d 100755 --- a/scripts/reencode_audio.sh +++ b/scripts/reencode_audio.sh @@ -5,7 +5,7 @@ set -euo pipefail dir="$(pwd)" dest=${dir%/*}/${dir##*/}_reencode if [[ !(-d $dest) ]]; then - mkdir $dest + mkdir "$dest" fi for file in ./*.$1; do diff --git a/scripts/reencode_m4a.sh b/scripts/reencode_m4a.sh index 38e1bcc..8ddc742 100755 --- a/scripts/reencode_m4a.sh +++ b/scripts/reencode_m4a.sh @@ -21,7 +21,7 @@ fi dir="$(pwd)" dest=${dir%/*}/${dir##*/}_reencode if [[ !(-d $dest) ]]; then - mkdir $dest + mkdir "$dest" fi for file in ./*.m4a; do diff --git a/scripts/transcode_opus.sh b/scripts/transcode_opus.sh index 8ca6e3a..f3da181 100755 --- a/scripts/transcode_opus.sh +++ b/scripts/transcode_opus.sh @@ -16,7 +16,7 @@ done dir="$(pwd)" dest=${dir%/*}/${dir##*/}_ogg if [[ !(-d $dest) ]]; then - mkdir $dest + mkdir "$dest" fi for file in ./*.$file_suffix; do From 43a70bb9ded053b130802946d3e7fc886abfeb13 Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:49:21 +0100 Subject: [PATCH 07/26] updated settings --- .../sublime-text-3/Packages/User/Preferences.sublime-settings | 1 + 1 file changed, 1 insertion(+) diff --git a/home_external/.config/sublime-text-3/Packages/User/Preferences.sublime-settings b/home_external/.config/sublime-text-3/Packages/User/Preferences.sublime-settings index 22fac81..ec5cd32 100644 --- a/home_external/.config/sublime-text-3/Packages/User/Preferences.sublime-settings +++ b/home_external/.config/sublime-text-3/Packages/User/Preferences.sublime-settings @@ -44,4 +44,5 @@ "use_tab_stops": false, "word_wrap": true, "wrap_width": 120, + "index_files": true, } From 3820ea02979155243c62af6113d99b5463f55013 Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:50:08 +0100 Subject: [PATCH 08/26] updated more or less common characters that could need escaping --- scripts/escapeFilenames.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/escapeFilenames.sh b/scripts/escapeFilenames.sh index d0c350f..e41eb3e 100755 --- a/scripts/escapeFilenames.sh +++ b/scripts/escapeFilenames.sh @@ -11,6 +11,8 @@ replacements[':']='_'; replacements["'"]='_'; replacements['(']='_'; replacements[')']='_'; +replacements['[']='_'; +replacements[']']='_'; while [[ $# > 0 ]]; do replacements["$1"]="$2"; shift 2; From 34baf7e029264c201df3ed5d9d57e1e9ad3a901d Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:50:34 +0100 Subject: [PATCH 09/26] simplified finding the home dir --- scripts/mount_general.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/mount_general.sh b/scripts/mount_general.sh index 8519483..1a16264 100644 --- a/scripts/mount_general.sh +++ b/scripts/mount_general.sh @@ -2,13 +2,12 @@ set -euo pipefail sshMount () { - clientUser=$(whoami); serverUser=$1; serverHost=$2; shift 2; args=($@) for ((i=0; i < ${#args[@]}; i=i + 2)); do - sshfs ${serverUser}@${serverHost}:/citadel/${args[$i]}/ /home/${clientUser}/${args[$i + 1]}/ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=8 + sshfs ${serverUser}@${serverHost}:/citadel/${args[$i]}/ $HOME/${args[$i + 1]}/ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=8 done } From d79688f50fca3711d181d2d671f4dc801e0922a2 Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:51:11 +0100 Subject: [PATCH 10/26] new script for easier transcoding --- scripts/transcode_flac.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 scripts/transcode_flac.sh diff --git a/scripts/transcode_flac.sh b/scripts/transcode_flac.sh new file mode 100755 index 0000000..161499c --- /dev/null +++ b/scripts/transcode_flac.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +set -euo pipefail + +# evaluate options through given arguments +file_suffix='wav' +map= +while [[ $# > 0 ]]; do + case $1 in + -t | --type) file_suffix=$2; shift 2;; + -map ) map='-map 0:0'; shift;; + * ) break ;; # Anything else stops command line processing. + esac +done + +# ensure existence of destination folder +dir="$(pwd)" +dest=${dir%/*}/${dir##*/}_flac +if [[ !(-d $dest) ]]; then + mkdir "$dest" +fi + +for file in ./*.$file_suffix; do + echo "ffmpeg -i '$file' -c:a flac $map '$dest/${file%$file_suffix}flac'"; + ffmpeg -i "$file" -c:a flac $map "$dest/${file%$file_suffix}flac"; +done From 91d3d1d98d95f971e5efde065e8a336e6d50c78a Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 15:51:40 +0100 Subject: [PATCH 11/26] new script for easy archiving and compression and reversal of both --- scripts/archive_and_compress.sh | 3 +++ scripts/decompress_and_unarchive.sh | 4 ++++ 2 files changed, 7 insertions(+) create mode 100755 scripts/archive_and_compress.sh create mode 100755 scripts/decompress_and_unarchive.sh diff --git a/scripts/archive_and_compress.sh b/scripts/archive_and_compress.sh new file mode 100755 index 0000000..1386094 --- /dev/null +++ b/scripts/archive_and_compress.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +source=${1%/}; # cut off trailing "/" +tar cfv $source.tar $source && xz $source.tar; diff --git a/scripts/decompress_and_unarchive.sh b/scripts/decompress_and_unarchive.sh new file mode 100755 index 0000000..b0f34c2 --- /dev/null +++ b/scripts/decompress_and_unarchive.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +source=$1; +archive=${source%.xz}; # cut off trailing ".xz" +unxz $source && tar xfv $archive From 707b581b88a6d04846196e2ef9c1a56a2171162a Mon Sep 17 00:00:00 2001 From: fabian Date: Thu, 18 Jan 2024 16:15:59 +0100 Subject: [PATCH 12/26] updated config --- root_external/etc/ssh/sshd_config | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/root_external/etc/ssh/sshd_config b/root_external/etc/ssh/sshd_config index e414d3f..95ca100 100644 --- a/root_external/etc/ssh/sshd_config +++ b/root_external/etc/ssh/sshd_config @@ -63,10 +63,6 @@ PasswordAuthentication no # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) -# FIXME! outdated/ replaced by KbdInteractiveAuthentication? -ChallengeResponseAuthentication no - -# Change to no to disable s/key passwords KbdInteractiveAuthentication no # Kerberos options @@ -86,7 +82,7 @@ KbdInteractiveAuthentication no # be allowed through the KbdInteractiveAuthentication and # PasswordAuthentication. Depending on your PAM configuration, # PAM authentication via KbdInteractiveAuthentication may bypass -# the setting of "PermitRootLogin without-password". +# the setting of "PermitRootLogin prohibit-password". # If you just want the PAM account and session checks to run without # PAM authentication, then enable this but set PasswordAuthentication # and KbdInteractiveAuthentication to 'no'. @@ -122,10 +118,10 @@ PrintMotd no # pam does that AcceptEnv LANG LC_* # override default of no subsystems -# DEACTIVATED because no need for sftp and differences between debian and arch # debian Subsystem sftp /usr/lib/openssh/sftp-server # arch +# DEACTIVATED because no need for sftp and differences between debian and arch # Subsystem sftp /usr/lib/ssh/sftp-server # Example of overriding settings on a per-user basis From 36e122b62c7093da41e63c41ccecd4d2c7fafb20 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Mar 2024 14:01:36 +0100 Subject: [PATCH 13/26] improved/ modernised "ex"-function --- home_external/.bashrc | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/home_external/.bashrc b/home_external/.bashrc index 1b5d147..2ff28c1 100644 --- a/home_external/.bashrc +++ b/home_external/.bashrc @@ -186,26 +186,29 @@ colours() { # ex - archive extractor # usage: ex -ex () -{ - if [ -f $1 ] ; then - case $1 in - *.tar.bz2) tar xjf $1 ;; - *.tar.gz) tar xzf $1 ;; - *.bz2) bunzip2 $1 ;; - *.rar) unrar x $1 ;; - *.gz) gunzip $1 ;; - *.tar) tar xf $1 ;; - *.tbz2) tar xjf $1 ;; - *.tgz) tar xzf $1 ;; - *.zip) unzip $1 ;; - *.Z) uncompress $1;; - *.7z) 7z x $1 ;; - *) echo "'$1' cannot be extracted via ex()" ;; - esac - else - echo "'$1' is not a valid file" - fi +ex() { + if [[ ! -f "$1" ]]; then + echo "'$1' is not a valid file" + return 1; + fi + # FIXME 7z kann (theoretisch) tar + outdir=${1%.*} + case "$1" in + *.tar.bz2 | *.tbz | *.tbz2) + tar xjf $1 -C $outdir;; + *.tar.gz | *.tgz) + tar xzf $1 -C $outdir;; + *.tar) + tar xf $1 -C $outdir;; + *.7z | *.zip | *.gz | *.bz | *.bz2) + 7z x -o$outdir $1;; + *.rar) + unrar x $1;; + *.Z) + uncompress $1;; + *) + echo "'$1' cannot be extracted via ex()";; + esac } # BEGIN_KITTY_SHELL_INTEGRATION From 7b1d0ef25179a29879e6dfffee736b1d1693fa3d Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Mar 2024 14:08:34 +0100 Subject: [PATCH 14/26] made script more robust --- scripts/backup_edi.sh | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/scripts/backup_edi.sh b/scripts/backup_edi.sh index 434ea39..d9d1291 100755 --- a/scripts/backup_edi.sh +++ b/scripts/backup_edi.sh @@ -10,20 +10,47 @@ shopt -s expand_aliases # make aliases work ############################### BACKUP_DIR=/sync/backup +ensureDirectory $BACKUP_DIR BACKUP_DIR_HOME=$BACKUP_DIR/home -rsync_backup $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ +ensureDirectory $BACKUP_DIR_HOME +backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc -sd rsync_backup /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ -sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ -sd rsync_backup /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ -sd rsync_backup /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ -sd rsync_backup /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ -sd rsync_backup /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ +ensureRootDirectory $BACKUP_DIR_ROOT sd rsync_backup /etc/hosts $BACKUP_DIR_ROOT/ -sd rsync_backup /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ +sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ +backupRootDirectory /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ +backupRootDirectory /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ +backupRootDirectory /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ +backupRootDirectory /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ +backupRootDirectory /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ +backupRootDirectory /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ +backupRootDirectory() { + ensureRootDirectory $2 + sd rsync_backup $1 $2 +} + + +backupDirectory() { + ensureDirectory $2 + rsync_backup $1 $2 +} + + +ensureRootDirectory() { + ensureDirectory $1 + sudo chown root:root $1 +} + + +ensureDirectory() { + if [[ ! -e $1 ]]; then + mkdir -p $1 + fi +} + ##################### ### upload backup ### ##################### From 46e9aea2dd838d97f90517e7d6dafaaf9b34d02a Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Mar 2024 14:14:34 +0100 Subject: [PATCH 15/26] fix: make functions known before usage --- scripts/backup_edi.sh | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/scripts/backup_edi.sh b/scripts/backup_edi.sh index d9d1291..9d422e0 100755 --- a/scripts/backup_edi.sh +++ b/scripts/backup_edi.sh @@ -5,28 +5,6 @@ source /sync/home_external/.bash_aliases shopt -s expand_aliases # make aliases work -############################### -### update local backup dir ### -############################### - -BACKUP_DIR=/sync/backup -ensureDirectory $BACKUP_DIR -BACKUP_DIR_HOME=$BACKUP_DIR/home -ensureDirectory $BACKUP_DIR_HOME -backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ - -BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc -ensureRootDirectory $BACKUP_DIR_ROOT -sd rsync_backup /etc/hosts $BACKUP_DIR_ROOT/ -sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ -backupRootDirectory /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ -backupRootDirectory /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ -backupRootDirectory /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ -backupRootDirectory /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ -backupRootDirectory /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ -backupRootDirectory /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ - - backupRootDirectory() { ensureRootDirectory $2 sd rsync_backup $1 $2 @@ -51,6 +29,27 @@ ensureDirectory() { fi } +############################### +### update local backup dir ### +############################### + +BACKUP_DIR=/sync/backup +ensureDirectory $BACKUP_DIR +BACKUP_DIR_HOME=$BACKUP_DIR/home +ensureDirectory $BACKUP_DIR_HOME +backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ + +BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc +ensureRootDirectory $BACKUP_DIR_ROOT +sd rsync_backup /etc/hosts $BACKUP_DIR_ROOT/ +sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ +backupRootDirectory /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ +backupRootDirectory /etc/letsencrypt/ $BACKUP_DIR_ROOT/letsencrypt/ +backupRootDirectory /etc/nginx/ $BACKUP_DIR_ROOT/nginx/ +backupRootDirectory /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ +backupRootDirectory /etc/wireguard/ $BACKUP_DIR_ROOT/wireguard/ +backupRootDirectory /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ + ##################### ### upload backup ### ##################### From 553d15e38bcfb14d0fffe7f6d338f4bd2a777b1f Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 17 Mar 2024 17:58:00 +0100 Subject: [PATCH 16/26] updated/ generalised backup scripts --- scripts/backup_edi.sh | 31 +++++-------------------------- scripts/backup_garrus.sh | 13 +++++++------ scripts/backup_resources.sh | 30 ++++++++++++++++++++++++++++++ scripts/backup_shepard.sh | 15 +++++++++------ 4 files changed, 51 insertions(+), 38 deletions(-) create mode 100644 scripts/backup_resources.sh diff --git a/scripts/backup_edi.sh b/scripts/backup_edi.sh index 9d422e0..adee0e9 100755 --- a/scripts/backup_edi.sh +++ b/scripts/backup_edi.sh @@ -1,34 +1,10 @@ #!/usr/bin/env bash set -euo pipefail -source /sync/home_external/.bash_aliases +source /sync/scripts/backup_resources.sh +# FSFIXME expand_aliases still needed? shopt -s expand_aliases # make aliases work - -backupRootDirectory() { - ensureRootDirectory $2 - sd rsync_backup $1 $2 -} - - -backupDirectory() { - ensureDirectory $2 - rsync_backup $1 $2 -} - - -ensureRootDirectory() { - ensureDirectory $1 - sudo chown root:root $1 -} - - -ensureDirectory() { - if [[ ! -e $1 ]]; then - mkdir -p $1 - fi -} - ############################### ### update local backup dir ### ############################### @@ -37,10 +13,12 @@ BACKUP_DIR=/sync/backup ensureDirectory $BACKUP_DIR BACKUP_DIR_HOME=$BACKUP_DIR/home ensureDirectory $BACKUP_DIR_HOME + backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc ensureRootDirectory $BACKUP_DIR_ROOT + sd rsync_backup /etc/hosts $BACKUP_DIR_ROOT/ sd rsync_backup /etc/ddclient.conf $BACKUP_DIR_ROOT/ backupRootDirectory /etc/ddclient/ $BACKUP_DIR_ROOT/ddclient/ @@ -60,3 +38,4 @@ fi sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" --filter="P /home/docker" /sync/backup/ fabian@garrus:/citadel/backup/edi/ sd rsync_backup -e "ssh -i /home/edi/.ssh/id_ed25519" /home/edi/docker/ fabian@garrus:/citadel/backup/edi/home/docker/ +echo "Note: remember to keep /citadel in sync!" diff --git a/scripts/backup_garrus.sh b/scripts/backup_garrus.sh index c8e24bb..bea10dc 100755 --- a/scripts/backup_garrus.sh +++ b/scripts/backup_garrus.sh @@ -1,22 +1,22 @@ #!/usr/bin/env bash set -euo pipefail -source /sync/home_external/.bash_aliases +source /sync/scripts/backup_resources.sh +# FSFIXME expand_aliases still needed? shopt -s expand_aliases # make aliases work - ############################### ### update local backup dir ### ############################### BACKUP_DIR=/sync/backup +ensureDirectory $BACKUP_DIR BACKUP_DIR_HOME=$BACKUP_DIR/home -if [[ !($HOME/.bash_aliases_local -ef $BACKUP_DIR_HOME/.bash_aliases_local) ]]; then - ln $HOME/.bash_aliases_local $BACKUP_DIR_HOME/.bash_aliases_local -fi +ensureDirectory $BACKUP_DIR_HOME BACKUP_DIR_ROOT=$BACKUP_DIR/root/etc -rsync_backup --link-dest="/etc/ssh/" /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ +ensureRootDirectory $BACKUP_DIR_ROOT +backupRootDirectory /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ if [[ !(-d $BACKUP_DIR_ROOT/udev/rules.d) ]]; then mkdir $BACKUP_DIR_ROOT/udev/rules.d fi @@ -24,6 +24,7 @@ if [[ !(/etc/udev/rules.d/69-hdparm.rules -ef $BACKUP_DIR_ROOT/udev/rules.d/69-h ln /etc/udev/rules.d/69-hdparm.rules $BACKUP_DIR_ROOT/udev/rules.d/69-hdparm.rules fi +backupRootDirectory /etc/ssh/ $BACKUP_DIR_ROOT/ssh/ ##################### ### upload backup ### diff --git a/scripts/backup_resources.sh b/scripts/backup_resources.sh new file mode 100644 index 0000000..c99b601 --- /dev/null +++ b/scripts/backup_resources.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +source /sync/home_external/.bash_aliases +shopt -s expand_aliases # make aliases work + + +backupRootDirectory() { + ensureRootDirectory $2 + sd rsync_backup $1 $2 +} + + +backupDirectory() { + ensureDirectory $2 + rsync_backup $1 $2 +} + + +ensureRootDirectory() { + ensureDirectory $1 + sudo chown root:root $1 +} + + +ensureDirectory() { + if [[ ! -d $1 ]]; then + mkdir -p $1 + fi +} diff --git a/scripts/backup_shepard.sh b/scripts/backup_shepard.sh index 84d9b1f..f14eb87 100755 --- a/scripts/backup_shepard.sh +++ b/scripts/backup_shepard.sh @@ -1,24 +1,27 @@ #!/usr/bin/env bash set -euo pipefail -source /sync/home_external/.bash_aliases +source /sync/scripts/backup_resources.sh +# FSFIXME expand_aliases still needed? shopt -s expand_aliases # make aliases work - ############################### ### update local backup dir ### ############################### BACKUP_DIR=/sync/backup +ensureDirectory $BACKUP_DIR BACKUP_DIR_HOME=$BACKUP_DIR/home -if [[ !($HOME/.bash_aliases_local -ef $BACKUP_DIR_HOME/.bash_aliases_local) ]]; then - ln $HOME/.bash_aliases_local $BACKUP_DIR_HOME/.bash_aliases_local -fi -rsync_backup --link-dest="$HOME/.ssh/" $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ +ensureDirectory $BACKUP_DIR_HOME +backupDirectory $HOME/.ssh/ $BACKUP_DIR_HOME/.ssh/ ##################### ### upload backup ### ##################### +if [[ "$1" == "--noupload" ]]; then + exit 0; +fi + sd rsync_backup -e "ssh -i /home/fabian/.ssh/id_ed25519" $BACKUP_DIR/ fabian@garrus:/citadel/backup/shepard/ From 1ea29d78d700c50daaaa54ac33356ffdede6bbf3 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 31 Mar 2024 23:33:01 +0200 Subject: [PATCH 17/26] since the directory is not used only for movies anymore, rename --- scripts/mount_garrus.sh | 2 +- scripts/unmount_garrus.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mount_garrus.sh b/scripts/mount_garrus.sh index 1f99015..47f14a8 100755 --- a/scripts/mount_garrus.sh +++ b/scripts/mount_garrus.sh @@ -3,4 +3,4 @@ set -euo pipefail source /sync/scripts/mount_general.sh -sshMount fabian garrus fabian FabisDokumente media Filme +sshMount fabian garrus fabian FabisDokumente media Medien diff --git a/scripts/unmount_garrus.sh b/scripts/unmount_garrus.sh index 9e986df..ddf8375 100755 --- a/scripts/unmount_garrus.sh +++ b/scripts/unmount_garrus.sh @@ -3,4 +3,4 @@ set -euo pipefail source /sync/scripts/unmount_general.sh -sshUnmount FabisDokumente Filme +sshUnmount FabisDokumente Medien From 0306ebc04cbe23a62b64258198752089d67850b8 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 31 Mar 2024 23:33:35 +0200 Subject: [PATCH 18/26] enable mounting media --- scripts/mount_edi.sh | 2 +- scripts/unmount_edi.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mount_edi.sh b/scripts/mount_edi.sh index 9ed5648..8eec9bb 100755 --- a/scripts/mount_edi.sh +++ b/scripts/mount_edi.sh @@ -3,4 +3,4 @@ set -euo pipefail source /sync/scripts/mount_general.sh -sshMount edi edi fabian FabisDokumente +sshMount edi edi fabian FabisDokumente media Medien diff --git a/scripts/unmount_edi.sh b/scripts/unmount_edi.sh index 02c54ea..ddf8375 100755 --- a/scripts/unmount_edi.sh +++ b/scripts/unmount_edi.sh @@ -3,4 +3,4 @@ set -euo pipefail source /sync/scripts/unmount_general.sh -sshUnmount FabisDokumente +sshUnmount FabisDokumente Medien From a50baf801c2b33e683af7b2c71ae7960313b9157 Mon Sep 17 00:00:00 2001 From: fabian Date: Sat, 6 May 2023 04:11:17 +0200 Subject: [PATCH 19/26] Revert "Revert "old raspi version of nanorc cannot handle certain settings"" This reverts commit 844fe85d6d6b5a96b21e6bcf8f44de3cf936379f. --- home_external/.config/nano/nanorc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/home_external/.config/nano/nanorc b/home_external/.config/nano/nanorc index 7c13914..21e7054 100644 --- a/home_external/.config/nano/nanorc +++ b/home_external/.config/nano/nanorc @@ -89,7 +89,7 @@ set linenumbers set matchbrackets "(<[{)>]}" ## Suppress title bar and show file name and editor state at the bottom. -set minibar +# set minibar ## Enable mouse support, if available for your system. When enabled, ## mouse clicks can be used to place the cursor, set the mark (with a From 1952ece138c9fe80ad0e8c4f98d045791a087848 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 14 May 2023 12:18:13 +0200 Subject: [PATCH 20/26] - commented out options not working in ancient debian version --- home_external/.config/rofi/config.rasi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home_external/.config/rofi/config.rasi b/home_external/.config/rofi/config.rasi index 2d0b8eb..ae0955a 100644 --- a/home_external/.config/rofi/config.rasi +++ b/home_external/.config/rofi/config.rasi @@ -139,13 +139,13 @@ configuration { /* me-select-entry: "MousePrimary";*/ /* me-accept-entry: "MouseDPrimary";*/ /* me-accept-custom: "Control+MouseDPrimary";*/ - timeout { +/* timeout { action: "kb-cancel"; delay: 0; } filebrowser { directories-first: true; sorting-method: "name"; - } + }*/ } @theme "/usr/share/rofi/themes/Arc-Dark.rasi" From e99b430ce8fa40a0d4f52982065232e4a9f56f6a Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 31 Mar 2024 23:54:05 +0200 Subject: [PATCH 21/26] new function to update debian based systems improved automatic updates via executeAndNotify to enable fire-and-forget --- home_external/.bash_aliases_branched | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/home_external/.bash_aliases_branched b/home_external/.bash_aliases_branched index c2539e2..47bfa4b 100644 --- a/home_external/.bash_aliases_branched +++ b/home_external/.bash_aliases_branched @@ -4,13 +4,18 @@ updatePackages() { noconfirm= if [[ $1 == "-y" ]]; then - noconfirm="--no-confirm"; + noconfirm="--assume-yes" fi - executeAndNotify "doUpdatePackages $noconfirm" "packages updated" "package update failed"; + full= + if [[ $2 == "--full" ]]; then + full="full-" + fi + executeAndNotify "doUpdatePackages $noconfirm $full" "system updated" "system update failed"; } doUpdatePackages() { - pamac update $1; - pamac remove --orphans --cascade $1; + sudo apt update; + sudo apt ${2}upgrade $1; + sudo apt autoremove $1; } From 08fbd0beb94f82b7927515777716134bcef6e75e Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 31 Mar 2024 23:54:05 +0200 Subject: [PATCH 22/26] new function to update debian based systems improved automatic updates via executeAndNotify to enable fire-and-forget --- home_external/.bash_aliases_branched | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/home_external/.bash_aliases_branched b/home_external/.bash_aliases_branched index c2539e2..47bfa4b 100644 --- a/home_external/.bash_aliases_branched +++ b/home_external/.bash_aliases_branched @@ -4,13 +4,18 @@ updatePackages() { noconfirm= if [[ $1 == "-y" ]]; then - noconfirm="--no-confirm"; + noconfirm="--assume-yes" fi - executeAndNotify "doUpdatePackages $noconfirm" "packages updated" "package update failed"; + full= + if [[ $2 == "--full" ]]; then + full="full-" + fi + executeAndNotify "doUpdatePackages $noconfirm $full" "system updated" "system update failed"; } doUpdatePackages() { - pamac update $1; - pamac remove --orphans --cascade $1; + sudo apt update; + sudo apt ${2}upgrade $1; + sudo apt autoremove $1; } From bb09061c3b02dcfec2a22c5cbed0653613df9e8c Mon Sep 17 00:00:00 2001 From: fabian Date: Fri, 2 Jun 2023 15:57:57 +0200 Subject: [PATCH 23/26] improved automatic updates via executeAndNotify to enable fire-and-forget --- home_external/.bash_aliases_extra | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 home_external/.bash_aliases_extra diff --git a/home_external/.bash_aliases_extra b/home_external/.bash_aliases_extra new file mode 100644 index 0000000..ad0a437 --- /dev/null +++ b/home_external/.bash_aliases_extra @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +updateSystem() { + noconfirm= + if [[ $1 == "-y" ]]; then + noconfirm="--assume-yes" + fi + full= + if [[ $2 == "--full" ]]; then + full="full-" + fi + executeAndNotify "doUpdateSystem $noconfirm $full" "system updated" "system update failed"; +} + + +doUpdateSystem() { + sudo apt update; + sudo apt ${2}upgrade $1; + sudo apt autoremove $1; +} From 0d7c1902c18e2ff2367effe15792c7fa1d81a12b Mon Sep 17 00:00:00 2001 From: fabian Date: Mon, 1 Apr 2024 00:17:07 +0200 Subject: [PATCH 24/26] fkin just work now... please --- home_external/.bash_aliases_extra | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 home_external/.bash_aliases_extra diff --git a/home_external/.bash_aliases_extra b/home_external/.bash_aliases_extra deleted file mode 100644 index ad0a437..0000000 --- a/home_external/.bash_aliases_extra +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -updateSystem() { - noconfirm= - if [[ $1 == "-y" ]]; then - noconfirm="--assume-yes" - fi - full= - if [[ $2 == "--full" ]]; then - full="full-" - fi - executeAndNotify "doUpdateSystem $noconfirm $full" "system updated" "system update failed"; -} - - -doUpdateSystem() { - sudo apt update; - sudo apt ${2}upgrade $1; - sudo apt autoremove $1; -} From ae2779f48e20a6e27ce824cce38a6b8625605712 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 1 Sep 2024 14:46:44 +0200 Subject: [PATCH 25/26] fix npe-like-error --- scripts/backup_edi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/backup_edi.sh b/scripts/backup_edi.sh index adee0e9..42d8ee2 100755 --- a/scripts/backup_edi.sh +++ b/scripts/backup_edi.sh @@ -32,7 +32,7 @@ backupRootDirectory /etc/docker/daemon.json $BACKUP_DIR_ROOT/docker/ ### upload backup ### ##################### -if [[ "$1" == "--noupload" ]]; then +if [[ $# > 0 && "$1" == "--noupload" ]]; then exit 0; fi From d3d0a4cc5d897773f08508cdb9d3c10d5b617df6 Mon Sep 17 00:00:00 2001 From: fabian Date: Sun, 1 Sep 2024 14:47:17 +0200 Subject: [PATCH 26/26] updated command to docker compose 2.0 --- scripts/dockerContainerAction.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dockerContainerAction.sh b/scripts/dockerContainerAction.sh index 74a4e1f..87e2da9 100644 --- a/scripts/dockerContainerAction.sh +++ b/scripts/dockerContainerAction.sh @@ -16,7 +16,7 @@ upDownContainers() { continue; fi cd $subdir; - docker-compose $@; + docker compose $@; done }