使用 cron 安排 apt-get 脚本

Ale*_*anu 7 command-line scripts cron schedule

我对 Linux 有点陌生,我刚刚了解了使用 cron 调度任务的知识。我有一个我一直手动使用的小 shell 脚本:

sudo apt-get check && sudo apt-get update && sudo apt-get upgrade && sudo apt-get autoremove && sudo apt-get autoclean
Run Code Online (Sandbox Code Playgroud)

现在我想使用 cron 来安排它,所以我不会每天手动执行它,但似乎我不能这样做。我想这是因为它需要我的 sudo 密码才能继续?有什么方法可以让我在不自动接受升级等的情况下完成这项工作?

Rav*_*ina 10

最好改用“无人值守升级”。

其目的是使计算机自动保持最新的安全(和其他)更新。[1]

安装:

sudo apt install unattended-upgrades
Run Code Online (Sandbox Code Playgroud)

阅读有关如何使其工作的更多信息:这里


为了解决您的问题,您可以/etc/crontab使用rootuser编辑文件并运行您的命令,而无需sudo在您自己的“crontab”文件中使用。

nano /etc/crontab
Run Code Online (Sandbox Code Playgroud)

并添加如下一行:

45 21 * * * root apt-get update > /home/ravexina/out.log
Run Code Online (Sandbox Code Playgroud)

它每晚在“21:45”apt-get update使用root用户运行并将输出记录到/home/ravexina/out.log.