0%

刪除 memcachedb log 檔

memcachedb 用的是 BerkeleyDB 每 10M 會輸出一次 log file所以久而久之你的資料夾會充滿一堆 log.xxxxxxxxxx x 是數字依序編列在正常的 Production 環境大概不出三天就會比原本的 DB 還多了一倍的大小如果沒有要還原的需求的話是不需要這些 log 的清除的方法有兩個一個是手動刪一個是透過 memcachedb 清

手動刪的話基本上就是用 find 就可以了find /home/memcachedb_data/ -iname 'log*' | awk '{if (NR > 50) print}' | xargs -i -t rm -f {}如果是要透過 memecachedb 清則可以透過 telnet 或 netcat指令是db_archive不過如果每次都要手動下未免也太累了所以我們可以放在 crontab 裡自動化要放在 crontab 裡面一定要搭配 netcat因爲 telnet 不支援檔案重導符號 <只要隨便開一個檔案填入下列內容

db_archive
quit

然後在 crontab 裏面增加 0 * * * * /usr/bin/netcat localhost 5566 < /root/cmd/memcachedb_rotate_logs 即可每小時自動清一次其中 5566 就是 memcachedb 開的 port