Wishlist 0 ¥0.00

FastCopy 的备份脚本调整和任务计划

以定时备份 Joomla 网站为例,优化脚本并确保 FastCopy 和数据库备份无缝运行。以下是具体步骤,适用于 Windows 环境(如 XAMPP),基于 FastCopy 5.8.x 和 Joomla 上下文。

---

### 优化后的备份脚本
为了实现动态日期文件夹并同时备份文件和数据库,我调整了一个综合批处理脚本。你可以直接使用它,并通过任务计划程序调用。

#### 脚本内容:`backup_joomla_full.bat`
```bat
@echo off
setlocal EnableDelayedExpansion

:: 设置变量
set "BACKUP_ROOT=D:\Backup"
set "JOOMLA_ROOT=C:\xampp\htdocs\joomla"
set "FASTCOPY_PATH=C:\FastCopy\FastCopy.exe"
set "MYSQLDUMP_PATH=C:\xampp\mysql\bin\mysqldump.exe"
set "DB_USER=root"
set "DB_PASS=YourPassword"  :: 替换为你的数据库密码
set "DB_NAME=joomla_db"     :: 替换为你的数据库名
set "DATE_STAMP=%date:~0,4%%date:~5,2%%date:~8,2%"  :: 生成 YYYYMMDD 格式,例如 20250222
set "BACKUP_DIR=%BACKUP_ROOT%\joomla_%DATE_STAMP%"
set "LOG_FILE=%BACKUP_DIR%\backup_log.txt"

:: 创建备份目录
if not exist "%BACKUP_ROOT%" mkdir "%BACKUP_ROOT%"
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"

:: 运行 FastCopy 备份文件
echo [%date% %time%] Starting file backup... >> "%LOG_FILE%"
"%FASTCOPY_PATH%" /cmd=diff /srcfile="%JOOMLA_ROOT%" /to="%BACKUP_DIR%" /auto_close /verify /logfile="%LOG_FILE%" /exclude="cache/*;tmp/*"
if %ERRORLEVEL%==0 (
    echo [%date% %time%] File backup completed successfully. >> "%LOG_FILE%"
) else (
    echo [%date% %time%] File backup failed with error %ERRORLEVEL%. >> "%LOG_FILE%"
)

:: 运行 mysqldump 备份数据库
echo [%date% %time%] Starting database backup... >> "%LOG_FILE%"
"%MYSQLDUMP_PATH%" -u %DB_USER% -p%DB_PASS% %DB_NAME% > "%BACKUP_DIR%\joomla_db.sql"
if %ERRORLEVEL%==0 (
    echo [%date% %time%] Database backup completed successfully. >> "%LOG_FILE%"
) else (
    echo [%date% %time%] Database backup failed with error %ERRORLEVEL%. >> "%LOG_FILE%"
)

echo [%date% %time%] Backup process finished. >> "%LOG_FILE%"
exit /b 0
```

