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 # 按文件类型扫描恢复,需指定分区。