zoukankan      html  css  js  c++  java
  • mysql定时备份(linux服务器)转

    一、mysql提供了一个mysqldump的工具可以方便的导出导入数据库信息;

    一般情况下mysql的数据库安装成功后,mysqldump的位置在:/usr/bin 的目录会有mysqldump这个文件。创建bakmysql.sh脚本。脚本如下:
    #!/bin/bash
    # Name:clear_tomcat_log.sh
    # This is a ShellScript For Auto DB Backup and Delete old Backup
    #
    # 参数说明:
    # backupdir 保存路径的绝对地址
    # 代码中 time=` date +%Y%m%d`也可以写为time=”$(date +”%Y%m%d”)” 找到当前日期时间格式
    # 其中`符号是TAB键上面的符号,不是ENTER左边的’符号,还有date后要有一个空格。
    #mysql_bin_dir:mysql的bin路径;
    #dataname:数据库名;
    #user:数据库用户名;
    #password:用户密码;
    #name:自定义备份文件前缀标识
    # name:自定义备份文件前缀标识。
    # -type f    表示查找普通类型的文件,f表示普通文件。
    # -mtime +30   按照文件的更改时间来查找文件,+30表示文件更改时间距现在30天以前;如果是 -mmin +7 表示文件更改时间距现在7分钟以前。
    # -exec rm -rf {} ;   表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号。
    #数据库备份的位置
    backupdir=/home/mysqlbak
    time=` date +%Y%m%d%H%M%S`
    #需要备份的数据库的连接的用户名和密码和数据库
    #mysql_bin_dir/mysqldump -uuser -ppassword dataname | gzip > $backupdir/name$time.sql.gz
    /usr/bin/mysqldump -u root -pBlqy_scsio_1 scsio | gzip > $backupdir/mysql_$time.sql.gz
    #传输至备份服务器,如果保留本机则不需要此步骤
    #scp $backupdir/mysql_$time.sql.gz 22.122.51.158:/data/bakup/159/
    #find $backupdir -name "name*.sql.gz" -type f -mtime +30 -exec rm -rf {} ;
    #保留10日
    find $backupdir -name "mysql_*.sql.gz" -type f -mtime +10 -exec rm -rf {} ;
    
    
    

    二、使用命令行shell测试执行mysqldump,理解必备的参数,查看生成的sql备份文件是否符合需求

    第一步:将编写好的脚本放到数据库的服务器上如下图:
     
    image.png
    第二步:进行授予读写权限:
     
    image.png
    第三步:创建bakmysql.sh中的备份文件夹
     
    image.png
    第四步:配置linux定时任务
    
    创建定时任务:crontab -e
      [图片上传失败...(image-1638b9-1573886433692)]
    
    图中的为每天的凌晨2点执行数据库备份
    
    crontab [-u username]    //省略用户表表示操作当前用户的crontab
        -e      (编辑工作表)
        -l      (列出工作表里的命令)
        -r      (删除工作作)
    

    查看定时任务:crontab -l

    [root@localhost mysqlbak]# crontab -l
    0 2 * * * /home/mysqlbak/bakmysql.sh
    0 2 * * * /home/mysqlbak/bakmysqljj.sh
    

    我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

    [root@localhost mysqlbak]# crontab -e
    
    0 2 * * * /home/mysqlbak/bakmysql.sh
    0 2 * * * /home/mysqlbak/bakmysqljj.sh
    

    crontab的使用

    我们常用的命令如下:

    crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
    
    minute: 表示分钟,可以是从0到59之间的任何整数。
    hour:表示小时,可以是从0到23之间的任何整数。
    day:表示日期,可以是从1到31之间的任何整数。
    month:表示月份,可以是从1到12之间的任何整数。
    week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
    command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
    
    在以上各个字段中,还可以使用以下特殊字符:
    星号(*):代表所有可能的值,例如day字段如果是星号,则表示在满足其它字段的制约条件后每天都执行该命令操作。
    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
    中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次
    

    实例

    实例1:每1分钟执行一次myCommand
    * * * * * myCommand
    实例2:每小时的第3和第15分钟执行
    3,15 * * * * myCommand
    实例3:在上午8点到11点的第3和第15分钟执行
    3,15 8-11 * * * myCommand
    实例4:每隔两天的上午8点到11点的第3和第15分钟执行
    3,15 8-11 */2  *  * myCommand
    实例5:每周一上午8点到11点的第3和第15分钟执行
    3,15 8-11 * * 1 myCommand
    实例6:每晚的21:30重启smb
    30 21 * * * /etc/init.d/smb restart
    实例7:每月1、10、22日的4 : 45重启smb
    45 4 1,10,22 * * /etc/init.d/smb restart
    实例8:每周六、周日的1 : 10重启smb
    10 1 * * 6,0 /etc/init.d/smb restart
    实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
    0,30 18-23 * * * /etc/init.d/smb restart
    实例10:每星期六的晚上11 : 00 pm重启smb
    0 23 * * 6 /etc/init.d/smb restart
    实例11:每一小时重启smb
    * */1 * * * /etc/init.d/smb restart
    实例12:晚上11点到早上7点之间,每隔一小时重启smb
    * 23-7/1 * * * /etc/init.d/smb restart


    原文:
    链接:https://www.jianshu.com/p/076796ee4c16


  • 相关阅读:
    Ajax
    模型层补充
    Django models.py 模型层(单表多表查询)
    Django 模板层
    Django views.py 视图层
    Django urls.py 路由层
    Browser Security-同源策略、伪URL的域
    Browser Security-css、javascript
    Browser Security-基本概念
    exp2:// 一次存储型XSS从易到难的挖掘过程
  • 原文地址:https://www.cnblogs.com/ltian123/p/13370434.html
Copyright © 2011-2022 走看看