我正在尝试让我的 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-upgrade
ascron
友好且已经有一个日志文件目标,因此无需摆弄将输出重定向到文件等。因此,您最终会得到,
59 2 * * 1 root unattended-upgrade
对于您更裸机的方法,您可以改为(请注意,我已经删除了sudo
上面解释的不必要的部分)(未经测试),
59 2 * * 1 root (apt-get update && apt-get upgrade -y) > /home/pi/update.log
我还添加了括号,以便在一个 shell 中执行两个命令,以获得输出两个都命令将被发送到您指定的日志文件。