简体   繁体   中英

Cronjob is not running in Linux

So I am trying to automate backups to S3 buckets through linux.

The script I am trying to run is

TIME=`date +%b-%d-%y`           
FILENAME=backup-$TIME.tar.gz    
SRCDIR=/opt/nexus                     
DESDIR=/usr/local/backup            
tar -cpzf $DESDIR/$FILENAME $SRCDIR 
aws s3 cp /usr/local/backup/backup.tar.gz s3://s3backup

The cronjob to run that script is 44 11 * * * ./backup.sh

However whenever I try to run the backup script (by updating cronjob) it does not seem to be working at all.

Any ideas why it will not work?

Do not use relative path names in cron job or script.

44 11 * * * ./backup.sh

Instead, use full path of the script.

44 11 * * * <full_path>/backup.sh

In addition, use full path in your script:

<full_path>/tar -cpzf $DESDIR/$FILENAME $SRCDIR 
<full_path>aws s3 cp /usr/local/backup/backup.tar.gz s3://s3backup

Make sure the cron job is added for the user who has the AWS credentials set up correctly.

You are creating a date stamped backup file, but attempting to copy static file name. Try changing the copy command to:

aws s3 cp $DESDIR/$FILENAME s3://s3backup

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM