以下是CentOS上Java日志的备份策略及常用方法:
使用logrotate工具(推荐)
sudo yum install logrotate/etc/logrotate.d/java,添加以下内容(按天轮转,保留7天,压缩旧日志):/var/log/java/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}
sudo systemctl reload logrotate。Shell脚本+定时任务(cron)
/usr/local/bin/backup_java_logs.sh):#!/bin/bash
LOG_DIR="/var/log/java"
BACKUP_DIR="/backup/java_logs"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/logs_$DATE.tar.gz -C $LOG_DIR .
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
chmod +x /usr/local/bin/backup_java_logs.shcrontab -e,添加0 2 * * * /usr/local/bin/backup_java_logs.sh(每天凌晨2点执行)。远程备份(rsync)
#!/bin/bash
LOCAL_DIR="/var/log/java"
REMOTE_USER="user"
REMOTE_HOST="remote-server"
REMOTE_DIR="/backup/java_logs"
DATE=$(date +%Y%m%d)
tar -czf - $LOCAL_DIR | ssh $REMOTE_USER@$REMOTE_HOST "tar -xzf - -C $REMOTE_DIR/logs_$DATE"
crontab设置执行频率。注意事项: