设为首页 收藏本站
查看: 874|回复: 0

[经验分享] mysql自动备份脚本及异地定时FTP

[复制链接]

尚未签到

发表于 2018-10-2 07:29:52 | 显示全部楼层 |阅读模式
  分享个自己写的mysql自动备份脚本、定时执行设置及windows自动FTP,请大家指教。
  前提环境:mysql数据库服务器开启vsftpd,并配置合适帐号以便能被内网存储服务器FTP
  第一步:编写mysql自动执行脚本
  


  • #!/bin/sh
  • # mysql_db_backup.sh: backup mysql databases.
  • #
  • # Last updated: Wed Nov  9 07:01:01 CST 2011
  • # ----------------------------------------------------------------------
  • # This is a free shell script under GNU GPL version 2.0 or above
  • # Copyright (C) 2011 Andy Yao
  • # Blog:http://t.qq.com/andy_microblog
  • # ----------------------------------------------------------------------
  • # your mysql login information
  • # db_user is mysql username
  • # db_passwd is mysql password
  • # db_host is mysql host
  • # -----------------------------

  • db_user="root"
  • db_passwd="123456"
  • db_host="192.168.1.11"
  • # the directory for story your backup file.
  • backup_dir="/mnt/sdb1/mysql_db_backup"
  • # date format for backup file (dd-mm-yyyy)
  • time="$(date +"%Y-%m-%d_%H-%M-%S")"
  • file_time="$(date +"%Y-%m-%d_%H-%M-%S")"


  • mysql_backup_path="$backup_dir/$file_time"
  • mkdir $backup_dir/$file_time
  • log_path="$backup_dir/$file_time.log.txt"

  • #------------this log is for monitor ssh status
  • ssh_log_path="$backup_dir/log.txt"


  • echo "---------------------" >> $ssh_log_path
  • date >> $ssh_log_path


  • echo "-------------------------------------------------------------------------------" >> $log_path
  • echo "--------------" >> $log_path
  • echo "--------" >> $log_path


  • echo "backup mysql db start" >> $log_path
  • date >> $log_path
  • echo "---------------------" >> $log_path


  • #!/bin/bash
  • cat /dev/null > $backup_dir/mysqlback.txt
  •   connmsg=`mysql -h$db_host -u$db_user -p$db_passwd $db /share/"$line".sql

  •         echo "--------" >> $log_path
  •         date >> $log_path
  •         echo "$line" >> $log_path

  •         mysqldump -h$db_host -u$db_user -p$db_passwd "$line" --lock-tables=false | gzip -9 > "$mysql_backup_path/$line.$time.sql.gz"

  •         date >> $log_path
  •         echo "--------" >> $log_path

  • fi

  • done < $backup_dir/mysqlback.txt


  • echo &quot;---------------------&quot; >> $log_path
  • echo &quot;backup mysql db stop&quot; >> $log_path
  • date >> $log_path

  • echo &quot;--------&quot; >> $log_path
  • echo &quot;--------------&quot; >> $log_path
  • echo &quot;-------------------------------------------------------------------------------&quot; >> $log_path

  • #------------this log is for monitor ssh status
  • date >> $ssh_log_path
  • echo &quot;---------------------&quot; >> $ssh_log_path

  • ls -l $mysql_backup_path >> $log_path

  • echo &quot;--------------&quot; >> $log_path

  • cd $backup_dir
  • du -s >> $log_path
  • du -sm >> $log_path
  • du -sh >> $log_path

  • echo &quot;--------------&quot; >> $log_path

  • du -h |sort -rk2 >> $log_path

  • exit 0;
  

  第二步:定时执行mysql备份脚本,设置crontab,这个应该不用解释吧?
  


  • [root@localhost /]# cat /etc/crontab
  • SHELL=/bin/bash
  • PATH=/sbin:/bin:/usr/sbin:/usr/bin
  • MAILTO=root
  • HOME=/

  • # run-parts
  • 01 * * * * root run-parts /etc/cron.hourly
  • 02 4 * * * root run-parts /etc/cron.daily
  • 22 4 * * 0 root run-parts /etc/cron.weekly
  • 42 4 1 * * root run-parts /etc/cron.monthly
  • 01 7 * * * root /mysql_db_backup/mysql_db_backup_auto_db_filelist.sh
  • * */1 * * * root ntpdate 203.129.68.14 && hwclock -w
  • [root@localhost /]# cat /etc/crontab
  

  第三步:windows端自动定时FTP,将下代码保存为bat,并设置计划任务
  


  • @echo off & color 1f & title 自动FTPMYSQL备份文件
  • mode con: cols=60 lines=10
  • echo ==========================================================
  • echo --
  • echo --
  • echo --            ----### 自动FTPMYSQL备份文件 ###----
  • echo --
  • echo --
  • echo --处理中,请不要手动关闭程序窗口,
  • echo --
  • echo --完成后,程序会自动关闭...

  • set xtime=%time::=%
  • set xdate=%date%
  • set copy_path=%xdate:~0,4%-%xdate:~5,2%-%xdate:~8,2%_07-01-01

  • rem 指定LOG存放路径
  • set log_path=c:\bat\log\ftp_mysql_copy.log.txt

  • echo -------------------------------------- >>%log_path%
  • echo -------------------- >>%log_path%
  • date /t >>%log_path% & time /t >>%log_path%
  • echo --开始------------------ >>%log_path%

  • cd E:\MYSQL_BACKUP_12
  • e:
  • md %copy_path%
  • cd %copy_path%

  • echo open 192.168.1.11 >ftp.src
  • echo username>>ftp.src
  • echo password>>ftp.src
  • echo cd /software/mysql_db_backup/%copy_path%/>>ftp.src
  • echo pwd>>ftp.src
  • echo ls>>ftp.src
  • echo prompt>>ftp.src
  • echo bin>>ftp.src
  • echo mget *>>ftp.src
  • echo bye>>ftp.src
  • ftp -s:ftp.src
  • del ftp.src

  • echo --结束------------------ >>%log_path%
  • date /t >>%log_path% & time /t >>%log_path%
  • echo -------------------- >>%log_path%
  • echo -------------------------------------- >>%log_path%
  

  上面的弄完后,你可以开始测试了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607319-1-1.html 上篇帖子: mysql用户变量和全局变量 下篇帖子: Lost connection to MySQL server at ‘reading initial communication packet’
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表