cp或rsync命令复制日志文件到备份目录,可结合date命令生成带时间戳的文件名,例如:#!/bin/bash
LOG_DIR="/var/log/myapp"
BACKUP_DIR="/backup/logs"
DATE=$(date +%Y%m%d%H%M%S)
cp "$LOG_DIR/app.log" "$BACKUP_DIR/app_$DATE.log"
gzip "$BACKUP_DIR/app_$DATE.log"
通过crontab -e设置定时任务(如每天凌晨1点执行)。/etc/logrotate.d/myapp配置文件,设置日志轮转规则(如每天备份、保留7天、压缩),例如:/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
create 640 root adm
}
无需手动编写脚本,系统自动管理。cp命令将备份文件复制回原路径,例如:cp /backup/logs/app_20250808010000.log /var/log/myapp/app.log
恢复后重启应用。tar -xzvf /backup/logs/app_backup.tar.gz -C /var/log/myapp/
lsof命令从/proc中恢复(需进程仍持有文件句柄)。