Crontab 可以工作,但 root crontab 不工作

Crontab 可以工作,但 root crontab 不工作

大家好,我正在尝试每天 23:55 运行我的脚本。这是我的代码:

# m h  dom mon dow   command
  PATH=/usr/sbin:/sbin:/usr/bin:/bin

  55 23 * * * bash -l /home/as/bin/backupAutoEtc.sh

在 中,这个命令运行正常crontab -e,但如果我将其放入 中,它就不起作用了sudo crontab -e
文件末尾有一个空行(我也尝试过不使用bash -l)。对于 root,日志文件是相同的定时任务和正常定时任务(没有错误),所以我不明白为什么第一个有效而后者无效。我已经阅读了很多关于这个主题的答案,但没有一个对我有用。你有什么想法吗?

先感谢您

PS 脚本如下(/etc 目录的简单每日备份):

#!/bin/bash
dayOfTheWeek=$(date +%u)
nomeFile=backupEtc${dayOfTheWeek}.tar.gz
tar -czvf ~/${nomeFile} /etc

答案1

你可以把它放入sudocrontab 中。像这样:

55 23 * * * sudo /home/as/bin/backupAutoEtc.sh

但是需要将脚本添加sudoers为例外,以便 cron 可以运行它而不提示您输入 root 密码。如果您不知道,请执行以下操作:

sudo visudo -f /etc/sudoers.d/rewrite

在里面使用此行:

user ALL = NOPASSWD: /home/as/bin/backupAutoEtc.sh

使用您自己的用户名而不是用户。问题解决了!

相关内容