首 页 | 联系我们 | 关于优化网 | 中国阀门网-阀门88网 WEB优化行业门户网站-WEB-YOUHUA.CN
当前位置 : 首页 >> Linux技术 >> linux下mysql数据备份与自动备份实例
返回首页

linux下mysql数据备份与自动备份实例

时间:2010-9-26 9:04:00 来源:中国优化网 作者:Xiaoyong 人气: 750 发表评论  匿名投稿
脚本放在 /home/user/mysql教程_backup.sh crontab # crontab -l # m h dom mon dow command 28 16 * * * /home/user/my(中国阀门网-中国泵阀网-五金机械网)

脚本放在 /home/user/mysql教程_backup.sh

    crontab

    # crontab -l

    # m h  dom mon dow   command

    28 16 * * * /home/user/mysql_backup.sh

    脚本如下

    #!/bin/sh

    # mysql_backup.sh: backup mysql databases and keep newest 5 days backup.

    #

    # last updated: 20 march 2006

    # ----------------------------------------------------------------------

    # this is a free shell script under gnu gpl version 2.0 or above

    # copyright (c) 2006 sam tang

    # feedback/comment/suggestions : http://www.real-blog.com/

    # ----------------------------------------------------------------------

    # your mysql login information

    # db_user is mysql username

    # db_passwd is mysql password

    # db_host is mysql host

    # -----------------------------

    db_user="root"

    db_passwd="password"

    db_host="localhost"

    # the directory for story your backup file.

    backup_dir="/home/mybackup"

    # date format for backup file (dd-mm-yyyy)

    time="$(date +"%d-%m-%y")"

    # mysql, mysqldump and some other bin’s path

    mysql="/usr/local/mysql/bin/mysql"

    mysqldump="/usr/local/mysql/bin/mysqldump"

    mkdir="/bin/mkdir"

    rm="/bin/rm"

    mv="/bin/mv"

    gzip="/bin/gzip"

    # check the directory for store backup is writeable

    test ! -w $backup_dir && echo "error: $backup_dir is un-writeable." && exit 0

    # the directory for story the newest backup

    test ! -d "$backup_dir/backup.0/" && $mkdir "$backup_dir/backup.0/"

    # get all databases

    all_db="$($mysql -u $db_user -h $db_host -p$db_passwd -bse ’show databases’)"

    for db in $all_db

    do

    $mysqldump -u $db_user -h $db_host -p$db_passwd $db | $gzip -9 > "$backup_dir/backup.0/$time.$db.gz"

    done

    # delete the oldest backup

    test -d "$backup_dir/backup.5/" && $rm -rf "$backup_dir/backup.5"

    # rotate backup directory

    for int in 4 3 2 1 0

    do

    if(test -d "$backup_dir"/backup."$int")

    then

    next_int=`expr $int + 1`

    $mv "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"

    fi

    done

    exit 0;

    备注:

    mysql是以mysql用户身份运行的,对/home /mybackup不可写也会失败

    chmod 777 /home/mybackup问题解决了


看一个在lix下定时备份mysql数据库教程

添加backupmysqleveryday.sh(vi /data/shell/backupmysqleveryday.sh)

  #!/bin/sh

  #this shell is user for backup mysql data everyday

  #author:www.ieliwb.com

  #path-config

  base_mysql_path=/data/webserver/mysql/

  mysql_dump_path=/data/mysqlbackup/

  mnt_back_path=/mnt/web/mysqlbackup/

  ftp_back_path=mysql_data_backup/

  #mysql-config

  mysql_user=”root”

  mysql_pass=”*******”

  #ftp-config

  ftp_host=”ip”

  ftp_user=”********”

  ftp_pass=”********”

  backup_name=`date +%y%m%d%h%m%s`

  cd ${mysql_dump_path}

  #mysqldump

  ${base_mysql_path}bin/mysqldump -u${mysql_user} -p${mysql_pass} -all-database > ${backup_name}.sql

  #pack

  tar zcf ${backup_name}.tar.gz ${backup_name}.sql

  rm -f ${backup_name}.sql

  #backup to mnt

  cp ${backup_name}.tar.gz ${mnt_back_path}${backup_name}.tar.gz

  #ftp to other host

  ftp -n<

  open ${ftp_host}

  user ${ftp_user} ${ftp_pass}

  bin

  prompt off

  cd ${ftp_back_path}

  passive

  put ${backup_name}.tar.gz

  close

  bye

  !

  2.添加定时计划(vi /etc/crontab)

  01 0 * * * root /data/shell/backupmysqleveryday.sh

  每天0:01点执行

 

”欢迎转载www.web-youhua.com文章,谢谢

(责任编辑:Xiaoyong)
------分隔线----------------------------
本公司致力于网站建设,网站优化,搜索引擎优化(SEO),Google左侧排名等服务。欢迎转载收藏web-youhua.com
用户名:  验证码:   
理智评论文明上网,拒绝恶意谩骂  [ 查看全部 ] 网友评论
相关推荐