3 ms·
And for next time. https://gist.github.com/AtulKsol/520f5d0c9a313edea7254701f6db8966 https://gist.github.com/AtulKsol/520f5d0c9a313edea7254701f6d...
by frogger8 5y ago
And for next time. https://gist.github.com/AtulKsol/520f5d0c9a313edea7254701f6db8966 https://gist.github.com/AtulKsol/520f5d0c9a313edea7254701f6d...
- smbv 5y agoThank you very much! I'm planning on using this for my backups (in conjunction with rsync -a, and podman volume export).
- smbv 5y agoI put together a quick-n-dirty backup script. It's tested. #!/bin/bash set -e BACKUPDIR=/srv/backup/$(/usr/bin/date -I) umask 137 cd /tmp backup_init() { echo 'Initializing backup...' mkdir "$BACKUPDIR" chown root:root "$BACKUPDIR" chmod 751 "$BACKUPDIR" } backup_postgres() { # Postgres echo 'Backing up PostgreSQL...' sudo -u postgres /usr/bin/pg_dumpall > $BACKUPDIR/postgres.sql } backup_podman_volumes_for_user() { if id "$1" &> /dev/null; then echo "Podman user $1 found. Creating backups of volumes..." mkdir "$BACKUPDIR/$1" chmod 751 "$BACKUPDIR/$1" for volume in $(sudo -u $1 /usr/bin/podman volume ls --format {{.Name}}); do echo "Backing up volume $volume for user $1" touch "$BACKUPDIR/$1/$volume.tar" chown $1:$1 "$BACKUPDIR/$1/$volume.tar" chmod 660 "$BACKUPDIR/$1/$volume.tar" sudo -u $1 /usr/bin/podman volume export "$volume" --output "$BACKUPDIR/$1/$volume.tar" chown root:root "$BACKUPDIR/$1/$volume.tar" chmod 640 "$BACKUPDIR/$1/$volume.tar" done else echo "User $1 not found. Skipping." fi } backup_bitwarden() { backup_podman_volumes_for_user bitwarden cp /home/bitwarden/vaultwarden.conf $BACKUPDIR/bitwarden/ } backup_etc() { echo 'Backing up /etc...' rsync -a /etc/ $BACKUPDIR/etc } backup_jellyfin_metadata() { echo 'Backing up Jellyfin metadata...' mkdir $BACKUPDIR/jellyfin rsync -a /var/lib/jellyfin/ $BACKUPDIR/jellyfin } backup_postprocess() { cd /srv/backup echo 'Compressing...' tar -czv --atime-preserve='system' -f $BACKUPDIR.tgz $BACKUPDIR echo 'Removing...' rm -rf $BACKUPDIR } backup_init backup_etc backup_postgres backup_bitwarden backup_jellyfin_metadata backup_postprocess
- stevenicr 5y agoI'm needing to do something like this from one server to another.. the hard drive is 100% full and I can't bring myself to pay $310 to DO for a 900GB server just to dump the DB which needs to be thinned down. which come to find out even if I remove table entries for hours, postgres can't do the vacuum to return GB apparently unless it has another 360GB or so to do what it needs doing I guess. So looking to pg-dump to a different server in a cheaper datacenter. Think I have something bookmarked talking about running rsync or something. Will be going into those options this week.