俗话说:不怕万一就怕一万一,数据备份真的很重要,经历了一次数据库数据的丢失,现在每次我都小心翼翼!
数据库备份
通常大家都是使用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 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 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 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:点击查看