一、Java在CentOS上的備份方法
--exclude
參數排除無需備份的目錄(如/proc
、/sys
),減少備份體積。示例命令:tar -czvf /backup/java_app_$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/sys /path/to/java/app
。rsync -avz --delete /source/java/app/ /backup/java_app/
(全量);rsync -avz --delete --link-dest=/backup/java_app_latest/ /source/java/app/ /backup/java_app_incremental/
(增量,保留硬鏈接節省空間)。mysqldump -u root -p'your_password' your_database > /backup/java_db_$(date +%Y%m%d).sql
。建議將數據庫用戶密碼存儲在配置文件中(如~/.my.cnf
),避免命令行泄露。/etc/logrotate.d/java
):/path/to/java/logs/*.log { daily rotate 7 compress missingok notifempty create 0644 root root }
restic init --repo /backup/restic_repo
;備份Java應用目錄:restic -r /backup/restic_repo backup /path/to/java/app
。crontab -e
添加定時任務,實現定期自動備份。示例(每天凌晨2點執行備份腳本):0 2 * * * /path/to/backup_script.sh
。備份腳本需包含上述備份命令及日志記錄(如echo "$(date): Backup completed" >> /var/log/java_backup.log
)。二、Java在CentOS上的恢復方法
tar -xzvf /backup/java_app_20250910.tar.gz -C /path/to/java/app
。rsync -avz /backup/java_app_incremental/ /path/to/java/app/
。mysql
命令導入備份的SQL文件。示例命令:mysql -u root -p'your_password' your_database < /backup/java_db_20250910.sql
。/backup/java_logs/20250910/
)復制到原始日志目錄(如/path/to/java/logs/
)。ps -ef | grep java
(過濾出目標Java應用的進程);kill -9 <PID>
(強制終止進程);nohup java -jar /path/to/java/app.jar > /path/to/java/logs/app.log 2>&1 &
(后臺啟動,日志輸出到指定文件)。extundelete /dev/sdXY --restore-all
(/dev/sdXY
為目標分區,如/dev/sda1
),恢復的文件保存在當前目錄的RECOVERED_FILES
文件夾中。