Mysql

Logrotate 在壓縮文件名末尾附加“1”

  • November 18, 2020

我有一個腳本,它cronjob每 30 分鐘執行一次並佔用mysqldump一些表格。轉儲文件儲存/var/log/

/var/log/mysqldump/dbname/tablename/2014-06-15-18-30-dbname-tablename.sql
/var/log/mysqldump/dbname2/tablename2/2014-06-15-19-00-dbname2-tablename2.sql

logrotate用於文件輪換,配置文件具有以下結構:

/var/log/mysqldump/dbname/tablename/*.sql {
 daily
 rotate 30
 compress
 nocreate
}

現在我的問題是,雖然logrotate工作正常,但它在 gzip 文件名的末尾附加了“1”或“2”,例如這就是我所擁有的

/var/log/mysqldump/dbname2/tablename2/2014-06-15-19-30-dbname2-tablename2.sql.1.gz
/var/log/mysqldump/dbname1/tablename1/2014-06-15-19-00-dbname1-tablename1.sql.2.gz

logrotate從腳本中執行為

logrotate -f /path/to/mysqldump-logrotate.conf

我在這裡做錯了什麼?

Logrotate 將預設為文件添加一個數字。這樣如果它用於文件名,例如 eg /var/log/messages,旋轉的日誌將被命名/var/log/messages.0等等/var/log/messages.1

您的情況有些不同,因為您已經在文件名中有時間戳,因此副檔名是不必要的。Logrotate 沒有不使用擴展的選項 - 但您可以使用一種解決方法。

使用數字序列的替代方法是使用日期/時間戳。這預設為-%Y%m%D,例如-20140618。但是您可以配置字元串的外觀 - 在您的情況下它將是一個空字元串。您可以使用以下配置執行此操作:

dateext          # to use dateformat string instead of sequential numbers
dateformat ''    # to use an empty string as the dateext

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