‘logger rotate’ 與輪替
Asterisk logs 檆(一般ä½Âæ–¼ /var/log/asterisk) 需注æ„Â,它們會越來越大。
ä½ å¯以從 asterisk 指令åˆ-Ã¥ÂÅ¡ “logger rotate” 或
/usr/sbin/asterisk -rx ‘logger rotate’
從 bash 環境裡執行上é¢這行指令…ä½ å¯以把它加入排程內(cron job)讓它自動執行。
logrotate
若你的系統有使çâ€Â¨ logrotate 這樣的工具,你å¯以ä¸Âå¿…å¦外寫腳本(script)來åš,你ä»Âå¯以很好的控制你的logæªâ€Ã¦Â¡Ë†Ã£â‚¬â€š
底下是我系統上的範例 /etc/logrotate.d/asterisk
/var/log/asterisk/messages /var/log/asterisk/*log {
missingok
rotate 5
weekly
create 0640 asterisk asterisk
postrotate
/usr/sbin/asterisk -rx ‘logger reload’ > /dev/null 2> /dev/null
endscript
}
æÂ¤è¨Â定會æ¯Â週輪替(rotate)這些æªâ€Ã¦Â¡Ë†5次,訊æÂ¯æœƒæ˜¯ï¼Œæœ€æ–°çš„logæªâ€Ã¥ÂÂ為 messages.1, messages.2 直到 messages.5 (最舊的logæªâ€). 若你執行 asterisk 時的身份:群組ä¸Â是 asterisk:asterisk, ä½ å¯以刪去這行 create 0640 asterisk asterisk
。
若你åª是è¦Âä¿Âç•™ cdr 記錄為 csv æªâ€Ã§Å¡â€žÃ¨Â©Â±Ã¯Â¼Å’çâ€Â¨Ã¥Â®Æ’來檢查 VOIP æÂÂ供者的æâ€Â¶Ã¨Â²Â»Ã¯Â¼Å’ (精確度ä¸Â在考é‡Â範åœÂå…§) ä½ å¯使çâ€Â¨Ã©â‚¬â„¢Ã¥â‚¬â€¹ logrotate 腳本(script)一個月輪替它們一次。
/var/log/asterisk/cdr-csv/*csv {
missingok
rotate 5
monthly
create 0640 asterisk asterisk
}
logrotate for Debian / Ubuntu
ä½ ä»Â需覠asterisk 的這個指令 ‘logger reload’ 在你æÂ¬ç§» log æªâ€Ã¤Â¹â€¹Ã¥Â¾Å’,å¦則它會繼續寫入舊æªâ€Ã¦Â¡Ë†Ã¨Â£Â¡Ã£â‚¬â€š
目剠Debian 裡æÂ¤æª†/etc/logrotate.d/asterisk çš„é Âè¨Â值是:
/var/log/asterisk/cdr-csv/Master.csv /var/log/asterisk/debug /var/log/asterisk/event_log /var/log/asterisk/messages {
weekly
missingok
rotate 4
sharedscripts
postrotate
/usr/sbin/invoke-rc.d asterisk logger-reload
endscript
}
若你是使çâ€Â¨ copytruncate é¸項,你ä¸Â需覠‘logger reload’ Ã©â‚¬â„¢Ã¥â‚¬â€¹Ã¦Å’â€¡Ã¤Â»Â¤Ã£â‚¬â€šÃ§Â¯â€žÃ¤Â¾â€¹Ã¨Â«â€¹Ã¥ÂÆ’照底下的這個 logrotate 腳本æªâ€Ã¤Â¸Â:
當它還沒長大的足夠的大å°Â,ä¸Âçâ€Â¨Ã¥Å½Â»Ã¨Â¼ÂªÃ¦â€ºÂ¿(logrotate) log æªâ€Ã£â‚¬â€š 看底下的腳本當ä¸Â,我們所使çâ€Â¨Ã§Å¡â€žÃ©â‚¬â„¢Ã¥â‚¬â€¹ copytruncate é¸項來控制這個功能。åª有æªâ€Ã¦Â¡Ë†Ã¥Â¤Â§Ã¦â€“¼ 2000k (2meg) æ‰Â會被輪替。
自訂 Debian / Ubuntu /etc/logrotate.d/asterisk
/var/log/asterisk/cdr-csv/Master.csv /var/log/asterisk/debug /var/log/asterisk/event_log /var/log/asterisk/messages {
weekly
missingok
rotate 9
size 2000k
copytruncate
endscript
}
See also
Go back to Asterisk