linux crontab定时任务

#编辑定时任务文件 ,添加以下:

#vi /etc/crontab
0 4 * * 4 root /mnt/schedule.sh >> /mnt/backup_oracle.log

  

#重启定时任务:

#service crond restart

前5个字段分别表示:

       分钟:0-59

       小时:1-23

       日期:1-31

       月份:1-12

       星期:0-6(0表示周日)

#定时任务脚本实例:

#!/bin/bash
############################################################################################
#
#                           Oracle automic backup script
#
############################################################################################

# 0 4 * * 5 root /mnt/schedule.sh >> /mnt/backup_oracle.log
# define variables
USER=xxxx
PASS=xxxx
SCHEMA=XXXXX


backup_oracle_dump() {
        source /home/oracle/.bash_profile
        current_date=$(date '+%Y%m%d')
        #rm -rf /mnt/dbback/ORACLE_SID_$current_date.dump
        rm -rf /u01/admin/XXX/dpdump/ORACLE_SID_*.dump
        expdp $USER/$PASS@XXX schemas=$SCHEMA dumpfile=ORACLE_SID_$current_date.dump
}


delete_backup_file(){

Folder_A="/mnt/dbback/"
files=$(ls $Folder_A)
old_date=$(date -d last-week +%Y%m%d)

for((i=1;i<8;i++))
do
    echo $i
    echo $old_date
    for file_a in $files
    do
        fname=${file_a:11:8}

        #if [ "$old_date" = "$fname" ]
        #then
        # rm -rf /mnt/dbback/ORACLE_SID_$old_date.dump
        #fi
    done
    old_date=$(($old_date-1))
    old_date=$old_date
    bj_date=${old_date:6:2}

    if [ $bj_date = "00" ]
    then
        old_date=$(($old_date-69))
    fi
done

}

# __main__
#delete_backup_file
backup_oracle_dump
scp /u01/admin/xxx/dpdump/ORACLE_SID_$current_date.dump [email protected]:/xxx/bak

#num=3
#cur_date=$(date '+%m')
#echo $cur_date
#cur_date=$(($cur_date+0))
#mod_date=$(( $cur_date % $num))
#echo $mod_date +"bc"

#if [  $mod_date -eq 1 ]
#then

#   echo $mod_date
 # scp /mnt/dbback/ORACLE_SID_$current_date.dump [email protected]:/xxxx/bak
#fi

 

   

   

    Linux Crontab 定时任务 命令详解

猜你喜欢

转载自jatter.iteye.com/blog/2325406