以下是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设置执行频率。注意事项: