Shell脚本使用汇总整理——达梦数据库备份脚本

Shell脚本使用的基本知识点汇总详情见连接:

https://www.cnblogs.com/lsy-blogs/p/9223477.html

脚本分为三部分配置信息、脚本文件、定时任务;

1、配置信息:

  1. username=SYSDBA
  2. password=SSSTTTSSS
  3. ipStr=localhost
  4. portNumber=
  5. backupsFileStr=/wocloud/db/backups
  6. logsFileStr=/wocloud/db/backups/dmDexpLogs
  7. backupsFileDay=
  8. dexpStr=/opt/dmdbms/bin/dexp
  9. saveDb=HEBEI

参数说明:

username:用户名
password:密码
ipStr:ip地址,最好是localhost
portNumber:端口号
backupsFileStr:存放备份文件绝对路径
logsFileStr:导出过程中日志存放绝对路径
backupsFileDay:保留备份记录多少天
dexpStr:导出工具dexp绝对路径
saveDb:保存数据库名称,多个数据库用逗号分隔

2、脚本文件:

  1. #!/bin/sh
  2.  
  3. #db_backups_conf.txt文件路径
  4. db_backups_conf="/wocloud/shell/dm_db_backups_conf.txt"
  5.  
  6. #判断文件是否存在
  7. if [ -f "${db_backups_conf}" ];then
  8.  
  9. echo $(date +'%Y-%m-%d %H:%M:%S')" 数据库配置信息文件存在,开始进行数据备份"
  10.  
  11. #获取等号前内容,作为map中的Key值
  12. dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))
  13.  
  14. #获取等号后内容,作为map中的value值
  15. dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))
  16.  
  17. #创建一个空map
  18. declare -A map=()
  19.  
  20. #通过循环,将db_backups_conf配置文件中的信息存储在map中
  21. for((i=;i<${#dbArrOne[@]};i++))
  22. do
  23. map[${dbArrOne[i]}]=${dbArrTwo[i]}
  24. done
  25.  
  26. #获取备份数据库
  27. saveDbStr=${map["saveDb"]}
  28.  
  29. #获取默认的字符串分隔符
  30. old_ifs="$IFS"
  31.  
  32. #设置字符串分隔符为逗号
  33. IFS=","
  34.  
  35. #将用户名的value值的字符串进行分隔,获取一个数组
  36. saveDbArr=($saveDbStr)
  37.  
  38. #将字符串的分隔符重新设置为默认的分隔符
  39. IFS="$old_ifs"
  40.  
  41. #获取当前年月日
  42. saveday=$(date +%Y%m%d)
  43.  
  44. #获取超出备份天数的年月日
  45. delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)
  46.  
  47. #遍历要备份的用户名,删除两天前备份的数据文件
  48. for delDb in ${saveDbArr[@]};
  49. do
  50. echo $(date +'%Y-%m-%d %H:%M:%S')" 删除文件:"${map["backupsFileStr"]}/${delDb}_database_${delday}.dmp
  51.  
  52. rm -f ${map["backupsFileStr"]}/${delDb}_database_${delday}.dmp
  53. done
  54.  
  55. #遍历要备份的数据库,备份数据文件
  56. for saveDb in ${saveDbArr[@]};
  57. do
  58. echo $(date +'%Y-%m-%d %H:%M:%S')" 备份数据库:"${saveDb}
  59. ${map["dexpStr"]} USERID=${map["username"]}/${map["password"]}@${map["ipStr"]}:${map["portNumber"]} FILE=${saveDb}_database_${saveday}.dmp LOG=${map["logsFileStr"]}/${saveDb}_database_${saveday}.txt SCHEMAS=${saveDb} DIRECTORY=${map["backupsFileStr"]}
  60. done
  61.  
  62. echo $(date +'%Y-%m-%d %H:%M:%S')" 数据备份完毕,脚本执行完毕"
  63.  
  64. else
  65. echo "文件不存在"
  66. fi

注意:注意代码开头中读取配置文件的路径,这个位置可能不一样,需要进行适当修改。

3、定时任务:

Linux中的sh脚本定时任务,可以通过crontab进行管理,如果linux中没有安装crontab,需要进行安装:

安装命令:

  1. yum -y install vixie-cron
  2. yum -y install crontabs

服务管理

  1. service crond start //启动服务
  2. service crond stop //关闭服务
  3. service crond restart //重启服务
  4. service crond reload //重新载入配置
  5. service crond status //查看crontab服务状态

加入开机自启

  1. chkconfig crond on

(1)设定定时任务:

crontab -e 编写定时任务表达式

例如:

  1. */ * * * /wocloud/shell/fileBackupsScript.sh &>/wocloud/shell/fileBackupsLogs/fileBackupsEcho_`date +\%Y-\%m-\%d-\%H-\%M-\%S`.txt >&

定时表达式+脚本绝对路径+脚本打印信息日志输出绝对路径(一定要有日志输出记录,方便以后进行查看)

(2)重新启动crond

service crond restart;

Shell脚本使用汇总整理——达梦数据库备份脚本的更多相关文章

  1. Shell脚本使用汇总整理

    Shell脚本使用汇总整理 一.Shell脚本常用的头部格式: 头部的作用就是告知linux此脚本的类型: 常用的头部格式如下:(/bin/bash,是bash的路径,如果不知道路径可以通过which ...

  2. Linux平台达梦数据库V7单实例安装方式之图形方式

    一 前言 我们在学习任何一个应用时,了解它的最初步骤通常是学会如何进行安装配置,后序才去关心如何使用,学习达梦数据库也是如此,而达梦数据库的安装提供了多种方式,接下来会一一介绍每种安装方式,达梦数据库 ...

  3. Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本

    Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...

  4. Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

    Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...

  5. Shell脚本使用汇总整理——文件夹及子文件备份脚本

    Shell脚本使用汇总整理——文件夹及子文件备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html ...

  6. DB 查询分析器 6.03 如何灵活、快捷地操作国产达梦数据库

    DB 查询分析器 6.03 如何灵活.快捷地操作国产达梦数据库 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要       本文详细地介绍了"万能数据库查询分析器&qu ...

  7. [转帖]达梦数据库(DM6)和ORACLE 10g的异同点

    达梦数据库(DM6)和ORACLE 10g的异同点    https://bbs.aliyun.com/detail/351337.html   花花浪子 级别: 小白 发帖 0 云币 -41 加关注 ...

  8. 达梦数据库学习(一、linux操作系统安装及数据库安装)

    达梦数据库学习(一.linux操作系统安装及数据库安装) 环境介绍: 使用VM12+中标麒麟V7.0操作系统+达梦8数据库 一.linux系统搭建 本部分没有需要着重介绍,注意安装时基本环境选择&qu ...

  9. 达梦数据库产品支持技术学习分享_Week1

    本周主要从以下几个方面进行本人对达梦数据库学习的分享,学习进度和学习情况因人而异,仅供参考. 一.达梦数据库的体系架构 二.达梦数据库的安装 三.达梦数据库的数据类型 四.达梦数据库的DDL.DML. ...

随机推荐

  1. linux之sed的用法

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed ...

  2. jdbc 大数据存储 图片读取

    package com.itheima.clob.test; import java.io.File; import java.io.FileReader; import java.io.FileWr ...

  3. 【Unity3D】用C#读取INI配置文件

    由于在C#并没有提供专门读取INI文件的API,所以需要间接调用C++的API来进行读取. using System; using System.Collections.Generic; using ...

  4. 《C#高效编程》读书笔记05-为类型提供ToString()方法

    System.Object.ToString()是.NET环境中最常用的方法之一.编写类型时,要提供一个合理的ToString版本,否则使用者就不得不自己构造一套可以阅读的表示. public cla ...

  5. Android Asynchronous Http Client

    Features Make asynchronous HTTP requests, handle responses in anonymous callbacks HTTP requests happ ...

  6. Spring scope 配置

    Scope 描述的是 Spring 容器如何新建Bean的实例,Spring的Scope有以下几种,通过@Scope来注解实现: 1. Singleton: 一个Spring容器中只有一个Bean的实 ...

  7. 在Magento中用MySQL模拟队列发送电子邮件

    1. 需求 顾客在网站上购买特定商品并且这些商品的总金额超过特定金额后,使用email给顾客发送一个优惠券:假如某件商品已经降价了,则此商品的金额不计算在目标总金额内: 2. 需求分析 ①发送优惠券的 ...

  8. 内置函数isNaN()

    NaN(not a number)的产生:算术运算返回一个未定义的或无法表示的值 1.NaN并不一定用于表示某些值超出表示范围的情况.将某些不能强制转换为数值的非数值转换为数值的时候,也会得到NaN. ...

  9. Struts2笔记2

    一.请求参数封装 1.属性驱动:     (1).无实体类情况:属性和动作类在一起         a.编写jsp页面,提交数据,例如name和age            <form acti ...

  10. winform 自适应屏幕分辨率具体操作和注意事项

    第一步:先借助一个类文件 AutoSizeFormClass.cs class AutoSizeFormClass { public struct controlRect { public int L ...