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 更新管理器是更多參與它似乎。

相關內容