#### 脚本说明
- **动态文件夹**:备份存储在 `D:\Backup\joomla_YYYYMMDD\`,每天新建文件夹。
- **文件备份**:FastCopy 使用“Diff”模式,排除 `cache/` 和 `tmp/`,并验证完整性。
- **数据库备份**:mysqldump 导出 Joomla 数据库到同一文件夹。
- **日志**:记录备份过程,便于排查问题。
- **自定义项**:
  - 修改 `JOOMLA_ROOT`、`BACKUP_ROOT`、`DB_PASS` 和 `DB_NAME` 为你的实际值。
  - 如果路径含空格,确保用双引号包裹。

#### 保存脚本
- 将代码保存为 `C:\FastCopy\backup_joomla_full.bat`。
- 双击运行测试,确认:
  - `D:\Backup\joomla_20250222\` 创建成功。
  - 文件和 `joomla_db.sql` 备份到位。
  - `backup_log.txt` 有日志输出。

---

### 设置任务计划程序

#### 1. 打开任务计划程序
- 按 `Win + R`,输入 `taskschd.msc`,点击“确定”。
- 界面描述:左侧是导航树(“任务计划程序库”),右侧是操作面板。

#### 2. 创建新任务
- **操作**:
  1. 在右侧点击“创建任务”(不是“创建基本任务”)。
  2. 界面描述:弹出“创建任务”窗口,包含多个选项卡。

#### 3. 配置“常规”选项卡
- **设置**:
  - **名称**:输入 `Joomla Daily Backup`。
  - **描述**:输入 `Daily backup of Joomla website files and database`。
  - **安全选项**:
    - 勾选“不管用户是否登录都要运行”。
    - 勾选“使用最高权限运行”。
    - “配置为”:選擇“Windows 10”或你的系统版本。
- **界面描述**:顶部是名称框,中间是描述框,下方是安全选项区域。

#### 4. 配置“触发器”选项卡
- **设置**:
  1. 点击“新建”。
  2. 新建触发器窗口:
     - **开始任务**:选择“按计划”。
     - **设置**:
       - 选择“每日”。
       - 时间:`02:00:00`(或你选择的低峰时间)。
       - “重复间隔”:1 天。
     - 勾选“已启用”。
  3. 点击“确定”。
- **界面描述**:显示一个表格,列出触发器(例如“每日 02:00:00”)。

#### 5. 配置“操作”选项卡
- **设置**:
  1. 点击“新建”。
  2. 新建操作窗口:
     - **操作**:选择“启动程序”。
     - **程序或脚本**:输入 `"C:\FastCopy\backup_joomla_full.bat"`(带引号)。
     - **添加参数**:留空(脚本已包含所有参数)。
     - **起始于**(可选):`C:\FastCopy\`。
  3. 点击“确定”。
- **界面描述**:操作表格显示一行,内容为启动你的批处理文件。

#### 6. 配置“条件”选项卡
- **设置**:
  - 取消勾选“只有在计算机使用交流电源时才启动”(若适用笔记本)。
  - 其他默认即可。
- **界面描述**:列出电源、闲置等条件,默认大多未勾选。

#### 7. 配置“设置”选项卡
- **设置**:
  - 勾选“允许按需运行任务”。
  - “如果任务运行时间超过以下时间则停止”:选择“1 小时”(防止卡死)。
  - “如果任务未按计划执行,则尽快运行”:勾选。
- **界面描述**:顶部是时间限制设置,下方是失败重试选项。

#### 8. 保存任务
- 点击“确定”。
- 如果提示输入密码,输入管理员账户凭据。
- **界面描述**:任务出现在“任务计划程序库”列表中,状态为“就绪”。

#### 9. 测试任务
- 在任务列表中,右键 `Joomla Daily Backup`,选择“运行”。
- 检查:
  - `D:\Backup\joomla_20250222\` 是否生成。
  - 日志文件是否记录成功。
- **界面描述**:运行后,“最后运行结果”列显示 `0x0`(成功),否则显示错误代码。

---

### 脚本调整建议
1. **密码安全性**:
   - 如果不希望明文存储 `DB_PASS`,可改为交互式输入:
     ```bat
     "%MYSQLDUMP_PATH%" -u %DB_USER% -p %DB_NAME% > "%BACKUP_DIR%\joomla_db.sql"
     ```
     - 但任务计划需用户登录运行(取消“不管是否登录”)。
2. **清理旧备份**:
   - 添加清理逻辑,删除 7 天前备份:
     ```bat
     forfiles /p "%BACKUP_ROOT%" /s /m joomla_* /d -7 /c "cmd /c rmdir /s /q @path"
     ```
     - 放在脚本开头。
3. **错误通知**:
   - 添加邮件通知(需额外工具如 `blat`):
     ```bat
     if %ERRORLEVEL% NEQ 0 (
         blat -to This email address is being protected from spambots. You need JavaScript enabled to view it. -subject "Joomla Backup Failed" -body "Check log: %LOG_FILE%"
     )
     ```

---

### 验证与优化
- **运行结果**:
  - 成功示例日志:
    ```
    [2025-02-22 02:00:01] Starting file backup...
    [2025-02-22 02:00:10] File backup completed successfully.
    [2025-02-22 02:00:11] Starting database backup...
    [2025-02-22 02:00:15] Database backup completed successfully.
    ```
- **优化**:
  - 如果备份时间过长,调整 FastCopy 的 Buffer Size(增大到 256MB)。
  - 检查磁盘空间,确保足够。

---

### 下一步
1. 保存并测试 `backup_joomla_full.bat`。
2. 按任务计划步骤设置,运行一次确认。

About Us

Since 1996, our company has been focusing on domain name registration, web hosting, server hosting, website construction, e-commerce and other Internet services, and constantly practicing the concept of "providing enterprise-level solutions and providing personalized service support". As a Dell Authorized Solution Provider, we also provide hardware product solutions associated with the company's services.
 

Contact Us

Address: No. 2, Jingwu Road, Zhengzhou City, Henan Province

Phone: 0086-371-63520088 

QQ:76257322

Website: 800188.com

E-mail: This email address is being protected from spambots. You need JavaScript enabled to view it.