可能重复:
在 cron 中转义双引号和百分号 (%)
我在 cron 中有以下命令:
5 6 * * * bash -c "tar -czf /backups/sites-server-files-rotate/sites_`date +%F`.tar.gz /backups/sites-server-files/"
但命令没有执行。我可以在 cron 日志中看到以下内容:
Apr 17 06:05:01 backup crond[9423]: (root) CMD (bash -c "tar -czf /backups/sites-server-files-rotate/sites_`date +)
看起来%
sign 会切断 cron 中的命令。为什么?我必须转义它吗?如何转义?
答案1
是的,你必须将其转义。反斜杠即可。
您也可以将命令放入脚本中并调用该脚本。
答案2
是的,你需要将其转义。只需\
在每次出现 之前输入反斜杠即可%
。
这百分比字符表示 crontab 中的新行。
答案3
您可以使用脚本创建一个 bash 文件,然后将其添加到 crontab。
例如:制作文件script.sh
#!/bin/bash
tar -czf /backups/sites-server-files-rotate/sites_\`date +%F\`.tar.gz /backups/sites-server-files/
然后添加到 cron:
5 6 * * * /dir/to/your/script.sh