Oracle定期運行資料

來源:互聯網
上載者:User

select to_char(add_months(last_day(sysdate) +1, -1), 'yyyymmdd'),to_char(last_day(sysdate)+1 , 'yyyymmdd') from dual ;

00 22  * *  *   [`echo \`cal\`|awk '{print $NF}'` -eq `date +\%d`] && do-something(每月月底做兩個.sh檔案,以防其中一個不執行成功時,另個起作用)
假設每月最後一天的8點10分執行your_cmd_fullname,則
[code]for ((i=1;i<=12;i++));do cal $i 2004|sed '/^$\|2004\|^Su.*/d'|sed -e :a -e 'N;s/\n/ /;ta'|sed 's/.* \([0-9][0-9]\)$/\1/';done|awk '{a[$0]=sprintf("%s,%s",a[$0],NR)}END{for(i in a)printf("10 8 %d %s * your_cmd_fullname\n",i,a[i])}' days|sed 's/ ,/ /'[/code]
執行結果
[code]10 8 29 2 * your_cmd_fullname
10 8 30 4,6,9,11 * your_cmd_fullname
10 8 31 1,3,5,7,8,10,12 * your_cmd_fullname[/code]
然後加入此段代碼到你的crontab中
Linux---Shell:

#!/bin/bash
today=`date +%d`
last_day=`cal | xargs | awk '{print $NF}'`
if [ "$today" != "$last_day" ]; then
    exit 1
fi
....  # other codes start from here

如何在crontab中表達每月的最後一天,用運算式不行

每天執行,在要執行的程式頭做判斷,不是月末則退出

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.