因为之前给wordpress搬家没搬明白,然后当时又没有及时备份,导致了我当时丢失了我所有的网站内容,当时的内心真的是崩溃的一逼。
所以现在痛定思痛,经过一番折腾,写了一个简单的wordpress和Mysql备份脚本,内容非常简单,适用于任何网站以及数据库的备份。以下是我自己的一些设定,你可以根据自己的实际情况来修改。
Contents
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~