1.下载七牛云自动备份脚本,目录如下
image.png
进入此目录,执行命令 python setup.py install(需要python2.7以上)
安装完毕,目录如下
image.png
2.编写配置文件
# 备份名称,用于标记
BACKUP_NAME="qiniu-backup"
# 备份目录,多个请空格分隔
BACKUP_SRC="/home/wwwroot/"
# Mysql主机地址
MYSQL_SERVER="127.0.0.1"
# Mysql用户名
MYSQL_USER="root"
# Mysql密码
MYSQL_PASS="mysqlpassword"
# Mysql备份数据库,多个请空格分隔
MYSQL_DBS="dbname"
# 备份文件临时存放目录,一般不需要更改
BACKUP_DIR="/tmp/backuptoqiniu"
# 备份文件压缩密码
BACKUP_FILE_PASSWD="hello"
## 备份配置信息 End ##
## 七牛配置信息 ##
#存放空间
QINIU_BUCKET="chat"
#ACCESS_KEY
QINIU_ACCESS_KEY="8-hz24M********ss"
#SECRET_KEY
QINIU_SECRET_KEY="N5E8o*******dsds"
## 七牛配置信息 End ##
## Funs ##
NOW=$(date +"%Y%m%d%H%M%S") #精确到秒,统一秒内上传的文件会被覆盖
mkdir -p $BACKUP_DIR
# 备份Mysql
echo "start dump mysql"
for db_name in $MYSQL_DBS
do
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS $db_name > "$BACKUP_DIR/$BACKUP_NAME-$db_name.sql"
done
echo "dump ok"
上面的脚本配置基本都已经写的很清楚了,上半部分填写网站的信息,最后三行的信息在七牛获取。QINIU_BUCKET就是存储空间名,ACCESS_KEY和SECRET_KEY在个人面板-密钥管理里获取。那个AK和SK后面对应的长串就是密钥了。
3.测试脚本
给脚本添加权限命令: chmod +x backuptoqiniu.sh
脚本执行: ./backuptoqiniu.sh
4.设置自动运行脚本
4.1 crontab是一个插件,没有的去下载
crontab -e
0 2 * * 0 /bin/bash /root/backuptoqiniu/backuptoqiniu.sh #添加这个脚本
4.2 使用宝塔定时任务,方便查看
image.png
5.一些问题
5.1 数据库密码问题(MySQL 5.6 在命令行输入密码,就会提示这些安全警告信息)
Warning: Using a password on the command line interface can be insecure.
解决方法:
mysqldump 就比较麻烦了,通常都写在scripts脚本中。
vim mysql安装目录/my.cnf
[mysqldump]
user=your_backup_user_name
password=your_backup_password
修改完配置文件,重启MyQL后,只需要执行 mysqldump 脚本就可以了。
#备份脚本中不需要涉及用户名密码相关信息。(这句话很重要,如果你做了上面my.cnf操作,请将2中的配置文件修改,不然会报错)
具体修改 将mysqldump中的密码去除-h $MYSQL_SERVER -p$MYSQL_PASS,不然会报错
# 备份Mysql
echo "start dump mysql"
for db_name in $MYSQL_DBS
do
mysqldump -u $MYSQL_USER $db_name > "$BACKUP_DIR/$BACKUP_NAME-$db_name.sql"
done
echo "dump ok"
5.2 七牛云上传错误
七牛云上传文件是有空间(华南/华东...)之说的,他们每空间的上传链接是不一样的,如果报以下的错误
(None, u'incorrect region, please use up-z2.qiniup.com, detail:X-Log') #这是python返回的元祖,和PHP的数组类似,将返回信息中的up-z2.qiniup.com复制修改./qiniu/conf.py文件中的UP_HOST参数即可
UP_HOST = "up.qiniu.com" 改为 UP_HOST = "up-z2.qiniup.com"
以上就是经常出现的两个错误,别的都不难