流苏小筑

自动备份数据库脚本和遇到的错误记录

在做备份数据库到本地一份,再上传到码云上一份时,遇到一个错误
在写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

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »