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

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

一、建立sh脚本linux

[oracle@localhost ~]$ vi bak.sh

二、添加脚本内容shell

#!/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.'

三、赋权:数据库

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

四、添加定时任务:bash

[oracle@localhost ~]$ crontab -e

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

五、查看任务:ui

[oracle@localhost ~]$ crontab -l

 

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

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

能够使用date的 -d参数 获取今天以前或者日后的日期blog

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

获取前几天的日期 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

相关文章
相关标签/搜索