■debianの「apt-get clean」で「/var/cache/apt*」ディレクトリを解放する。
2台構成のsquidの片方が停止したので調べてみたら、「/var」がいっぱいになっていた。
[FAIL] squid is not running ... failed!
■本質的な原因は1TBのディスクなのに、rootfsに10GBしか割り当てられていないこと。
(多分、デフォルトインストールのまま)
もう一台のsquid(同じバージョンのdebian)ではrootfsに50GBは割り当てている。
■また「/var」と「/」も分けていないマシン。
他のchrootを載せる予定で、実際載ってるマシンは当然分けられている。
2.0G /var/cache/apt
119M /var/cache/apt-xapian-index
■「/var/cache/apt-xapian-index」は、
「purge」「install」で再インストールしても同じなのでスルー。
■「/var/cache/apt」のディスク容量を解放するには、
「autoclean」ではなく、「clean」が必要。
■だいぶ減った。
36M /var/cache/apt
119M /var/cache/apt-xapian-index
79% /
79% /
■squidも稼働した。
[ ok ] Restarting Squid HTTP proxy: squid.
■「autoclean」では削除されないパッケージも削除出来るのか。
clean
clean は、取得したパッケージのローカルリポジトリを掃除しま
す。/var/cache/apt/archives/ と /var/cache/apt/archives/partial/ か
らロックファイル以外すべて削除します。APT が dselect(1) から呼ばれ
るときには、自動的に clean が実行されます。dselectを使用しない場合
は、ディスクスペースを解放するため、時々 apt-get clean を実行したく
なるでしょう。
autoclean
clean と同様に、autoclean は取得したパッケージのローカルリポジトリ
を掃除します。違いは、もうダウンロードされることがないパッケージ
ファイルや、ほとんど不要なパッケージファイルのみを削除することで
す。このため、長い期間、キャッシュが管理できずに肥大化することな
く、維持することができます。設定オプション APT::Clean-Installed に
off をセットしていれば、インストール済のパッケージファイルが削除さ
れるのを防げます。
■プロキシ経由のaptも成功。
$ for opt in update upgrade autoremove autoclean;do sudo apt-get $opt -y ;done
■ディスクの空いてる、他のマシンでも試してみる。。。
$ du -hs /var/cache/apt*
599M /var/cache/apt
118M /var/cache/apt-xapian-index
$ sudo apt-get clean;du -hs /var/cache/apt*
39M /var/cache/apt
118M /var/cache/apt-xapian-index
■もう一台。
$ du -hs /var/cache/apt*;sudo apt-get clean;du -hs /var/cache/apt*
1.4G /var/cache/apt
79M /var/cache/apt-xapian-index
22M /var/cache/apt
79M /var/cache/apt-xapian-index
■更にもう一台。
$ du -hs /var/cache/apt*;sudo apt-get clean;du -hs /var/cache/apt*
339M /var/cache/apt
78M /var/cache/apt-xapian-index
22M /var/cache/apt
78M /var/cache/apt-xapian-index
■1GB超えたらcleanで解放というスクリプトでも書けば良いのかも。
という、想定テスト。
awk '/[0-9]G/{print}' | \
grep apt && apt-get clean && echo "ok"
1.0G /var/cache/apt
ok
■結論
ただのサブプロキシサーバだと思って過去の私がサイジングしなかったのでしょう。。。