【发布时间】:2017-07-03 19:56:57
【问题描述】:
我们希望扩展我们的备份系统以包括每月一次的最终备份。它将在本月的最后一个星期日执行,但下面的代码是为了让我今天可以看到它在较小的范围内工作。
开始于(有效)
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
我一无所获。
我做错了什么?
【问题讨论】:
-
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。
-
@jww Comment-1: 正如您在第二条评论中指出的那样,这个问题可以通过编程 Comment-2 来回答:据我所知在这种特定情况下,“高级 shell 语法”无法工作 在 crontab 条目中 - 我的回答显示了如何使其正常工作