Apache2在Debian上的備份與恢復指南
Apache2的核心配置文件位于/etc/apache2目錄(包含apache2.conf主配置、sites-available/虛擬主機配置、mods-enabled/模塊配置等)。推薦使用tar命令打包壓縮,保留目錄結構和權限:
sudo tar -czvf /path/to/backup/apache2_configs_$(date +%Y%m%d).tar.gz /etc/apache2
或使用rsync命令(更靈活,支持增量備份):
sudo rsync -a --delete /etc/apache2/ /path/to/backup/apache2/
注:
-a表示歸檔模式(保留權限、時間戳等),--delete表示刪除目標目錄中源目錄不存在的文件(保持同步)。
默認情況下,網站文件存放在/var/www/html目錄(若自定義了文檔根目錄,需替換為實際路徑)。使用tar命令備份:
sudo tar -czvf /path/to/backup/www_data_$(date +%Y%m%d).tar.gz /var/www/html
或使用rsync命令(適合頻繁更新的網站):
sudo rsync -av /var/www/html/ /path/to/backup/www/
注:
-v表示顯示詳細過程,可根據需求添加--exclude排除臨時文件(如*.tmp)。
若網站使用MySQL/MariaDB數據庫(如WordPress、Drupal),需額外備份數據庫。使用mysqldump命令導出:
sudo mysqldump -u [username] -p[password] [database_name] > /path/to/backup/db_[database_name]_$(date +%Y%m%d).sql
注:
-u指定用戶名,-p后直接跟密碼(無空格),[database_name]為數據庫名;建議將密碼寫入配置文件(如~/.my.cnf)以提高安全性。
通過crontab設置定時任務,實現每日自動備份。編輯當前用戶的crontab:
crontab -e
添加以下內容(每日凌晨2點備份配置和網站數據,文件名包含日期):
0 2 * * * tar -czvf /backup/apache2_backup_$(date +\%Y-\%m-\%d).tar.gz /etc/apache2 /var/www/html
注:
%需轉義為\%(避免cron解析為換行符)。
停止Apache服務(避免配置沖突):
sudo systemctl stop apache2
解壓備份的配置文件到原目錄:
sudo tar -xzvf /path/to/backup/apache2_configs_YYYYMMDD.tar.gz -C /
或使用rsync同步:
sudo rsync -a /path/to/backup/apache2/ /etc/apache2/
啟動Apache服務并檢查狀態:
sudo systemctl start apache2
sudo systemctl status apache2
注:若配置文件有語法錯誤,Apache會無法啟動,可通過
sudo apache2ctl configtest測試配置合法性。
停止Apache服務:
sudo systemctl stop apache2
解壓備份的網站數據到原目錄:
sudo tar -xzvf /path/to/backup/www_data_YYYYMMDD.tar.gz -C /var/www/html
或使用rsync同步:
sudo rsync -av /path/to/backup/www/ /var/www/html/
啟動Apache服務:
sudo systemctl start apache2
注:恢復后需檢查網站文件權限(通常為
www-data:www-data),可通過sudo chown -R www-data:www-data /var/www/html修復。
登錄MySQL/MariaDB:
sudo mysql -u [username] -p
選擇目標數據庫:
USE [database_name];
導入備份的SQL文件:
source /path/to/backup/db_[database_name]_YYYYMMDD.sql;
退出MySQL:
exit;
注:導入前需確保數據庫已存在(可通過
CREATE DATABASE [database_name];創建)。
sudo(root權限),確保文件權限正確(如網站文件屬主為www-data)。rsync或duplicity等工具實現增量備份(僅備份變化的部分),節省存儲空間和備份時間。