我的bash腳本生成一個日誌文件。現在我想實現一些日誌文件旋轉。
比方說第一次,它被稱爲somelog.log,它更名爲somelog.log.1和新的日誌文件somelog.log下一次。
第三次新的日誌是somelog.log了,但somelog.log.1更名爲somelog.log.2和老somelog.log到somelog.log.1。
我將能夠授予最大例如5.
這是否完成之前(示例腳本),任何建議。我很欣賞任何建議。Bash腳本日誌文件輪換
7
A
回答
2
試試這個bash函數,它有兩個參數:
- 數量最大兆字節的文件應該超過被旋轉(否則讓不變)
- 文件名的完整路徑。
來源:
function rotate() {
# minimum file size to rotate in MBi:
local MB="$1"
# filename to rotate (full path)
local F="$2"
local msize="$((1024*1024*${MB}))"
test -e "$F" || return 2
local D="$(dirname "$F")"
local E=${F##*.}
local B="$(basename "$F" ."$E")"
local s=
echo "rotate msize=$msize file=$F -> $D | $B | $E"
if [ "$(stat --printf %s "$F")" -ge $msize ] ; then
for i in 8 9 7 6 5 4 3 2 1 0; do
s="$D/$B-$i.$E"
test -e "$s" && mv $s "$D/$B-$((i+1)).$E"
# emtpy command is need to avoid exit iteration if test fails:
:;
done &&
mv $F $D/$B-0.$E
else
echo "rotate skip: $F < $msize, skip"
fi
return $?
}
0
我只是做了一個bash腳本: https://github.com/lingtalfi/logrotator
它基本上會檢查你的日誌文件的大小,如果超過任意的閾值,它複製將日誌文件放入日誌目錄中。
這是cron友好的,或者你也可以手動使用它。
的典型命令看起來像這樣:
> ./logrotator.sh -f private/log -m {fileName}.{datetime}.txt -v
相關問題
- 1. 使用bash腳本在linux/solaris上進行日誌輪換
- 2. Bash腳本來解析日誌文件
- 3. Logback日誌文件輪換策略
- 4. Bash腳本獲取當日日誌
- 5. jboss日誌輪換
- 6. bash的日誌文件轉換爲CSV
- 7. 的Bash shell腳本 - 寫入自定義日誌文件
- 8. Bash腳本日誌文件顯示不斷屏幕
- 9. 閱讀日誌bash腳本時出錯
- 10. QuickFIX:日誌輪換功能
- 11. 編寫bash腳本來更改文本並寫入日誌
- 12. 輸出shell腳本到日誌文件
- 13. shell腳本來分析日誌文件
- 14. bash腳本:提取和轉換文件
- 15. 轉換自定義日誌文件導入TSV(shell腳本)
- 16. Util日誌記錄不會刪除舊日誌文件輪流
- 17. Windows事件日誌與文本日誌
- 18. 將文本文件中的所有值轉換爲bash中的日誌比例
- 19. Bash監視jPos XML日誌文件
- 20. 如何計算ip用於登錄bash腳本中的日誌文件?
- 21. 如何使用bash腳本在日誌文件中搜索多個字符串
- 22. BASH腳本檢查當前月份和上個月的日誌文件
- 23. 閱讀Bash腳本文件
- 24. 運行BASH腳本文件
- 25. bash腳本讀取文件
- 26. Bash腳本複製文件
- 27. bash腳本查找文件
- 28. 文件搜索bash腳本
- 29. Linux/c + +日誌輪換計劃
- 30. Ruby on Rails生產日誌輪換
人[logrotate的](http://linux.die.net/man/8/logrotate)? – 2010-09-11 06:13:16
已經回答。 [這裏] [1] [1]:http://stackoverflow.com/questions/3690936/change-file-name-suffixes-using-sed/3691279#3691279 – 2011-01-29 15:18:56