46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
|
#!/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
|
||
|
|
||
|
# Remote is being read out of ${remote_user}'s .ssh/config
|
||
|
# Do not leave a password on the ssh key! Use a restricted user instead
|
||
|
|
||
|
declare -r remote=mirrorside
|
||
|
declare -r remote_user=emiliko
|
||
|
declare -r backup_p='/home/emiliko/safe/bash_eternal_backups'
|
||
|
declare -ar backups=(\
|
||
|
/home/emiliko/.bash_eternal_history
|
||
|
"${backup_p}/waybook_emiliko_bash_hist"
|
||
|
/root/.bash_eternal_history
|
||
|
"${backup_p}/waybook_root_bash_hist"
|
||
|
)
|
||
|
|
||
|
# Check for internet
|
||
|
if ! curl -m 3 archlinux.org &>/dev/null; then
|
||
|
echo "Failed to connect to archlinux.org in 3 seconds. No backup was made" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Make the directory
|
||
|
sudo -u "$remote_user" bash <<CMD
|
||
|
ssh "$remote" "mkdir -p ${backup_p}"
|
||
|
CMD
|
||
|
|
||
|
# Copy over the files
|
||
|
for ((i = 0; i < ${#backups[@]}; i += 2)); do
|
||
|
declare from="${backups[i]}"
|
||
|
declare to="${backups[i+1]}"
|
||
|
|
||
|
# Make an open tmp file
|
||
|
declare tfile="$(mktemp)"
|
||
|
cp -f "$from" "$tfile"
|
||
|
chmod 666 "$tfile"
|
||
|
|
||
|
sudo -u "$remote_user" bash <<CMD
|
||
|
scp "$tfile" "${remote}:${to}"
|
||
|
echo "Sucessfully transfered ${to}"
|
||
|
CMD
|
||
|
done
|