git备份wordpress
登陆网站目录初始化git仓库 并且 与远程仓库对接上传
首先使用ssh工具(Xshell或者putty等)登入之后进入到自己wordpress网站的根目录
然后初始化仓库
git init
在远程coding或gitee上面新建私有仓库上面,土豪可以在在GitHub上面建私有仓库
把自己网站所在的vps的公钥放到coding或gitee的ssh密钥管理里面
添加公钥
把本地仓库文件传到远程仓库
1 2 3 4 5 6
| git remote add origin git@git.dev.tencent.com:username/wordpreessbackup.git
git add --all git commit -m "你的注释" git push -u origin master
|
我们想把数据库也备份怎么办?
那就干啊,直接在网站根目录下面执行数据库备份,先来看看数据库备份通用的语句
1 2 3 4 5 6 7 8
|
mysqldump -hhostname -uusername -pmypwd databasename > /path to backup/bakname.sql
mysqldump -uwolfdanDB -ppassword wolfdanDB > wolfdanDB2019_7_6.sql
|
然后就成功了,再次推送到远程即可
如果你出了一些问题可以看这里,否则可以直接看下一步:
注: 其实wolfdan我是先犯了下面的错误然后才有上面一条龙正确的,所以下面的这些错误修正意见基本上是说把上面步骤完善好,233
- 没有生成密钥且不会生成密钥的朋友可以看我以前发的文章,虽然当时写得比较水,但还是能看图解决问题的
- 更新仓库发现没有访问权限则检查自己有没有做上面 生成密钥 和 添加公钥
- 上传文件被告知
src refspec master does not match any
,我们使用git status
检查发现是没有git add --all
– > 也就是说我们要先本地commit
写bash代码,并且使用crontab定时执行备份 并定时 清理一个月前备份的sql文件(节省内存呀)
如果每次都手动执行,难免会有忘记的时候,而且就算你博闻强识,你不嫌花时间吗?我们的追求当然是全自动化!当然现在不想折腾了可以保存页面下次来继续折腾
写出backup.sh文件–>** 当然要把一些变量改成你的 变量值**
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #!/bin/bash
path=/home/www/wolfdan.cn
sqlName=wolfdanDB
userName=wolfdanDB
userPasswd=root
DATE=`date +"%Y-%m-%d"`
LogFile=$path/backupLog/$DATE.log
touch $LogFile
echo "wolfdan.cn git auto backup to coding server, start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile echo "---------------------------------------------------------------------------" >> $LogFile
cd $path
mysqldump -u$userName -p$userPasswd $sqlName > wolfdanDB$DATE.sql
git add --all git commit -m "`date '+%Y-%m-%d %H:%M:%S'`" git push origin master
echo -e "---Have a nice day in www.wolfdan.cn----welcome to contact me by VX:wolf_dan2--------\n">> $LogFile
|
赋予backup.sh执行权限并且测试一下
chmod 777 backup.sh
sh backup.sh
我自己之前bash没写好出现的一些问题
bash变量赋值不能为空
数据库名称和密码什么的不能出错
使用crontab定时
vim /etc/crontab
没有vim可以sudo apt-get install vim
(Debian/Ubuntu用户)-sudo yum install vim
(CentOS用户)下载或者暂时用 vi
代替
在注释下面添加你要的任务就行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
0 3 * * 0 root /home/www/wolfdan.cn/backup.sh
0 4 * * 0 root /home/www/wolfdan.cn/auto_rm.sh
|
重载配置并启让配置生效
1 2 3 4
| sudo /usr/sbin/service cron reload
sudo /usr/sbin/service cron restart
|
crontab测试和auto_rm.sh放一起了,所以不妨继续往下看
写auto_rm.sh文件
编码
bash文件一定要小心写cpp时的习惯性变量赋值的空格!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #!/bin/bash
Dir=/home/www/wolfdan.cn
DATE=`date +"%Y-%m-%d"`
LogFile=$Dir/backupLog/$DATE.log
touch $LogFile
echo "wolfdan,cn auto_rm .sql file a monoth ago. Start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile echo "------------------------------------------------------------------------------" >> $LogFile
find $Dir -type f -mtime +30 -name '*.sql*' -exec rm {} \;
echo -e "----Done!Welcome to www.wolfdan.cn and add my VX:wolf_dan2---have a nice day!-------\n" >> $LogFile
|
赋予权限并且测试执行
chmod 777 auto_rm.sh
1 2 3 4 5 6 7 8 9 10
| touch -t 201905011230 test1.sql touch -t 201906011230 test2.sql touch -t 201907011230 test3.sql
ls
sh auto_rm.sh
ls
|
crontab定时测试
细心用户可能看到我定时文件里面以及写上了auto_rm.sh任务了,没有写上的朋友快去写上吧
先修改crontabe配置vim /etc/contab
假设我们现在是11:15,那么我们把日,月,周全打成*号,然后min设置成17,hour设置成11,这样就定时在2mins后了,然后auto_rm设置比backup多1mins
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
17 11 * * * root /home/www/wolfdan.cn/backup.sh
18 11 * * root /home/www/wolfdan.cn/auto_rm.sh
|
当然要重载并重启服务啦啦啦
1 2 3 4
| sudo /usr/sbin/service cron reload
sudo /usr/sbin/service cron restart
|
当然我们又要创建一个月前的测试文件
1 2 3 4
| touch -t 201905011230 test1.sql touch -t 201906011230 test2.sql touch -t 201907011230 test3.sql
|
然后在11:18的时候去ls查看是否还有test1.sql 和 test2.sql
以及输出日志
输出日志是以前的,ball ball 你们动手试试给个反馈吧…不妨把你们的结果发到评论区,谢谢你们
也可以加微信拉群讨论,我会经常发一些朋友圈 wolf_dan2
参考的大佬文章:
https://blog.csdn.net/ouyang_peng/article/details/77334215