Linux

旋轉舊文件

  • December 10, 2015

我有一個 cron 每小時備份 3 個文件,它們是 SQL 備份 - 格式為name-name-bak-2015-12-1919:30:01.sql

我需要一種方法來輪換和刪除舊的,每 7 天說一次?

想到使用log rotate,求指教

我正在使用 Debian 8

謝謝

克里斯

要添加 logrotate 腳本,您可以創建一個文件,並將其添加到 /etc/logrotate.d/

這是文件腳本內容:

/yourfolder/name-name-bak-*.sql {
      weekly
      missingok
      rotate 14
      compress
      delaycompress
      notifempty
      create 640 root root
}

在這種情況下:

  • weekly它將每週執行一次
  • missingok如果日誌文件失去,請繼續下一個而不發出錯誤消息
  • rotate 14日誌文件在被刪除或郵寄到郵件指令中指定的地址之前被輪換 14 次。如果 count 為 0,則刪除舊版本而不是輪換。
  • compress舊版本的日誌文件預設使用 gzip 壓縮。
  • delaycompress將前一個日誌文件的壓縮推遲到下一個循環週期。這僅在與 compress 結合使用時才有效。當某些程序無法被告知關閉其日誌文件並因此可能會在一段時間內繼續寫入先前的日誌文件時,可以使用它。
  • notifempty如果日誌為空,請勿輪換日誌
  • create 640 root root設置旋轉文件的使用者組和權限

有關手冊頁的更多資訊: http ://www.linuxcommand.org/man_pages/logrotate8.html

要手動啟動(或測試)您的腳本,您可以使用以下命令:

logrotate --force /etc/logrotate.d/yourfilename

引用自:https://serverfault.com/questions/742133