美文网首页
MYSQL自动备份Shell脚本

MYSQL自动备份Shell脚本

作者: 懒懒DE鳄鱼 | 来源:发表于2017-05-25 18:21 被阅读0次

    1新建一个back.sh 脚本 

    #!/bin/bash

    id="root" #用户名

    pwd="vd123" #密码

    dbs="zhangdezhi" #数据库名字的列表,多个数据库用空格分开

    backuppath="/home/mysqlbackup" #保存备份的位置

    day=30  #保留最近几天的备份

    [ ! -d $backuppath ] &&mkdir -p $backuppath  #判断备份目录是否存在,不存时新建目录。

    cd $backuppath  #转到备份目录,这句话可以省略。可以直接将路径到命令的也行。

    backupname=mysql_$(date +%Y-%m-%d)  #生成备份文件的名字的前缀,不带后缀。

    for db in $dbs;  #dbs是一个数据名字的集合。遍历所有的数据。

    do

    mysqldump  $db >$backupname_$db.sql  #备份单个数据为.sql文件。放到当前位置

    if [ "$?" == "0" ]  #$? 得到上一个shell命令的执行的返回值。0表示执行成功。其他表示错误。并将将结果写入到日志中。

    then

    echo $(date +%Y-%m-%d)" $db  mysqldump sucess">>mysql.log

    else

    echo $(date +%Y-%m-%d)"  $db mysql dump failed">>mysql.log

    exit 0

    fi

    done

    tar -czf $backupname.tar.gz *.sql #压缩所有sql文件

    if [ "$?" == "0" ]

    then

    echo $(date +%Y-%m-%d)" tar sucess">>mysql.log

    else

    echo $(date +%Y-%m-%d)" tar failed">>mysql.log

    exit 0

    fi

    rm -f *.sql  #删除所有的sql文件

    delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz  #得到要删除的太旧的备份的名字。

    rm -f $delname  #删除文件。

    2.给脚本执行权限 否则会报 Permission denied 错误

    3.在windows下编辑脚本传到linux下会报bin/sh^M:badinterpreter:Nosuchfileordirectory 错误

    这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息

    修改文件格式

    #sh>vi filename

    利用如下命令查看文件格式

    :set ff 或 :set fileformat

    可以看到如下信息

    fileformat=dos 或 fileformat=unix

    利用如下命令修改文件格式

    :set ff=unix 或 :set fileformat=unix

    :wq (存盘退出)

    最后再执行文件

    4.数据库报Warning: Using a password on the command line interface can be insecure.错误

    MySQL 5.6 在命令行输入密码,就会提示这些安全警告信息。

    1、针对 mysql

    mysql -u root -pPASSWORD 改成 mysql -u root -p 再输入密码即可。

    2、mysqldump 就比较麻烦了,通常都写在scripts脚本中。

    vim /etc/mysql/my.cnf

    [mysqldump]

    user=your_backup_user_name

    password=your_backup_password

    修改完配置文件,重启MyQL后,只需要执行mysqldump脚本就可以了。备份脚本中不需要涉及用户名密码相关信息。

    相关文章

      网友评论

          本文标题:MYSQL自动备份Shell脚本

          本文链接:https://www.haomeiwen.com/subject/zfpzxxtx.html