歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下2種定時執行任務方法

Linux下2種定時執行任務方法

日期:2017/2/27 16:06:13   编辑:Linux教程
at命令

假如我們只是想 要讓特定任務運行一次,那麼,這時候就要用到at監控程序了。

設置at命令很簡單,指示定運行的時間,那麼就會在哪個時候運行。at類似打印 進程,會把任務放到/var/spool/at目錄中,到指定時間運行它 。at命令相當於另一個Shell,運行at time命令時,它發送一個個命令,可以輸入任意命令或者程序。at now + time命令可以在指示任務。

假設處理一個大型數據庫,要在別人不用系統時去處理數據,比如凌晨3點10分。那麼我們就應該先建立/home/kyle/do_job腳本管理數據庫,計劃處理/home/kyle/do_job文件中的結果。正常方式是這樣啟動下列命令:
# at 2:05 tomorrow
at>/home/kyle/do_job
at> Ctrl+D

AT Time中的時間表示方法

  • Minute at now + 5 minutes 任務在5分鐘後運行
  • Hour at now + 1 hour 任務在1小時後運行
  • Days at now + 3 days 任務在3天後運行
  • Weeks at now + 2 weeks 任務在兩周後運行
  • Fixed at midnight 任務在午夜運行
  • Fixed at 10:30pm 任務在晚上10點30分

查看at執行的具體內容:一般位於/var/spool/at目錄下面, 用vi打開,在最後一部分就是你的執行程序

crontab 命令

cron是一個Linux下 的定時執行工具,可以在無需人工干預的情況下運行作業。由於Cron 是Linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:

  • /sbin/service crond start //啟動服務
  • /sbin/service crond stop //關閉服務
  • /sbin/service crond restart //重啟服務
  • /sbin/service crond reload //重新載入配置
  • /sbin/service crond status //查看服務狀態

你也可以將這個服務在系統啟 動的時候自動啟動:

在/etc/rc.d/rc.local這個腳本的末尾加上:

/sbin/service crond start

現在Cron這個服務已經在進程裡面了,我們就可以用這個服務了,Cron服務提供以下幾種接口供大家使用:

直接用crontab命令編輯

cron服務提供 crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:

  • 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

基本格式 :

*****command

分  時  日  月  周  命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令

crontab文件的一些例子:

#每晚的21:30重啟apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每天早上6點10分
10 6 * * * date

#每兩個小時
0 */2 * * * date

#晚上11點到早上8點之間每兩個小時,早上8點
0 23-7/2,8 * * * date

#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * mon-wed date

#1月份日早上4點
0 4 1 jan * date

Copyright © Linux教程網 All Rights Reserved