私はこの脚本を書きました、
#!/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アップデートマネージャーはより複雑なそうみたいです。