Aer*_*oss 41 bash cron terminal
我正在设置一个 Cronjob,它将备份我在我的服务器中拥有的 MySQL 数据库,但我不希望它一遍又一遍地覆盖同一个文件。相反,我希望有一系列备份可供选择,自动完成。例如:
## Cronjob, run May 21st, 2011:
mysqldump -u username -ppasword database > /path/to/file/21-03-2011.sql
## SAME Conjob, run May 28th, 2011:
mysqldump -u username -ppasword database > /path/to/file/28-03-2011.sql
Run Code Online (Sandbox Code Playgroud)
等等。
有什么方法可以将系统日期和/或时间用作 Cronjob 中的某种变量?如果没有,你有什么建议来实现同样的目标?
Bru*_*ger 49
您可以尝试这样的操作(正如下面的 glenn jackmann 所指出的,您必须转义所有%字符):
15 11 * * * touch "/tmp/$(date +\%d-\%m-\%Y).sql"
Run Code Online (Sandbox Code Playgroud)
查看您的特定 cron 是否会将 crontab 中的命令作为脚本运行,或者您是否需要编写一个脚本,将日期计算为字符串,然后运行您的 mysqldump 命令。
没有转义%,Redhat Enterprise Linux 5.0 上的“cron”(我认为)一直给我错误,提示我找不到匹配的). 这是因为未转义后的所有内容都%被发送到命令的标准输入。
我还建议使用 ISO8601 日期格式(yyyy-mm-dd,即%F)在词法排序时按日期排序文件名。
您应该可以使用date.
输入info date或man date了解详情。
类似以下内容可能适合您(根据需要更改日期格式)
yourcommand > filepathandnameprefix$(date +"\%d-\%m-\%Y").extension
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90299 次 |
| 最近记录: |