`
manbuheiniu
  • 浏览: 3248 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
最近访客 更多访客>>
社区版块
存档分类
最新评论

linux SHELL定时备份数据库并上传到指定FTP

阅读更多
网站数据备份是每一个站长必备的技能,做了数据备份可以降低网络数据被丢失的风险。数据库备份时一般有四种方法

1) 直接拷贝数据库文件(不推荐)

2) 使用mysqlhotcopy备份数据库

3) 使用mysqldump备份数据库

4) 使用主从复制机制(replication)(实现数据库实时备份)

我们今天说说使用mysqldump对数据库不停机做备份。在/root/目录下新建databasebackup.sh文件并复制下面的代码为文件内容。并修改配置信息
linux SHELL定时备份数据库并上传到指定FTP

#!/bin/sh
#!技术部分享 http://www.jishubu.net
        
# 定义变量,请根据具体情况修改
# 定义脚本目录
scriptsDir=`pwd`
        
# 定义用于备份数据库的用户名和密码
user=root
userPWD=123456
        
# 定义备份数据库名称
dbNames=(jishubu xingzhengbu shichangbu)
        
# 定义备份目录
dataBackupDir=/home/backup
        
# 定义备份日志文件
logFile=$dataBackupDir/log/mysqlbackup.log
        
# DATE=`date -I`
DATE=`date -d "now" +%Y%m%d`
        
echo `date -d "now" "+%Y-%m-%d %H:%M:%S"` > $eMailFile
        
for dbName in ${dbNames
  • }
  • do
    # 定义备份文件名
    dumpFile=$dataBackupDir/db/$dbName-$DATE.sql.gz
            
    # 使用mysqldump备份数据库,请根据具体情况设置参数
    /usr/local/mysql/bin/mysqldump -u$user -p$userPWD $dbName | gzip > $dumpFile
    if [[ $? == 0 ]]; then
    echo "DataBase Backup Success!" >> $eMailFile
    else
    echo "DataBase Backup Fail!" >> $emailFile
    fi
            
    # 写日志文件
    echo "================================" >> $logFile
    cat $eMailFile >> $logFile
    echo $dumpFile >> $logFile
            
    done
            
            
    # ftp上传备份
    for dbName in ${dbNames
  • }
  • do
    file1=$dbName-$DATE.sql.gz
            
            
    ftp -v -n 127.0.0.1<<EOF
    user jishubu 123456
    bi
    cd mysql
    lcd $dataBackupDir/db
    mput $file1
    bye
    EOF
            
    done

    本shell运行前请手动建立/home/backup/db /home/backup/log 目录。shell 运行前记得添加执行权限 chmod 777 databasebackup.sh

    修改改好后添加定时任务

    crontab -e

    01 03 * * * /root/databasebackup.sh >>/home/backup/log/crontablog.txt
    分享到:
    评论

    相关推荐

      CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中

      主要介绍了CentOS中使用Shell脚本实现每天自动备份网站文件和数据库并上传到FTP中,本文脚本比较实用,其它Linux系统也可参考,需要的朋友可以参考下

      Linux指令一周通 (技术图书大系).azw3

      1.29 ftpshut指令:定时关闭ftp服务器 1.30 ftpwho指令:显示登录ftp用户信息 1.31 gunzip指令:解压缩文件 1.32 gzexe指令:压缩可执行文件 1.33 gzip指令:压缩文件 1.34 indent指令:调整C原始代码文件的格式 ...

      Ubuntu权威指南(2/2)

      2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储...

      Ubuntu权威指南(1/2)

      2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储...

      Python Cookbook

      13.16 登录到IRC并将消息记录到磁盘 498 13.17 访问LDAP服务 500 第14章 Web编程 502 引言 502 14.1 测试CGI是否在工作 503 14.2 用CGI脚本处理URL 506 14.3 用CGI上传文件 507 14.4 检查web页面的存在 509 ...

      vc++ 应用源码包_1

      它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

      vc++ 应用源码包_2

      它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

      vc++ 应用源码包_6

      它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

      vc++ 应用源码包_5

      它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

      vc++ 应用源码包_3

      它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

      vc++ 开发实例源码包

      它包括客户端和服务端,客户端软件主要作用是监测本主机的活动,并将监测到的信息定时发送给服务器。服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。...

    Global site tag (gtag.js) - Google Analytics