Unfortunately no one can be told what fun_plug is - you have to see it for yourself.
You are not logged in.
Grandfather-father-son backup script for backing up your first drive to your second drive:
#!/ffp/bin/sh export PATH=/ffp/sbin:/ffp/bin:$PATH # Set Source Path SRCPATH='/mnt/HD_a2/Data' # Set the Destination Path DSTPATH=/mnt/HD_b2/Backup_NAS/Data # Set path to Fun_Plug files # Fun_Plug 3.0 or 4.0 # ffppath=/mnt/HD_a2/fun_plug.d # Fun_Plug 5.0 FFPPATH=/ffp # Set Rsync RSYNC=$FFPPATH/bin/rsync # Set date variables # date --help # %w day of week (0..6); 0 represents Sunday # %V week number of year with Monday as first day of week (01..53) WEEKDAY=`date +'%w'` YESTERDAY=`expr \( $WEEKDAY + 6 \) % 7` WEEKNUMBER=`date +'%V'` # Convert the string to a number WEEKNUMBER=`expr \( $WEEKNUMBER + 0 \)` LASTMONTH=`expr \( 53 + $WEEKNUMBER - 4 \) % 53` MONTHCOPY=`expr \( $WEEKNUMBER % 4 \)` # Set directories BACKUPDIR=/$DSTPATH/Daily/$WEEKDAY LINKDIR=/$DSTPATH/Daily/$YESTERDAY WEEKBACKUP=/$DSTPATH/Weekly/$WEEKNUMBER LASTMONTHBACKUP=/$DSTPATH/Weekly/$LASTMONTH MONTHBACKUP=/$DSTPATH/Monthly/$WEEKNUMBER # Set logfile LOGFILE=/$DSTPATH/Daily_$WEEKDAY.list # Make directories mkdir -p /$DSTPATH/Daily/ mkdir -p /$DSTPATH/Weekly/ mkdir -p /$DSTPATH/Monthly/ # Backup source paths rm -rf $BACKUPDIR $RSYNC -v -x -a --delete --link-dest=$LINKDIR $SRCPATH $BACKUPDIR/ >> $LOGFILE # Copy data for weekly and monthly purposes if [ $WEEKDAY -eq 0 ] then rm -rf $LASTMONTHBACKUP rm -rf /$DSTPATH/Weekly_$LASTMONTH.list cp -al $BACKUPDIR/* $WEEKBACKUP cp -af $LOGFILE /$DSTPATH/Weekly_$WEEKNUMBER.list if [ $MONTHCOPY -eq 0 ] then rm -rf $MONTHBACKUP rm -rf /$DSTPATH/Monthly_$WEEKNUMBER.list cp -al $BACKUPDIR/* $MONTHBACKUP cp -af $LOGFILE /$DSTPATH/Monthly_$WEEKNUMBER.list fi fi
More about the GFS principle: http://en.wikipedia.org/wiki/Grandfathe … Son_Backup
Offline
zeroday wrote:
is this everything you need or do you need extra scripts?
I like the idea to see a total backup and than the snapshots..
Schedule this script and you have every day a total backup (Rsync creates hardlinks to existing files so only new files and updates will be added to the already existing files). See the Time Machine topic (http://dns323.kood.org/forum/viewtopic. … 25&p=1). Only this script will cleanup older backups.
Last edited by Unit106 (2008-10-27 23:34:02)
Offline
I have been running the script for 7 days now and there is no weekly backup!
Reading the script, it seems that the weekly backup is taken on day 0 (sunday) after the daily backup has been taken. This means that you have backups from the last 6 days now because you just overwrote the backup from last sunday with today's backup and furthermore, your weekly backup is from today and not from last sunday. Or am I missing something?
Also, I can only get the script to work if I change
cp -al $BACKUPDIR/* $WEEKBACKUP
to
cp -al $BACKUPDIR $WEEKBACKUP
and the same for the month backup I guess.
I was also wondering that it would probably be much and faster to just
mv $BACKUPDIR $WEEKBACKUP?
And wouldn't it be much faster and less wear on the disk if one left out the line
rm -rf $BACKUPDIR
What do you think?
BTW, I tried using weekday names instead of numbers but it appears that busybox's version of the date command doesn't support the 'yesterday', 'tomorrow', 'next-monday', etc. syntax :-(
Offline