Linux/SimpleBashBackup
Appearance
< Linux
default folder structure
/srv
/backup
/backupmanager.sh
/01_daily-jobs
/02_weekly-jobs
/03_monthly-jobs
/templates
/tmp
/backup-data
/01_daily
/02_weekly
/03_monthly
backupmanager.sh
example jobs
- each job file needs to be located in one of the job folders (01_daily-jobs, 02_weekly-jobs, 03_monthly-jobs)
- each job file needs to end in .job
- the following variables are passed on from the main script
- BACKUPDIR -> path where the backupfile should be placed (e.g. /srv/backup-data/01_daily/2016-05-23)
- FILEDESC -> datecode to be used in the filename
- TEMPDIR -> can optionally be used for temp files
single folder
weak compression
ARCHIV="$BACKUPDIR/${FILEDESC}_server_srv_www.tar.gz"
tar -c /srv/www | pigz --best > $ARCHIV
strong compression
ARCHIV="$BACKUPDIR/${FILEDESC}_server_srv_www.tar.7z"
tar -c /srv/www | 7z a -m0=lzma2 -mx9 -si $ARCHIV
multiple files/folders
CURDIR=$(pwd)
ARCHIV="$BACKUPDIR/${FILEDESC}_hostname_srv.tar.gz
INCLUDE="--files-from=$CURDIR/backup_srv.include"
EXCLUDE="--exclude-from=$CURDIR/backup_srv.exclude"
tar $EXCLUDE -c $INCLUDE | pigz --best > $ARCHIV
remove old backups, keep new backups
KEEP="4"
cd $BACKUPDIR
cd ..
ls -r | sed -e 1,${KEEP}d | xargs rm -r
rsync backup files to other ssh server
rsync -avz -e ssh $BACKUPDIR username@hostnameoftarget:/srv/backup-data/targetfolder
- /root/.smb_cred
username=testuser password=password1234
- 70_mountcifs.job:
mount -t cifs -o credentials=/root/.smb_cred //sambaserver/sambashare /mnt/localmountpoint
- 71_remotesync.job:
rsync -avz -P /srv/somelocalfolder /mnt/localmountpoint/destinationfolder
- 73_unmountcifs.job:
umount -l /mnt/localmountpoint