commit
d4bdc820d2
@ -0,0 +1,8 @@
|
||||
## stupidbackup
|
||||
|
||||
Yes.
|
||||
|
||||
```text
|
||||
# weekly
|
||||
0 0 * * 0 bash /path/to/main.sh
|
||||
```
|
@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
tar -zcvf "home.tar.gz" --exclude-vcs --exclude '.wow-shared-ringdb' --exclude '__pycache__' --exclude 'venv' --exclude '.cache' --exclude '.wownero' --exclude '/var/lib/postgresql' --exclude '/var/lib/redis' --exclude '/var/lib/snapd' --exclude '/var/lib/mysql' --exclude '*/build' --exclude '/var/log' --exclude '/var/lib/dpkg' --exclude '/var/lib/varnish' --exclude '/var/lib/apt' --exclude '/var/cache' --exclude '/var/log/journal' --exclude 'node_modules' --exclude '.bitmonero' --exclude 'lmdb' /home/
|
||||
tar -zcvf "etc.tar.gz" --exclude-vcs --exclude '.wow-shared-ringdb' --exclude '__pycache__' --exclude 'venv' --exclude '.cache' --exclude '.wownero' --exclude '/var/lib/postgresql' --exclude '/var/lib/redis' --exclude '/var/lib/snapd' --exclude '/var/lib/mysql' --exclude '*/build' --exclude '/var/log' --exclude '/var/lib/dpkg' --exclude '/var/lib/varnish' --exclude '/var/lib/apt' --exclude '/var/cache' --exclude '/var/log/journal' --exclude 'node_modules' --exclude '.bitmonero' --exclude 'lmdb' /etc/
|
||||
tar -zcvf "var.tar.gz" --exclude-vcs --exclude '.wow-shared-ringdb' --exclude '__pycache__' --exclude 'venv' --exclude '.cache' --exclude '.wownero' --exclude '/var/lib/postgresql' --exclude '/var/lib/redis' --exclude '/var/lib/snapd' --exclude '/var/lib/mysql' --exclude '*/build' --exclude '/var/log' --exclude '/var/lib/dpkg' --exclude '/var/lib/varnish' --exclude '/var/lib/apt' --exclude '/var/cache' --exclude '/var/log/journal' --exclude 'node_modules' --exclude '.bitmonero' --exclude 'lmdb' /var/
|
||||
su postgres -c 'pg_dumpall' | gzip > all.sql.gz
|
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
lockfile="/tmp/stupidbackup.lock"
|
||||
exec 9>"$lockfile"
|
||||
if ! flock -n 9
|
||||
then printf 'Only one running instance is allowed.\n';
|
||||
exit 1
|
||||
fi
|
||||
|
||||
destination="/mnt/bigstorage/"
|
||||
dontcare="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR"
|
||||
now=`date +"%Y-%m-%d"`
|
||||
path_script="$(realpath "${BASH_SOURCE[-1]}")"
|
||||
path_dir="$(dirname "$path_script")"
|
||||
|
||||
for domain in "login.wownero.com" "wownero.com" "git.wownero.com"; do
|
||||
host="root@$domain"
|
||||
tmpd=`ssh $dontcare "$host" "mktemp -d -t wow-XXXXXXXXXX"`
|
||||
|
||||
if [ -z "$tmpd" ]
|
||||
then
|
||||
echo "[$domain] failed to create tmp directory"
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "[$domain] created $tmpd"
|
||||
|
||||
scp $dontcare -rP22 "$path_dir/backup.sh" "$host:$tmpd/backup.sh"
|
||||
echo "[$domain] uploaded backup script"
|
||||
|
||||
ssh $dontcare "$host" "cd $tmpd; bash $tmpd/backup.sh"
|
||||
echo "[$domain] executed backup script"
|
||||
|
||||
scp $dontcare -rP22 "$host:$tmpd" "$destination/$now-$domain"
|
||||
echo "[$domain] downloaded backups"
|
||||
|
||||
ssh $dontcare "$host" "rm -rf $tmpd"
|
||||
echo "[$domain] finished"
|
||||
done
|
||||
|
||||
rm "$lockfile"
|
||||
|
||||
# delete old files
|
||||
find $destination -type f -mtime +40 -delete
|
Loading…
Reference in new issue