#!/bin/bash SSHFS_MPOINT=/mnt/sshfs; REMOTE_BACKUP_USER=user; REMOTE_BACKUP_HOST=192.168.1.1; REMOTE_BACKUP_FOLDER=/mnt/somedisk/backup; REMOTE_BACKUP_PORT=22; case "$1" in rotate) #Check if the sshfs mount point exists, create it if it does not if [ -d $SSHFS_MPOINT ]; then #Do nothing, the mount point exists : else echo "Creating sshfs mount point:" $SSHFS_MPOINT; mkdir $SSHFS_MPOINT; fi #Mount remote backup folder via sshfs sshfs -p $REMOTE_BACKUP_PORT $REMOTE_BACKUP_USER@$REMOTE_BACKUP_HOST:$REMOTE_BACKUP_FOLDER $SSHFS_MPOINT #Delete oldest backup, if it exists if [ -d $SSHFS_MPOINT/weekly3 ] ; then rm -rf $SSHFS_MPOINT/weekly3 ; fi ; #Rotate (weekly0 -> weekly1, weekly1 -> weekly2, weekly2 -> weekly3) if [ -d $SSHFS_MPOINT/weekly2 ] ; then echo "Rotating weekly2 -> weekly3" mv $SSHFS_MPOINT/weekly2 $SSHFS_MPOINT/weekly3; fi; if [ -d $SSHFS_MPOINT/weekly1 ] ; then echo "Rotating weekly1-> weekly2" mv $SSHFS_MPOINT/weekly1 $SSHFS_MPOINT/weekly2; fi; if [ -d $SSHFS_MPOINT/weekly0 ] ; then echo "Rotating weekly0 -> weekly1" mv $SSHFS_MPOINT/weekly0 $SSHFS_MPOINT/weekly1; fi; #Umount sshfs echo "Unmounting:" $SSHFS_MPOINT; umount $SSHFS_MPOINT; echo "Done rotating" ;; dailybackup) echo "Backing up /var/log"; rsync --delete -avzR -e "ssh -p "$REMOTE_BACKUP_PORT /var/log/ $REMOTE_BACKUP_USER@$REMOTE_BACKUP_HOST:$REMOTE_BACKUP_FOLDER/weekly0 echo "Backing up /home"; rsync --delete -avzR -e "ssh -p "$REMOTE_BACKUP_PORT /home/ $REMOTE_BACKUP_USER@$REMOTE_BACKUP_HOST:$REMOTE_BACKUP_FOLDER/weekly0 echo "Backing up /etc"; rsync --delete -avzR -e "ssh -p "$REMOTE_BACKUP_PORT /etc/ $REMOTE_BACKUP_USER@$REMOTE_BACKUP_HOST:$REMOTE_BACKUP_FOLDER/weekly0 ;; esac; exit 0;