にしし ふぁくとりー:西村文宏 個人サイト

No.12383 - 今日のひとことログ

更新

■LOG No.12383

にししふぁくとりーHOMEに掲載している「今日のひとこと」の過去ログ(掲載履歴)です。 RSS

No.12383 〔777文字〕

古いキャッシュファイルを定期的に削除するプログラムをcronで稼働させていたつもりだったのだが、(当初はうまく動作していたものの)保持する期間を延長した後のいつかから、扱う総ファイル数が多すぎて、Fatal error: Allowed memory size of XXXXX bytes exhausted (tried to allocate XXXXX bytes)……というエラーを出してプログラムが失敗してしまっていた。その結果、1ディレクトリの中に189万個もファイルが生成されていて驚いた。┌(:3」└)┐ 約1.5年間くらい放置していたようだ。189万個もファイルがあると、rm -rf *みたいなコマンドでは多すぎて消せない(し、直近の数万ファイルはキャッシュとして残しておきたい)ので、No.12380で述べたfindコマンドに-deleteオプションを付ける方法で古すぎるファイルだけを消した。その結果、サーバの使用容量が20GBも減った。キャッシュだけでそんなに使っていたとは……。古いキャッシュを消すプログラムは、ブラウザからも(手動でも)アクセスできるようにPHPで作成していたのだが(単に消すだけではなくて総数や削除成功数等の報告を画面上で確認するために)、それよりもシェルスクリプトでfindコマンドを実行するように書いて、それをcronで定期実行する方が良さそうだ。(直接cronにfindコマンドを指定しないのは、対象ディレクトリが複数あることと、現在のサーバ契約ではcronの設定可能数に上限があるため。)こういうのがあるので(ない方が良いのだが)、何か自動的にファイルを生成し続けるようなプログラムを稼働させる際には、SSHでシェルにログインできる権利のあるサーバを契約しておかないといけない。
2024年4月
123456
78910111213
14151617181920
21222324252627
282930
2024年5月
1234
567891011
12131415161718
19202122232425
262728293031
2024年6月
1
2345678
9101112131415
16171819202122
23242526272829
30

Powered by てがろぐ Ver 4.5.1

--- 当サイト内を検索 ---