通过 Bash 脚本实现 APT 更新自动化

通过 Bash 脚本实现 APT 更新自动化

我对 Linux 总体来说还比较陌生,仍在学习 :)

我想编写一个 bash 脚本来自动化apt updateapt upgrade。我的想法是发送apt update命令,然后观察行中的特定单词。

例如,apt update完成后,它会显示:

 Reading state information... Done
 89 packages can be upgraded.

所以在这种情况下我想要查找can be upgraded。如果这些词在输出中,脚本就会执行apt upgrade -y

非常感谢您的帮助。提前致谢。

答案1

这个工具/usr/lib/update-notifier/apt-check提供简单的输出。

--human-readable标志提供了更多信息。

简而言之,/usr/lib/update-notifier/apt-check --human-readable给出两个数字:

<n1> packages can be updated.
<n2> updates are security updates.

/usr/lib/update-notifier/apt-check没有选项有以下输出布局:

<n1>;<n1>

因此,可以提取第一个数字,如果它大于 0,则表示有某些更新可用。

提取第一个数字,可用更新的数量:

/usr/lib/update-notifier/apt-check |& cut -d";" -f 1

在脚本中使用它:

#!/bin/bash
if [ $(/usr/lib/update-notifier/apt-check |& cut -d";" -f 1) -gt 0 ]; then
    # Some commands
    sudo apt-get -y dist-upgrade
fi

答案2

实际上你不必关心...只需运行

apt update
apt upgrade

依次类推,如果没有什么可升级的,什么都不会发生。这是一个脚本,这是计算机在执行工作,运行时apt upgrade不会占用太多 CPU。

这里唯一值得做的测试是并且apt-update正常apt-upgrade运行(没有网络错误,没有半安装/配置错误的包)。

相关内容