适用所有人的wordpress+mysql自动备份脚本

因为之前给wordpress搬家没搬明白,然后当时又没有及时备份,导致了我当时丢失了我所有的网站内容,当时的内心真的是崩溃的一逼。

所以现在痛定思痛,经过一番折腾,写了一个简单的wordpress和Mysql备份脚本,内容非常简单,适用于任何网站以及数据库的备份。以下是我自己的一些设定,你可以根据自己的实际情况来修改。

1.创建备份文件夹

在home目录下创建备份文件夹

cd /home
sudo mkdir backup

2.分别创建worpress和mysql备份文件夹

在backup目录下分别新建wordpres和mysql的备份文件夹

cd backup
sudo mkdir mysql-backup
sudo mkdir wordpress-backup

3.新建备份日志

在backup目录下新建一个备份日志文件,这样做的目的,是方便日后查询备份日期的。

sudo touch backup.log

4.创建备份执行程序

在backup目录下新建backup.sh可执行文件

sudo touch backup.sh

5.编辑备份文件的内容

编辑backup.sh文件

sudo vi backup.sh

写入以下内容,其中注释部分请根据自己的实际情况修改,修改完成后记得删除注释部分,然后按esc,输入:wq,然后回车,保存即可

#!/bin/bash
  
# filesetting
name="woaini"   //定义备份文件的开头名字,自己酌情修改
pre=`date +%y-%m-%d`   //给备份文件加入备份日期
mysqldbuser="admin"      //填写mysql数据库的根用户名,如果是用lnmp搭建的话,一般都是root 
mysqldbpasswd="password"     //填写数据库根用户的密码,如果是用lnmp搭建的话,这里填写root用户的密码
mysqldb="wordpress"     //填写存储网站数据的数据库名字,切记这里不是“root”根用户名
webroot="/home/wwwroot/"    //填写wordpress网站所在的根目录,如果是用lnmp搭建的话,一般都存储在/home/wwwroot下
backuproot="/home/backup"    //这里填写备份文件的根目录,如果是按照我上面的一步一步进行的话,这里不需要修改
mysqlroot="/home/backup/mysql-backup"   //这里填写备份mysql数据库的文件夹名称,如果是按照我上面的操作,不需要修改
wproot="/home/backup/wordpress-backup"   //这里填写备份wordpress程序的文件夹名称,按照我的流程来的,无需修改
logfile="/home/backup/backup.log"    //这里填写备份日志所在的位置,按照我的流程,不需要修改

# backup start   //这里是给备份日志写入开始备份的时间,方便日后查看
sudo echo "Backup start" >> $logfile
sudo echo $(date +"%y-%m-%d %H:%M:%S") >> $logfile
sudo echo "------------" >> $logfile

# wordpress backup   //这里是开始备份wordpress主程序
sudo echo "worpress backup" >> $logfile
cd $webroot   
sudo tar -zcvf $name-$pre.tar.gz xxxxx.com   //xxxxx.com请修改为自己wordpress文件夹名称
sudo mv $name-$pre.tar.gz $wproot    //这里是将打包的tar.gz文件移动到wordpress文件夹,上面设置好,这里不用修改


# database backup   //这里是开始备份数据库
sudo echo "Dumping MySQL database..." >> $logfile   
sudo mysqldump -u${mysqldbuser} -p${mysqldbpasswd} $mysqldb | gzip > $mysqlroot/$name-$pre.sql.gz   //这里是开始备份数据库文件,并压缩成.gz文件,无需修改

# backup end   //这里是给备份日子添加结束标志,无需修改
sudo echo "-------------" >> $logfile
sudo echo "Backup end" >> $logfile

6.给予备份程序执行权限

给予backup.sh最高执行权限

sudo chmod 777 backup.sh

7.将备份程序加入定时任务

将backup加入到定时任务中,以后定时自动执行备份

sudo crontab -e

输入下面代码,告诉vps执行的时间

00 01 * * 1 /home/backup/backup.sh

上面这串代码的含义,是每个月的每周一的凌晨一点,都执行一次备份程序,你也可以自定义crontab的格式。

最前面的00代表分钟,后面的01代表小时,在后面的*位置代表代表日,在后面的*位置代表月,最后的1代表月份。

*号代表所有可能的值,如果在月份位置加入*的话,就代表每个月都执行。所以请根据自己的需要来自行设定。

 

上面的脚本,是我在参考了别人的脚本之后,精简的,如果你有更好的脚本的话, 欢迎留言。

最后,enjoy~

 

——本文章为Cattypapa原创,如需转载,请注明出处——

发表评论

电子邮件地址不会被公开。 必填项已用*标注