Rsnapshot du automation
I have set up a backup system where I work using rsnapshot which works great. I use it to back up 4 linux servers and 4 windows servers which are mounted on the server I use to run rsnapshot on. It works great and I am well pleased with it. I have one small problem, I am trying to create a little script which runs the 'rsnapshot du' command and then outputs the data into a file which I can then read anytime. The reason is that the backups in total are almost 500gb and running rsnapshot du command can sometimes take over an hour to give all the results. So my idea was to have a script which runs each morning at 8am, and outputs into a file which I then set up an alias to output the contents of that file using 'cat'. However I cannot seem to get the script to actually put the output of the command into the file. Its quite strange, if I run the script manually, it seems to work fine. But whenever I add it to cron, it just seems to create an empty file. I know the script is executing because the script also uses the date command to put the time and date the script was run at the top. Am I missing something here, I am quite a noob and was wondering if I would perhaps need to append each line output from 'rsnapshot du' into a variable first and then append it into a file. Any suggestions would be gratefully received.
Show us the script.
The usual problem in these situations is that cron has a very minimal env, inc $PATH setting, so the rule is:
always specify complete absolute paths to all programs called & files used when in cron.
rsnapshot du automation
You were spot on, I added the full path to rsnapshot and it worked fine. Was confused as it ran fine manually, just didn't run when it was run by cron. Here is the final script:
# script runs 'rsnapshot du' after each twicedaily job completes
# and outputs to 'filename', called from /bin/bkpfinishedemail
# first writes to a tempfile and then copies the contents of the
# tempfile to filename so that filename never holds a half full copy
# of the log if someone tries to read it while it is being written to
if [ ! -e $tempfilename ]
if [ ! -e $filename ]
if grep -q $backup_mount_point /etc/mtab
date '+DATE: %d/%m/%Y TIME:%H:%M:%S%n%n' > $tempfilename
/usr/local/bin/rsnapshot du >> $tempfilename
cat $tempfilename > $filename
In the original script I just had the line:
rsnapshot du >> $tempfilename
Once i changed that it was fine.
Thanks for your help. It was driving me mad.
|All times are GMT -5. The time now is 10:50 PM.|