Crontab - 如何在工作日之后命名我的备份文件?

时间:2010-11-17 23:52:19

标签: crontab

我目前正在运行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

谢谢!

2 个答案:

答案 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