自动备份数据库脚本和遇到的错误记录
在做备份数据库到本地一份,再上传到码云上一份时,遇到一个错误
在写shell脚本备份代码时
#################数据库备份信息####################################
# 用户名
#user=因为是在线项目就不写了
# 密码
#password=因为是在线项目就不写了
# 数据库名称
dbname=因为是在线项目就不写了
# 备份路径
mysql_back_path=/backup/szdblog_com_mysqlback
#########################备份数据库###############################
#/usr/bin/mysqldump -h127.0.0.1 -u$user -p$password $dbname>$mysql_back_path/$time.sql
这里会报一个错,在mysql5.6版本将密码写在不安全文件时会报错,所以将密码设置在my.cnf的配置文件里
[mysqldump]
user=因为是在线项目就不写了
password=因为是在线项目就不写了
完后再直接使用mysqldump语句就行了
#!/bin/sh
####################备份文件名称为当天时间#########################
time=`date '+%y-%m-%d-%H:%M:%S'`
file_name=`date '+%y-%m-%d'`
echo $time
echo '开始备份数据库...'
#################数据库备份信息####################################
dbname=typecho_blog
# 备份路径
mysql_back_path=/backup/szdblog_com_mysqlback/$file_name
# 创建目录
if [ ! -d $mysql_back_path ];then
mkdir $mysql_back_path
fi
#########################备份数据库###############################
/usr/bin/mysqldump $dbname>$mysql_back_path/$time.sql
# 将文件压缩
tar -zcPf $mysql_back_path/$time.sql.tar.gz $mysql_back_path/$time.sql
# 删除sql文件
rm -rf $mysql_back_path/$time.sql
echo '数据库备份完成'
exit;
########################删除七天以上的备份文件##################
find /backup/szdblog_com_mysqlback -type f -name "*.sql" -mtime +7 -exec rm {} \;
######################将文件备份到githuab######################
cd /backup/szdblog_com_mysqlback/
git add .
git commit -m "数据库备份$time"
git pull origin master
git push origin master
完后在github/gieee上创建szdblog_com_mysqlback仓库
完后在服务器: cd /backup
git clone xxxx.szdblog_com_mysqlback.git
加入到定时任务 crontab -e