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