zoukankan      html  css  js  c++  java
  • 1122Shell脚本之利用mysqldump备份MySQL数据库

    1. #!/bin/bash
    2. #Mysql 自动备份 压缩并上传到 指定ftp
    3. #设想每天凌晨3点备份mysql
    4. #编辑crontab配置文件
    5. #00 03 * * * backupmysql.sh
    6. #压缩并以“服务器名+时间 ”命名打包文件
    7. #数据量小的情况下以mail的方式发送到指定邮箱(需要建立sendmail服务)
    8. #数据量大的情况下以ftp的方式传送到指定的ftp服务器(远程ftp需开启)
    9. #linzhanghui.blog.chinaunix.net
    10. #程序部分以伪代码方式存在。
    11. #
    12. #1.设置mysql登陆参数
    13. dbuser=root
    14. dbpassword=123456
    15. dbserver=localhost
    16. dbname=cacti
    17. dbopt=--opt
    18. backupdir=/tmp/dbbackup/
    19. #2.设置ftp具体参数
    20. ftpserver=192.168.137.3
    21. ftpuser=userlin
    22. ftppassword=passwdlin
    23. #3.设置文件备份文件名,备份文件保存天数
    24. fileprefix=lzhserver
    25. dumpfilename=$backupdir$fileprefix`date -d now +%Y%m%d`.sql
    26. newfile=$fileprefix-`date -d now +%Y%m%d`.tar.gz
    27. keepdays=7
    28. #4.写入操作到日志文件(事先需建立)
    29. logfile=/var/log/mysqlbackup.log
    30. logtmp=/var/log/mybackup.tmp
    31. #=====如果没有备份文件夹则建立之======
    32. if [ ! -d "$backupdir" ];
    33. then
    34. echo "无此文件夹,建立中..."
    35. mkdir -p $backupdir
    36. fi
    37. #=====事先删除7天之前的备份数据库文件=====
    38. echo "开始执行备份...">>$logfile
    39. echo "删除保留天数之前的备份文件...">>$logfile
    40. find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {};
    41. echo "删除的备份文件:">>$logfile
    42. cat $logtmp >>$logfile
    43. echo "删除旧备份文件成功!" >>$logfile
    44. #=====备份+打包======
    45. if [ -f $backupdir$newfile ]
    46. then
    47. echo "$newfile 备份文件存在, 备份结束 ...">>$logfile
    48. else
    49. if [ -z $dbpasswd ]
    50. then
    51. mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename
    52. else
    53. mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename
    54. fi
    55. tar czvf $backupdir$newfile $dumpfilename
    56. echo "$backupdir$newfile 备份成功!+“$压缩包容量”">>$logfile
    57. fi
    58. #======以ftp方式发送=====
    59. ftp -i -n <<end_ftp
    60. open $ftpserver
    61. user $ftpuser $ftppassword
    62. lcd $backupdir
    63. hash
    64. prompt 
    65. put $newfile
    66. close
    67. bye
    68. end_ftp
  • 相关阅读:
    CentOS7 防火墙firewalld详细操作
    bootstrap-datetimepicker 滚动错位问题
    Contos更换python版本
    centos7.3下使用yum 安装pip
    备注
    jenkins与SVN 问题记录
    kafka配置
    Jenkins 与github配置
    nginx File not found 错误
    nginx 总结
  • 原文地址:https://www.cnblogs.com/qcfeng/p/6089975.html
Copyright © 2011-2022 走看看