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 }')

どれのパッケージ構成ファイルを削除しますスペースを節約するのに役立ちます。

私はあなたの # ルートでない場合はルートとして実行する セクションが気に入ったので、それを盗もうと思います :-)

過去数年間、このスクリプトを毎日実行していても、インシデントが発生したことはありません。発生したことはありますが、非常にまれで、簡単に修復できます。

私は最近これを発見しました:

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

これは、いくつかのコマンドを 1 行に結合できることを示唆していますが、確信はありません。

Ubuntuアップデートマネージャーはより複雑なそうみたいです。

関連情報