在CentOS系統中,備份PHP日志可以通過以下幾種方法實現:
tar 命令進行日志備份確定日志文件位置:
/var/log/php-fpm/ 目錄下,例如 access.log 和 error.log。/var/log/httpd/ 目錄下,例如 access_log 和 error_log。創建壓縮備份文件:
tar 命令將日志文件打包成壓縮文件。例如,備份 PHP-FPM 日志:sudo tar -czvf php-fpm-logs-$(date +%Y%m%d).tar.gz /var/log/php-fpm/
sudo tar -czvf apache-php-logs-$(date +%Y%m%d).tar.gz /var/log/httpd/
定期執行備份:
cron 任務中,以便定期執行。例如,每天凌晨 1 點執行備份操作:0 1 * * * root tar -czvf php-fpm-logs-$(date +%Y%m%d).tar.gz /var/log/php-fpm/
或者為 Apache HTTP 服務器創建一個單獨的 cron 任務:0 1 * * * root tar -czvf apache-php-logs-$(date +%Y%m%d).tar.gz /var/log/httpd/
logrotate 進行日志輪轉和備份配置 logrotate:
logrotate 的配置文件通常位于 /etc/logrotate.conf,以及 /etc/logrotate.d/* 目錄下的子配置文件。你可以根據需要自定義這些配置文件。weekly /var/log/*.log
rotate 4
create 0644 root root
missingok
notifempty
compress
delaycompress
sharedscripts
手動觸發日志輪轉:
logrotate 命令手動觸發日志輪轉:logrotate -f /etc/logrotate.conf
編寫備份腳本:
backup_php_logs.sh:#!/bin/bash
LOG_DIR="/var/log/php-fpm/"
BACKUP_DIR="/var/log/backup/"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
cp $LOG_DIR/access.log $BACKUP_DIR/access_$DATE.log
cp $LOG_DIR/error.log $BACKUP_DIR/error_$DATE.log
gzip $BACKUP_DIR/access_$DATE.log
gzip $BACKUP_DIR/error_$DATE.log
find $BACKUP_DIR -type f -name "*.log.gz" -mtime +7 -exec rm {} \;
設置腳本權限:
chmod +x /path/to/your/backup_script.sh
設置定時任務:
cron 來定期運行備份腳本。編輯當前用戶的 crontab 文件:crontab -e
0 2 * * * /path/to/your/backup_script.sh
通過以上方法,你可以實現 CentOS 系統中 PHP 日志的自動備份。根據需要,你可以調整腳本中的路徑、日期格式和備份策略。