From b3e5eaf11d1d67c97d96a3d677830e407d0de63f Mon Sep 17 00:00:00 2001 From: Akemi Izuko Date: Sat, 23 Dec 2023 20:14:10 -0700 Subject: [PATCH] New: bash history backup systemd.units --- systemd/system/bash_eternal_backup.service | 9 +++++++ systemd/system/bash_eternal_backup.timer | 11 ++++++++ .../template.bash_eternal_backup.sh | 27 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 systemd/system/bash_eternal_backup.service create mode 100644 systemd/system/bash_eternal_backup.timer create mode 100755 systemd/system/timer-scripts/template.bash_eternal_backup.sh diff --git a/systemd/system/bash_eternal_backup.service b/systemd/system/bash_eternal_backup.service new file mode 100644 index 0000000..84d3aa8 --- /dev/null +++ b/systemd/system/bash_eternal_backup.service @@ -0,0 +1,9 @@ +[Unit] +Description=Backing up bash history +Wants=bash_eternal_backup.timer + +[Service] +User=root +Group=root +Type=oneshot +ExecStart=/usr/local/bin/bash_eternal_backup.sh diff --git a/systemd/system/bash_eternal_backup.timer b/systemd/system/bash_eternal_backup.timer new file mode 100644 index 0000000..6b31a28 --- /dev/null +++ b/systemd/system/bash_eternal_backup.timer @@ -0,0 +1,11 @@ +[Unit] +Description=Backing up bash history +Requires=bash_eternal_backup.service + +[Timer] +Unit=bash_eternal_backup.service +OnCalendar=*-*-* *:00/3 +RandomizedDelaySec=3min + +[Install] +WantedBy=timers.target diff --git a/systemd/system/timer-scripts/template.bash_eternal_backup.sh b/systemd/system/timer-scripts/template.bash_eternal_backup.sh new file mode 100755 index 0000000..ab4b4ff --- /dev/null +++ b/systemd/system/timer-scripts/template.bash_eternal_backup.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Backup the .bash_eternal_history file of select users. Files should all be +# named in the format +# +# ${hostname}_${user}_bash_hist + +declare -r backup_p=/home/emiliko/safe/bash_eternal_backups +declare -r backup_user=emiliko + +mkdir -p "$backup_p" + +declare -ar backups=(\ + /home/emiliko/.bash_eternal_history + "${backup_p}/mirrorside_emiliko_bash_hist" + /root/.bash_eternal_history + "${backup_p}/mirrorside_root_bash_hist" +) + +for ((i = 0; i < ${#backups[@]}; i += 2)); do + declare from="${backups[i]}" + declare to="${backups[i+1]}" + + rsync "$from" "$to" + chmod 400 "$to" + chown "$backup_user" "$to" + chgrp "$backup_user" "$to" +done