我正在编写一个脚本,每天运行一次以检查 Ubuntu 是否有任何新的安全更新。
如果有,它会列出这些更新,下载它们,然后运行一些测试。
该脚本的目的是确保没有安全更新破坏我们在 Ubuntu 上运行的代码。
我不是 Ubuntu 的资深用户,所以如果这个问题看起来微不足道,请原谅我。我做了大量研究,找到了类似以下信息这我认为这对家庭用户或类似用户来说很有用。但是我无法安装额外的软件包,也没有提供任何不安装软件包的解决方案,(我尝试了每一个不包括下载新软件包的答案)
为了完善我的问题,我想要一个可以获取所有安全更新的命令(这样我就可以将它们视为一个列表,并将其包含在哪些安全包有更新的每日报告中)然后下载并安装它们。我自己进行测试等(显然),我只是需要帮助了解要运行哪些命令。
由于脚本将运行这些命令,它们不需要以任何特定方式供人类阅读,因此它们可以很长且无关紧要,或者最好是不需要预先配置的 1 行代码。
答案1
经过我自己的一些研究和一些摆弄,这是我为自己找到的解决方案:
grep security /etc/apt/sources.list > /tmp/su.list
apt-get -o Dir::Etc::Sourcelist=/tmp/su.list -q update
apt-get -o Dir::Etc::Sourcelist=/tmp/su.list -q upgrade -s 2>&1 | tee /tmp/security_updates_fetch.log
apt-get -o Dir::Etc::Sourcelist=/tmp/su.list -q upgrade -ym --force-yes 2>&1 | tee /tmp/security_updates_install.log
这将输出到标准输出并创建一些文件/tmp/
:
/tmp/su.list
:操作完成后,这是一个被丢弃的文件。security_updates_fetch.log
:包含将要执行的更新。security_updates_install.log
:包含实际更新的日志。