/usr/portage/distfiles を掃除する

うちの環境では、ほとんどの仮想ゲストが仮想ホストの /usr/portage を nfs マウントしています。こうすると emerge --sync は仮想ホストで1回やるだけで良いので、単純にラクだしリポジトリ側にも余計な負荷をかけずに済みます。ただ、これやると種々多様なサーバー達で emerge したソースファイルがものすごい勢いで /usr/portage/distfiles に貯まっていくんですよねw

一応、zabbix で容量監視を掛けているので、使用率が80%を超えたらメールが飛んでくるようにしています。それに対するリアクションは……まぁ一定以上古いファイルを削除するんですが。毎回 find のオプションを忘れて、どうしたものかと悩むので備忘として残しておきます。

いまどれくらいファイルがあるか確認します。

# cd /usr/portage/distfiles
# ls | wc -l
365

ふむ。じゃあ30日以上前に fetch したファイルはどれくらいあるだろう。

# find ./* -atime +30 -exec ls -l {} \; | wc -l
261

……ちょっと多いですね。あんまりゴッソリ消すのは小心者にはしんどいですw しきい値60日だとどうでしょう。

# find ./* -atime +60 | wc -l
206

まだちょっと多いですね。しきい値90日では?

# find ./* -atime +90 | wc -l
0

おぅふw じゃあ70日で。

# find ./* -atime +70 | wc -l
126

お。良い数。(雰囲気の問題

で、ホントに70日以上前だよね……? という確認。

# find ./* -atime +70 -exec ls -lu {} \;

納得したら、消します。

# find ./* -atime +70 -exec rm {} \;
rm: cannot remove './lost+found': Is a directory
# df -hT .
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/md108     ext4  2.0G  1.4G  511M  73% /usr/portage/distfiles

……もうちょっとゴッソリ消しても良かったかなw とりあえず使用率は 73% まで下がりました。

https://manimani.cc/lib/plugins/linkback/exe/trackback.php/wiki:linux:find_and_cleaning_distfile