apt-get 脚本更新升级 dist-upgrade clean 和 autoremove

apt-get 脚本更新升级 dist-upgrade clean 和 autoremove

我写了这个脚本,

#!/bin/bash
#if not root, run as root
if (( $EUID != 0 )); then
    sudo $0
    exit
fi
apt update
echo
echo ">> Upgrading Packages"
apt -y upgrade
echo
echo ">> Upgrading Distro Packages"
apt -y dist-upgrade
echo
apt clean
echo ">> Performing Autoremove"
apt -y autoremove
dpkg --list |grep "^rc"
if [[ $? -eq 0 ]]
then echo
    echo ">> Purging Old Configuration Files"
    dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
fi
if [[ `du -m /var/log/syslog | cut -f1` -gt 99 ]]
then echo ">> syslog is over 100MB"
    echo ">> logs can be rotated  using the following command:"
    echo
    echo sudo logrotate -f /etc/logrotate.conf
    echo
    echo ">> let me go ahead and do that for you"
    logrotate -f /etc/logrotate.conf
fi
echo ">> Done."

目标是拥有一个一站式商店来更新所有内容并删除任何不必要的软件包。

以上就足够了吗?这里面有什么多余或者不必要的东西吗?有什么需要考虑的危险/注意事项吗?其他(填空)?

编辑:如果我只使用内置的 Ubuntu 12.04 更新管理器,内容会被清理和自动删除吗?

答案1

基本上,是的。然而,正如 AsheeshR 在他的评论中指出的那样,如果做一些被认为“不可取”的事情,它将中止。确保它每次都能正常工作的一种方法是添加选项 --force-yes,但请阅读手册页。实施此选项非常危险,因此您应该坚持使用现在的选项。事实上,apt-get 的手册页说这个选项“可能会破坏你的系统”,所以只有在上述方法不起作用并且只有在非常特殊(和罕见)的情况下,你才会手动使用它。

答案2

这是我用来在 Debian(测试)和 Ubuntu 上执行升级的脚本:

#!/bin/bash
apt update
apt -y dist-upgrade
apt -y autoremove
apt clean
apt purge -y $(dpkg -l | awk '/^rc/ { print $2 }')

它基本上还包括您的脚本:

apt purge -y $(dpkg -l | awk '/^rc/ { print $2 }')

哪个删除包配置文件并有助于节省空间。

我确实喜欢你的 # if not root, run as root 部分,我想我会窃取它:-)

在过去的几年里,我每天运行这个脚本从未发生过任何事件。它们确实发生过,但非常罕见,而且很容易修复。

我最近发现了这一点:

apt -y dist-upgrade --auto-remove --purge

这表明一些命令可以合并到一行中,但我不确定。

Ubuntu 更新管理器是更多地参与它似乎。

相关内容