在CentOS上备份Java日志可采用以下方法:
sudo yum install logrotate
/etc/logrotate.d/java
(不存在则创建),添加:/path/to/java/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 root root
}
替换 /path/to/java/logs/
为实际日志路径。sudo logrotate -d /etc/logrotate.d/java # 测试
sudo systemctl reload logrotate # 重载
backup_java_logs.sh
):#!/bin/bash
LOG_DIR="/path/to/java/logs"
BACKUP_DIR="/path/to/backup"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
cp $LOG_DIR/*.log $BACKUP_DIR/${DATE}.log
> $LOG_DIR/*.log # 清空原日志
find $BACKUP_DIR -mtime +30 -name "*.log" -exec rm -f {} \; # 删除30天前备份
赋予执行权限:chmod +x backup_java_logs.sh
。crontab -e
添加:0 0 * * * /path/to/backup_java_logs.sh # 每天凌晨执行
通过rsync将日志备份到远程服务器:
sudo yum install rsync
#!/bin/bash
LOCAL_DIR="/path/to/java/logs"
REMOTE_USER="user"
REMOTE_HOST="remote_host"
REMOTE_DIR="/backup/java_logs"
DATE=$(date +%Y%m%d)
rsync -avz $LOCAL_DIR/*.log ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/${DATE}.log
赋予权限并添加到定时任务。