我目前正在运行5个相同的cron作业,每个工作日一个,以备份基于Cpanel的Web服务器上的public_html文件夹。 我的cron看起来像这样:
tar -zcf /home/mywebsite/public_html/backups/monday_backup.tgz ./public_html
tar -zcf /home/mywebsite/public_html/backups/tuesday_backup.tgz ./public_html
.
.
tar -zcf /home/mywebsite/public_html/backups/friday_backup.tgz ./public_html
我想知道是否有办法只编写一次cronjob(而不是5次),以便备份文件自动获取工作日的名称。类似的东西:
tar -zcf /home/mywebsite/public_html/backups/$weekday_backup.tgz ./public_html
谢谢!
答案 0 :(得分:0)
使用:
tar -zcf /home/mywebsite/public_html/backups/`date +%A`_backup.tgz ./public_html
date +%A
为您提供当前工作日(在您的shell或man date
中尝试查看此选项和其他选项)。
我从来没有在cron行中尝试过这样的东西(即嵌入命令),所以你可能需要将它移动到一个单独的脚本并调用该脚本。
答案 1 :(得分:0)
date +%A
会为您提供一周中的某一天。如果要匹配已经使用的名称,可以通过tr '[A-Z]' '[a-z]'
管道输出以将其转换为小写:
tar -zcf /home/mywebsite/public_html/backups/`date +%A | tr '[A-Z]' '[a-z]'`_backup.tgz ./public_html