• 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
  • 相关阅读:
    嵌入式为什么要用Linux操作系统
    SPI 协议的理解
    跳转某指定地址、给某绝对地址赋值
    define 宏定义
    笔试--编程题
    spring 技巧集锦
    spring data jpa auditing
    spring security
    Python基础笔记
    调试EF源代码环境配置
  • 原文地址:https://www.cnblogs.com/qcfeng/p/6089975.html
Copyright © 2020-2023  润新知