linux - 安排本月最后一个星期日的 crontab 作业

标签 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,则 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

关于linux - 安排本月最后一个星期日的 crontab 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44851082/

相关文章:

linux - 在 linux 机器上安装 curl-loader

java - pos打印机CUP服务器Ubuntu 16的打印问题

linux - 为什么 "cd -"会有这样的表现?

android - 启动genymotion时出现问题

apache - Mod_rewrite 不能在 Ubuntu 服务器上运行(虽然可以在本地运行)

mysql - 备份MySQL数据库到远程服务器

php - vBulletin 等脚本如何在不使用 cron 作业的情况下启动定期维护作业?

azure - 为什么 Azure WebJob 中的时间触发器被触发两次?

linux - 在 Amazon AWS 中部署 WAR 文件 - Tomcat 和 Apache HTTP Server 冲突

c - 附加到进程后,如何检查tracee是否在系统调用中?