shell腳本的定時任務(wù)

最近有個需求要求定時對服務(wù)器上的文件進行壓縮處理,算是實戰(zhàn)中用的第一個shell吧

crontab

命令crontab -e進行開始編寫自己的定時代碼
* * * * * /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log
分 小時 日 月 周 具體的命令

這里的時分秒注意一下,
如果想每隔五分鐘執(zhí)行可以是*/5 * * * * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log
如果是每天晚上十二點二十分執(zhí)行20 00 * * * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log
如果是每個月的一號中午十二點二十執(zhí)行20 12 1 * * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log
如果是每個周末的十二點二十執(zhí)行20 12 * 7 * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log

特殊符號:

    • 表示任何時間 如果代碼中日月周都是*表示任何時候的這個點都會執(zhí)行
  • ,(逗號) 表示分隔時段的意思 5,10,15 * * * * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log表示每個小時的5分 十分15分的時候執(zhí)行(每小時執(zhí)行三次)
  • -(減號) 8點到12點的 20分鐘都運行 20 8-12 * * * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log
  • /n 表示每隔幾分鐘 */5 * * * * weblogic /u01/app/test/bak/bin/bak.sh >> /u01/app/test/bak/log/bak.log

注意周和日月不能同時使用

date

因為要根據(jù)日期進行壓縮,所以首先第一步要得到當(dāng)前的日期,我們知道要看當(dāng)前的日期的時候用的是date命令,但是得到的格式不是我們需要的,所以需要格式化
感覺mac上的date命令和linux上不太一樣
date -d last-day +%Y%m%d我們可以得到昨天的日期如20181114這樣的值
接下來分析一下參數(shù)和用法:

  • 選項

    • 不加: 顯示當(dāng)前的時間.
    • -d <字符串>:顯示字符串所指的日期與時間。字符串前后必須加上雙引號;
    • -s <字符串>:根據(jù)字符串來設(shè)置日期與時間。字符串前后必須加上雙引號;
    • -u:顯示GMT;
    • --help:在線幫助;
    • --version:顯示版本信息

    時間偏移值支持+-法則,支持second minute hour day week month year甚至支持1 day ago.

  • 參數(shù)(用于格式化)
    %Y %m %d %H %M %S表示年月日時分秒 %a %b星期月份
    其他不常用的參數(shù)

%H 小時,24小時制(00~23)
%I 小時,12小時制(01~12)
%k 小時,24小時制(0~23)
%l 小時,12小時制(1~12)
%M 分鐘(00~59)
%p 顯示出AM或PM
%r 顯示時間,12小時制(hh:mm:ss %p)
%s 從1970年1月1日00:00:00到目前經(jīng)歷的秒數(shù)
%S 顯示秒(00~59)
%T 顯示時間,24小時制(hh:mm:ss)
%X 顯示時間的格式(%H:%M:%S)
%Z 顯示時區(qū),日期域(CST)
%a 星期的簡稱(Sun~Sat)
%A 星期的全稱(Sunday~Saturday)
%h,%b 月的簡稱(Jan~Dec)
%B 月的全稱(January~December)
%c 日期和時間(Tue Nov 20 14:12:58 2012)(不加參數(shù)時的效果)
%d 一個月的第幾天(01~31)
%x,%D 日期(mm/dd/yy)
%j 一年的第幾天(001~366)
%m 月份(01~12)
%w 一個星期的第幾天(0代表星期天)
%W 一年的第幾個星期(00~53,星期一為第一天)
%y 年的最后兩個數(shù)字(1999則是99)

至于說 last-day 還沒百度

關(guān)于變量

1、 賦值的時候=的前后不能有空格
2、默認賦值是字符串,如果需要shell的表達式結(jié)果可以用``包裹代碼,將返回值賦值給變量
3、字符串的變量追加的時候直接跟在后頭,不加引號,憑借不用‘+’

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容