您现在的位置是: 网站首页 >Shell >Shell常用脚本 Shell

使用Shell脚本自动备份项目中的MySQL数据库

admin2019年3月13日 14:39 Linux | Shell 1122人已围观

Shell常用脚本简介 汇总常用的Shell常用脚本

**自动备份项目中的MySQL数据库** 指定备份路径,自动搜索所有数据库,可以添加到Linux定时任务中 ```bash #!/bin/bash # 备份MySQL数据库的脚本 # 2019年3月13日 backup_folder="mysqlbackup"$(date +%Y-%m-%d) backup_path="/root/django-web/StarMeow/project_bak/${backup_folder}" # 文件保存路径 # 判断文件夹是否存在,如果不存在则创建 if test -d $backup_path then echo "文件夹 $backup_folder 存在" else echo "文件夹 $backup_folder 不存在,创建中" mkdir $backup_path fi mysql_user="root" mysql_pswd="test" function check_exist(){ if [ ! -e $1 ] # 如果sql文件不存在,进行备份 then echo "$(date +"%Y-%m-%d %H:%M:%S") 正在备份 $1 数据库" >> $backup_path/backup_log.log else echo "$(date +"%Y-%m-%d %H:%M:%S") 删除 $1 数据库备份后重新备份" >> $backup_path/backup_log.log rm $1 fi } function backup_mysql(){ echo "备份 $1 数据库中..." # 备份数据库 database_dump="${backup_path}/database_$1.sql" # 命令执行备份 if test -z $2 # 第二个参数为空也就是不用压缩 then check_exist $database_dump mysqldump -u$mysql_user -p$mysql_pswd $1 > $database_dump elif test $2 = "gzip" then check_exist $database_dump.gz # 压缩数据库备份 mysqldump -u$mysql_user -p$mysql_pswd $1 | gzip > $database_dump.gz else echo "命令、参数错误" fi if [ $? == 0 ] then echo -e "$(date +"%Y-%m-%d %H:%M:%S") 数据库 $1 备份成功$2\n" >> $backup_path/backup_log.log else echo -e "$(date +"%Y-%m-%d %H:%M:%S") 数据库 $1 备份出错$2\n" >> $backup_path/backup_log.log fi } # 判断,mysql是否安装 mysql_version=$(mysql -V) if [ $? == 127 ]; then echo mysql命令没找到,可能没安装 else echo "当前mysql版本:$mysql_version" >> $backup_path/backup_log.log echo "$(date +"%Y-%m-%d %H:%M:%S") 自动备份mysql数据库到 $backup_path 目录" >> $backup_path/backup_log.log # 备份指定名字数据库 # backup_mysql "djangostarmeow" # backup_mysql "flaskmovie" # 压缩备份指定名字数据库 # backup_mysql "djangostarmeow" "gzip" # 压缩备份所有数据库 backup_mysql "--all-databases" "gzip" # 获取mysql所有数据库 all_databases=$(mysql -u$mysql_user -p$mysql_pswd -e "show databases;") # 得到的结果为:Database djangostarmeow flaskmovie information_schema mysql performance_schema # 按照空格分隔字符串,放在数组内 arr=(${all_databases}) for name in ${arr[*]} do # 虚幻备份 if test $name != "Database" then backup_mysql $name fi done fi ```

很赞哦! (0)

文章交流

  • emoji
0人参与,0条评论

当前用户

未登录,点击   登录

站点信息

  • 建站时间:网站已运行2074天
  • 系统信息:Linux
  • 后台程序:Python: 3.8.10
  • 网站框架:Django: 3.2.6
  • 文章统计:256 篇
  • 文章评论:60 条
  • 腾讯分析网站概况-腾讯分析
  • 百度统计网站概况-百度统计
  • 公众号:微信扫描二维码,关注我们
  • QQ群:QQ加群,下载网站的学习源码
返回
顶部
标题 换行 登录
网站