• linux中执行定时任务对oracle备份(crontab命令)


    执行定时任务对oracle表数据备份:

    1、创建sh脚本

    [oracle@localhost ~]$ vi bak.sh

    2、添加脚本内容

    #!/bin/bash
    #:本脚本自动备份7天的数据库,每次备份完成后,删除7天之前的数据。
    #加载oracle的相关参数
    #如果oracle参数不明确,请使用命令查看
    # su - oracle 
    # echo $ORACLE_HOME
    export ORACLE_BASE=/opt
    export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
    export ORACLE_SID=ORCL
    export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
    #oracle字符集
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    #获取当前时间,格式:20150210
    DATE=$(date +%Y%m%d)
    #获取7天之前的时间,格式:20150203
    DATE_RM=$(date -d "7 days ago" +%Y%m%d)
    #设置备份目录,
    export DIR=/home/test02/backup
    echo $DIR
    #创建日期目录
    mkdir $DIR/$DATE
    #开始备份,此处采用exp方式导出,根据实际情况可选用expdb数据方式导出
    echo 'Oracle backup...'
    exp simba_ism/iflytek@ORCL  file=$DIR/$DATE'/simbaism_'$DATE'.dmp' log=$DIR/$DATE'/simbaism_log_'$DATE'.log'
    exp cs_prod/quickdone@ORCL  file=$DIR/$DATE'/csprod_'$DATE'.dmp' log=$DIR/$DATE'/csprod_log_'$DATE'.log'
    echo 'Oracle backup successfully.'
    echo 'remove...'
    rm -rf $DIR/$DATE_RM
    echo 'remove successsfully.'

    3、赋权:

    [oracle@localhost ~]$ chmod 777 ./bak.sh

    4、添加定时任务:

    [oracle@localhost ~]$ crontab -e

    #每天一点半执行一次
    30 1 * * * /home/backup/bak.sh

    5、查看任务:

    [oracle@localhost ~]$ crontab -l

    关于linux在shell中获取系统时间:

    获得当天的日期 date +%Y%m%d      输出: 20110728

    可以使用date的 -d参数 获取今天之前或者往后的日期

    获取明天的日期 date -d next-day +%Y%m%d

    获取前几天的日期 date -d "7 days ago" +%Y%m%d

    获取昨天的日期 date -d last-day +%Y%m%d

    crontab 前面5个*参数的意义:

    0~59 表示分 
    1~23 表示小时 
    1~31 表示日 
    1~12 表示月份 
    0~6 表示星期(其中0表示星期日)

    例子:

    #每天早上6点10分
    10    6     *     *     *     date
    #每两个小时
    0     */2   *     *     *     date
    #晚上11点到早上8点之间每两个小时,早上8点
    0     23-7/2,8      *     *     *     date
    #每个月的4号和每个礼拜一到礼拜三的早上11点
    0     11    4     *     1-3  date
    #1月1日早上4点
    0     4     1     1       *  date

    ========================================================================================== 我希望每一篇文章的背后,都能看到自己对于技术、对于生活的态度。 我相信乔布斯说的,只有那些疯狂到认为自己可以改变世界的人才能真正地改变世界。面对压力,我可以挑灯夜战、不眠不休;面对困难,我愿意迎难而上、永不退缩。 其实我想说的是,我只是一个程序员,这就是我现在纯粹人生的全部。 ==========================================================================================
  • 相关阅读:
    一、Docker前提介绍
    CentOS6.10忘记MySQL8密码的解决办法
    阿里云服务器结合域名解析部署springboot项目到Tomcat
    Javap指令集
    微服务之路(十一)spring cloud stream
    微服务之路(十)spring cloud zuul
    微服务之路(九)spring cloud feign
    微服务之路(八)spring cloud netflix hystrix
    python连接oracle数据库
    单元测试-unittest模块
  • 原文地址:https://www.cnblogs.com/weihuang6620/p/7838568.html
Copyright © 2020-2023  润新知