安排本月最后一个星期日的crontab工作

时间:2017-06-30 16:28:23

标签: linux ubuntu cron backup

我们希望扩展我们的备份系统以包含每月结束备份。它将在本月的最后一个星期日进行,但下面的代码是我今天可以看到它在较小的范围内有效。

开始(有效)

0 12 * * 0 sudo tar -cpzf /media/BackupDisk/wwwJUNEbackup.tar.gz /var/www

已经浏览了互联网,并在脚本文件

中测试了这段代码
 if [ $(date +%d -d '+7 days') -le '8' ] ; then
    echo "Yes"
else
    echo "No"
fi

(作为参考,这说 - 如果今天的日期+ 7天小于或等于8,那么是,否则否)

但是当我试图加入Sudo的crontrab时

26 17 * 6 5 [ $(date +%d -d '+7 days') -lt '8' ] && sudo tar -cpzf /media/BackupDisk/wwwJUNEbackup.tar.gz /var/www

我一无所获。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

创建普通脚本last_weekday_in_month.sh并在crontab条目中使用它 您使用的语法远远超出基本shell =>恕我直言,最好将其移动到通过#!/...

强制执行特定shell的普通脚本
 12 * * 0 /path/last_weekday_in.month.sh && sudo tar -cpzf /media/BackupDisk/wwwJUNEbackup.tar.gz /var/www

last_weekday_in.month.sh

#!/bin/bash
if [ $(date +%d -d '+7 days') -lt '8' ] ; then
  exit 0    
else
  exit 1
fi