• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    shell实现自动备份mysql、整站数据的两个脚本分享

    案例一:shell+cron实现MySQL自动备份且自动删除N天前备份

    复制代码 代码如下:

    #!/bin/sh
    DUMP=/usr/local/mysql/bin/mysqldump
    OUT_DIR=/home/ldl/xxx/backup/
    LINUX_USER=ldl

    DB_NAME=ldl
    DB_USER=ldl
    DB_PASS=xxx
    #How much days backup most
    DAYS=1

    #Core of script
    cd $OUT_DIR
    DATE=`date +%Y_%m_%d`
    OUT_SQL="$DATE.sql"
    TAR_SQL="mysql_$DATE.tar.gz"
    $DUMP --default-character-set=utf8 --opt -u$DB_USER -p$DB_PASS $DB_NAME > $OUT_SQL
    tar -czf $TAR_SQL ./$OUT_SQL
    rm $OUT_SQL
    chown $DB_NAME:nobody ./$TAR_SQL
    find ./ -name "mysql*" -type f -mtime +$DAYS -exec rm {} \;


    +++++++++++++++++++++++++++++++++++++++++++++++++++++
    mysqldump不用解释了吧,注意-uuser -ppass这样才可以,不能有空格。

    复制代码 代码如下:
    find ./ -name “mysql*” -type f -mtime +$DAYS -exec rm {} \;

    这一句主要是在-mtime上-mtime +5表示5天前的文件,统一删除

    我的操作系统是CentOS 5.4,只要把脚本拷贝到/etc/cron.daily,并设置为相同的权限就可以执行了,不用再添加crontab。

    案例二:CentOS下自动备份网站和数据库的脚本并上传至FTP

    假定这台服务器的网站目录为:/home/www,数据库程序路径为:/usr/local/mysql/bin,数据库名为:levil,ftp服务器为:ftphost,下面先来看完整的自动备份脚本(自动备份脚本保存位置为:/home/backup.sh):

    复制代码 代码如下:

    #!/bin/bash
    cd /home
    WebBakName=web_$(date +%y%m%d).tar.gz
    tar zcvf $WebBakName www
    SqlBakName=sql_$(date +%y%m%d).tar.gz
    /usr/local/mysql/bin/mysqldump -uusername -ppassword levil>backup.sql
    tar zcvf $SqlBakName backup.sql
    ftp -nv ftphost EOF
    user ftpname ftppass
    put $WebBakName
    put $SqlBakName
    quit
    EOF
    rm -f backup.sql $WebBakName $SqlBakName

    下面来给大家一一讲解:首先进入/home目录,定义WebBakName变量为网站备份的文件名,文件名格式为web日期.tar.gz,定义SqlBakName变量为数据库备份的文件名,文件名格式为sql日期.tar.gz,把整个网站目录www打包到WebBakName文件名中,使用mysqldump导出指定数据库内容到backup.sql,然后把数据库备份打包到SqlBakName文件中,本机备份工作至此结束,如果你没有足够大的远程ftp空间的话,可以直接把备份文件下载到本机,但我还是建议直接备份到另外一个服务器上的ftp空间中,做到完全自动化备份,这时你需要把脚本中的ftphost、ftpname和ftppass分别替换成你的ftp信息,整个备份过程就完成了。

    接着输入chmod +x backup.sh给脚本添加执行权限,再输入:crontab -e编辑任务自动开始时间,比如我输入:

    00 05 1 /home/backup.sh 就代表每周1的上午5点整执行该自动备份操作。

    在这一切完成之后,你可以先把自动任务时间改为当前的接近时间,看自动备份脚本是否工作正常,测试OK的话以后就不用担心这台服务器出现任何问题导致数据丢失了,当然如果你的数据更新比较频繁的话,建议把自动备份时间调整为每日

    您可能感兴趣的文章:
    • shell脚本定时备份MySQL数据库数据并保留指定时间
    • shell脚本实现mysql定时备份、删除、恢复功能
    • 使用shell脚本每天对MySQL多个数据库自动备份的讲解
    • 用shell写一个mysql数据备份脚本
    • MySQL数据库的shell脚本自动备份
    • linux下mysql如何自动备份shell脚本
    • 一个简单的MySQL备份Shell脚本
    • CentOS下mysql定时备份Shell脚本分享
    • Shell脚本自动备份MySQL到FTP并定期清理过期备份
    • mysql常用备份命令和shell备份脚本分享
    上一篇:bash脚本中if语句的使用方法
    下一篇:Linux中使用Shell脚本查看Java线程的CPU使用情况
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    shell实现自动备份mysql、整站数据的两个脚本分享 shell,实现,自动,备份,mysql,