数据备份!

俗话说:不怕万一就怕一万一,数据备份真的很重要,经历了一次数据库数据的丢失,现在每次我都小心翼翼!

数据库备份

通常大家都是使用phpmyadmin直接图形化的界面进行数据的导入和导出,在数据库导入的时候要注意,mysql中要含有和你备份的数据库一样的名字,不然会报错

命令行下的mysql备份:

1
mysqldump -u root -p 数据库名 >dump.sql(备份文件以sql为后缀)

wordpress文件的备份

这个比较简单粗暴,直接tar就行

tar -cvzf 20190329wordpressbk.tar.gz ./*wordpress

安装目录下的所有文件

这里有一个小技巧,就是tar命令如何排除一些你不需要打包的目录

tar -cvzf 20190329wordpressbk.tar.gz --exclude=./log ./*wordpress

安装目录下的所有文件

log为日志目录,就不备份了,注意这里的log后面的/

多个地方存放

数据备份好了,那也不放心啊!俗话说狡兔三窟,我就备份在了三个地方

1.服务器

2.本地电脑

3.github

其他的备份方式我就不做介绍了,主要介绍github的备份方式

github备份

1.首先使用私匙与github账号关联

2.创建仓库repositories

3.命令行上传

1
2
3
git add ./back up file 
git commit -m "date"
git push

我进行备份是文件大小超过了50M,github不给上传

remote: warning: File sources/wordpress_bk20190330.tar.gz is 51.15 MB;
this is larger than GitHub’s recommended maximum file size of 50.00 MB

看来还是得换个办法,就勉强用用我们不务正业的百度网盘进行备份,就是速度有点慢

流程如下:

1.克隆仓库代码

2.将百度账户与服务器进行关联: 设置链接

3.使用上传脚本进行文件上传

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
git init
git clone https://github.com/oott123/bpcs_uploader.git
chmod +x bpcs_uploader.php
./bpcs_uploader.php quickinit
#脚本执行后,会告诉验证码
#Uploader initialization will be begin. If you have already configured the uploader before, your old settings will be overwritten.
Continue? [y/N] y
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 344 100 264 100 80 332 100 --:--:-- --:--:-- --:--:-- 332
Launch your favorite web browser and visit https://openapi.baidu.com/device
Input 验证码在这 as the user code if asked.
After granting access to the application, come back here and press Enter to continue.


#执行文件上传
./bpcs_uploader.php upload ../../Bioinformatic/sources/wordpressbk20190330.sql wordpressbk20190330.sql

#执行文件下载
./bpcs_uploader.php download [path_local] [path_remote]

#云端文件的删除

./bpcs_uploader/bpcs_uploader.php delete [remote path]

备份后数数据默认是存在 百度云/我的应用数据/bpcs_uploader/ 目录下;而且这个目录好像还不能修改

自动备份脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/bash
#author:zpliu
#date:20190331
#application for backup data to Baidu cloud
#

yesterday=`date -d "1 day ago" +"%Y%m%d"`
today=`date +"%Y%m%d"`
mysqluser=登录数据库账户
mysqlpassword=密码
#备份数据库文件
/usr/bin/mysqldump -u $mysqluser  -p$mysqlpassword  wordpress >/var/www/clound/wordpress${today}_bk.sql 2>/dev/null
#备份wordpress文件
echo 文件权限的问题提供的root密码|sudo -S /usr/bin/tar -cPzf /var/www/clound/wordpress${today}_bk.tar.gz /var/www/html/*

#进行文件上传
if [ -f "/var/www/clound/wordpress${today}_bk.sql" -a -f "/var/www/clound/wordpress${today}_bk.tar.gz" ];then
/var/www/clound/bpcs_uploader/bpcs_uploader.php upload /var/www/clound/wordpress${today}_bk.sql wordpress${today}_bk.sql 1>>/var/www/clound/upload.log 2>/dev/null &&rm -rf wordpress${yesterday}_bk.sql
/var/www/clound/bpcs_uploader/bpcs_uploader.php upload /var/www/clound/wordpress${today}_bk.tar.gz wordpress${today}_bk.tar.gz 1>>/var/www/clound/upload.log 2>/dev/null &&rm -rf wordpress${yesterday}_bk.tar.gz
fi

脚本其实很简单就是,导出数据库以及对wordpress进行打包,最后对当前目录进行判断,同时删除以前的备份,节省空间

而百度云盘是上的文件倒是可以想删就删,自己动动手一块删一个时间段的就行了

crontab 执行定时任务

1
2
3
4
5
crontab -e

在vim中编写配置信息如下

0 2 * * * bash 脚本执行路径

每天凌晨两点进行文件备份,明天来看看能不能备份好

报错:MAIL (mailed 144 bytes of output but got status 0x004b#012)

原因有几点:

1.命令执行过程中需要加上绝对路径

2.在crontab -e 编辑模式中需要 加上bash 脚本绝对路径

3.在与百度的进行连接的时候,报错了;重新获取验证码进行连接

API calling error 100 : Invalid parameter

最后脚本每天定时在凌晨2点执行,并且在日志文件中记录着成功的记录

File /apps/bpcs_uploader/wordpress20190401_bk.sql uploaded. Size:1282.812K MD5 Sum:fd4b82eda2347f0979bcc395da11d000

参考

https://blog.csdn.net/qq_31655965/article/details/53288316

crontab:点击查看

------ 本文结束 thankyou 感谢阅读 ------

欢迎扫一扫上面的微信二维码,订阅 codeHub 公众号