通过 crontab 更新 Debian Linux

通过 crontab 更新 Debian Linux

我正在尝试让我的 Raspberry Pi 每周使用以下命令进行自我更新

不确定使用哪一个,因为在我的终端上使用 su root 运行命令失败。

59 2 * * 1 root apt-get 更新&&sudo apt-get 升级 -y > /home/pi/update.log

59 2 * * 1 su root -c “apt-get update&&sudo apt-get upgrade -y” > /home/pi/update.log

答案1

你提到了 crontab,我假设你的意思/etc/crontab是相对于crontab单个用户(也是可能的,但答案略有不同)。/etc/crontab格式为,

min hour day-of-month month day-of-week user  command

所以你提议的第二条线路将运行命令 root ...作为用户su这不是您想要的:apt-get需要以 身份运行root。我们将很快整理出“命令”部分,但其余部分将如下所示 - 根据您指定的时间+日期,

59 2 * * 1 root command

由于上面的命令将以 root 身份运行,因此无需使用sudo。我同意 AB 的建议,即使用unattended-upgradeascron友好且已经有一个日志文件目标,因此无需摆弄将输出重定向到文件等。因此,您最终会得到,

59 2 * * 1 root unattended-upgrade

对于您更裸机的方法,您可以改为(请注意,我已经删除了sudo上面解释的不必要的部分)(未经测试),

59 2 * * 1 root (apt-get update && apt-get upgrade -y) > /home/pi/update.log

我还添加了括号,以便在一个 shell 中执行两个命令,以获得输出两个都命令将被发送到您指定的日志文件。

相关内容