移至主內容
首頁  >  LINUX目錄  >  使用腳本與Crontab為Drupal網站實現自動化備份

使用腳本與Crontab為Drupal網站實現自動化備份

使用腳本與Crontab為Drupal網站實現自動化備份

Tag :
Drupal自動備份, Crontab, Script
Written by admin on 14 December 2024

1. 創建一個備份腳本

創建一個Shell腳本,例如 backup-drupal.sh。以下是完整腳本內容,適用於備份Drupal網站的文件和數據庫。

#!/bin/bash

# ------------------------
# 配置變數
# ------------------------
BACKUP_DIR="/path/to/backup"            # 備份文件存儲目錄
DRUPAL_DIR="/path/to/drupal"            # Drupal網站根目錄
DB_NAME="your_database_name"            # 數據庫名稱
DB_USER="your_database_user"            # 數據庫用戶
DB_PASSWORD="your_database_password"    # 數據庫密碼
DATE=$(date +%Y%m%d_%H%M%S)             # 當前日期(用於命名)

# ------------------------
# 建立備份目錄
# ------------------------
mkdir -p "$BACKUP_DIR/$DATE"

# ------------------------
# 備份網站文件
# ------------------------
echo "正在備份網站文件..."
tar -czf "$BACKUP_DIR/$DATE/drupal-files-$DATE.tar.gz" "$DRUPAL_DIR"
echo "網站文件備份完成:$BACKUP_DIR/$DATE/drupal-files-$DATE.tar.gz"

# ------------------------
# 備份數據庫
# ------------------------
echo "正在備份數據庫..."
mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_DIR/$DATE/drupal-db-$DATE.sql"
echo "數據庫備份完成:$BACKUP_DIR/$DATE/drupal-db-$DATE.sql"

# ------------------------
# 清理舊備份(保留30天)
# ------------------------
echo "清理舊備份..."
find "$BACKUP_DIR" -type d -mtime +30 -exec rm -rf {} \;
echo "清理完成,備份過程結束。"

# ------------------------
# 備份成功提示
# ------------------------
echo "Drupal備份已完成,存儲於 $BACKUP_DIR/$DATE"

 

2.配置Crontab執行腳本

設置腳本執行權限

chmod +x /path/to/backup-drupal.sh	

打開Crontab

執行以下命令以編輯當前用戶的Crontab:

sudo crontab -e

添加自動備份腳本

0 2 * * * /path/to/backup-drupal.sh