一、建立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