Crontab 备份不起作用(不生成日志)

Crontab 备份不起作用(不生成日志)

我想在每天的某个时间运行一个脚本,所以我发现我可以使用cron它。

按照本教程,我crontab像这样编辑了文件:crontab -e并添加:

26 13 * * * ./home/user/backup.sh && echo "Backup done: $(date +"%Y%m%d%H%M%S")" >> /home/user/log.txt

13:26 是 2 分钟前,但在 /home/user 中没有 log.txt

怎么了?

答案1

如果你在终端中运行:

./home/user/backup.sh

你可能会得到如下错误:

bash: ./home/user/backup.sh: No such file or directory

.因为在这种情况下,在脚本路径前使用 (点) 是错误的( )。另外,请通过运行以下命令/home/user/backup.sh确保是可执行的:backup.sh

chmod +x /home/user/backup.sh

此外,请确保您user在任何地方都更改您的用户名。

最后,确保/home/user/backup.sh脚本的退出状态为 0。如果退出状态相差 0,则第二条命令(echo "Backup done: $(date +"\%Y\%m\%d\%H\%M\%S")"- 必须转义所有%字符)将永远不会执行,因为&&操作员

正如我所说的,您必须转义%crontab 条目中的所有(百分比),因为在这种情况下它具有特殊含义:

%命令中的百分号 ( ),除非使用反斜杠 ( \) 进行转义,否则将被更改为换行符,并且第一个 % 之后的所有数据都将作为标准输入发送到命令。

来源:计划任务

相关内容