安排本月最后一个星期日的 crontab 作业
Schedule crontab job for last sunday in the month
我们想扩展我们的备份系统以包括月末备份。它将在本月的最后一个星期日执行,但下面的代码是为了让我可以看到它今天在较小的范围内运行。
开始于(有效)
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,则 YES 否则 NO)
但是当我尝试将其包含到 Sudo 的 crontrab 中时
26 17 * 6 5 [ $(date +%d -d '+7 days') -lt '8' ] && sudo tar -cpzf /media/BackupDisk/wwwJUNEbackup.tar.gz /var/www
我一无所获。
我做错了什么?
创建简单的脚本 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
我们想扩展我们的备份系统以包括月末备份。它将在本月的最后一个星期日执行,但下面的代码是为了让我可以看到它今天在较小的范围内运行。
开始于(有效)
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,则 YES 否则 NO)
但是当我尝试将其包含到 Sudo 的 crontrab 中时
26 17 * 6 5 [ $(date +%d -d '+7 days') -lt '8' ] && sudo tar -cpzf /media/BackupDisk/wwwJUNEbackup.tar.gz /var/www
我一无所获。
我做错了什么?
创建简单的脚本 last_weekday_in_month.sh
并在您的 crontab 条目中使用它。
您使用的语法远远超出基本 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