如何在 Linux 服務器設置定時任務場景,小白進階!!!

注意:centos在執行定時任務時若爲sh腳本,則在定時任務中command前不需要sh,但debain需要。

### 一個坑:一個定時任務沒有執行,搞了一天,最後發現是腳本的問題。

注意:在執行腳本是需要確定腳本具有可執行權限

要點:

  • “*/”表示“每”,eg:*/10 * * * * [command]表示:每十分鐘執行一次command
  • “,”表示時間段,如:8,10,表示8和10
  • “-”表示連續時間,如:7-9,表示7到9

1.寫一個shell腳本; 

#!/bin/bash

direc="/opt/tmp/aaa/a"

for dir2del in $direc/* ; do
    if [ -f "$dir2del" ]; then
        rm -rf $dir2del
    fi
    done

2.給這個文件加權限:

   chmod +x filename.sh  (filename.sh添加可執行權限)

3.crontab 執行任務調度
    crontab -e

4.每五分鐘執行   ## “*/”表示“每”,eg:*/10 * * * * [command]表示:每十分鐘執行一次command

*/5 * * * *   /bin/sh  /home//del.sh

5.重啓。

service crond restart 

***********************************************************************************************

※ cron是一個linux下的定時執行工具,可以在無需人工干預的情況下運行作業。
由於Cron 是Linux的內置服務,但它不自動起來,可以用以下的方法啓動、關閉這個服務:
service crond start //啓動服務
  service crond stop //關閉服務
  service crond restart //重啓服務
  service crond reload //重新載入配置

※centos和debian系統的定時命令可能用的不太習慣(如果你用慣了一種系統的話),

所以我都是在配置文件裏配置定時任務的;
下面這是定時任務的命令,用不用看自己心情了:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
   crontab -r //刪除沒個用戶的cron服務
   crontab -e //編輯某個用戶的cron服務
   比如說root查看自己的cron設置:crontab -u root -l
   再例如,root想刪除fred的cron設置:crontab -u fred -r
   在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e

※1、linux任務調度的工作主要分爲以下兩類:
系統執行的工作:系統週期性所要執行的工作,如備份系統數據、清理緩存
個人執行的工作:某個用戶定期要做的工作,例如每隔10分鐘檢查郵件服務器是否有新信,這些工作可由每個用戶自行設置。
2.cron文件語法:
分 小時 日 月 星期 用戶 命令
0-59 0-23 1-31 1-12 0-6 root command 
3.記住幾個特殊符號的含義:
"*":代表取值範圍內的數字,
"/":代表"每",
"-":代表從某個數字到某個數字,
",":分開幾個離散的數字

※可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件;

5 root ls 指定每小時的第5分鐘執行一次ls命令
30 5 root ls 指定每天的 5:30 執行ls命令
30 7 8 root ls 指定每月8號的7:30分執行ls命令
30 5 8 6 root ls 指定每年的6月8日5:30執行ls命令
30 6 0 root ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 root ls 每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25 8-11 root ls 每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段]
/15 root ls 每15分鐘執行一次ls命令 
30 6 /10 * root l s 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。 ]

例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中
30 5 * root ls >/jp/test 2>&1
注:2>&1 表示執行結果及錯誤信息。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章