logrotate工具(推薦)
/etc/logrotate.d/syslog,示例配置:/var/log/syslog {
daily
rotate 7
compress
missingok
notifempty
create 640 root adm
postrotate
systemctl reload rsyslog
endscript
}
sudo logrotate -f /etc/logrotate.conf。rsync命令(增量備份)
sudo rsync -av /var/log/ /backup/logs/ # 全量同步
sudo rsync -av --delete /var/log/ /backup/logs/ # 增量同步(刪除目標目錄多余文件)。
tar命令(打包壓縮)
sudo tar -czvf /backup/logs_$(date +%Y%m%d).tar.gz /var/log/。
cron定時任務
0 0 * * * sudo tar -czvf /backup/logs_$(date +%Y%m%d).tar.gz /var/log/ 。
從備份文件恢復
sudo rsync -av /backup/logs/ /var/log/ # 恢復rsync備份
sudo tar -xzvf /backup/logs_20250916.tar.gz -C /var/log/ # 恢復tar壓縮包。
利用logrotate恢復
sudo systemctl restart rsyslog。
數據恢復工具(無備份時)
sudo extundelete /dev/sdaX --restore-file /var/log/syslog # 需在刪除后未寫入新數據時使用。
sudo photorec /dev/sdaX # 按文件類型掃描恢復,需指定分區。