WordPress安裝在一台VPS服務器上,希望能夠定時將整個網站的數據自動導出,打包,並傳輸到遠程的服務器。備份是完整的,可用於故障恢復。整個過程定時全自動運行。
WordPress的數據分成數據庫數據和網站頁面數據2個部分:
備份數據庫數據
1
|
mysqldump wordpress > wordpress_db.sql
|
如果你的Mysql需要輸入賬號密碼可以在~/.my.cnf中加入
1
2
3
|
[mysqldump]
user=mysqluser
password=secret
|
文件 ~/.my.cnf 需要權限設置成600
備份網站頁面數據
1
|
tar -cvzf wordpress.tar.gz /var/lib/www/wordpress
|
完整的備份腳本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#!/bin/bash
wordpress_db_name=wordpress; #數據庫名稱
wordpress_site_dir=/srv/www/www.youdomain.com/; #你的wordpress網頁所在的目錄
wordpress_site_config_file=/etc/nginx/sites-available/www.youdomain.com; #你的配置文件所在位置
wordpress_dump_file_dir=/srv/backup/; #備份保存目錄
today=`date '+%Y_%m_%d'`;
mkdir ~/wordpress_$today
mkdir ~/wordpress_$today/db
mkdir ~/wordpress_$today/site
mysqldump $wordpress_db_name > ~/wordpress_$today/db/wordpress_db.sql
tar -cvzf ~/wordpress_$today/site/www.knightli.com.tar.gz $wordpress_site_dir
cp $wordpress_site_config_file ~/wordpress_$today/site/
tar -cvzf $wordpress_dump_file_dir/wordpress_$today.tgz -C ~ wordpress_$today
rm -rf ~/wordpress_$today
find $wordpress_dump_file_dir -mtime +5 -name "*.tgz" -exec rm -rf {} \;
|
修改腳本中的以下變量為你對應的值:
變量名稱 |
含義 |
wordpress_db_name |
數據庫名稱 |
wordpress_site_dir |
你的wordpress網頁所在的目錄 |
wordpress_site_config_file |
你的配置文件所在位置 |
wordpress_dump_file_dir |
備份保存目錄 |
定時執行
輸入crontab –e,第一次打開的時候需要選擇編輯工具,vim或nano都可以
最後一行添加
00 08 * * * /folder/backup.sh
重啟一下服務
sudo systemctl restart cron