自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Ubuntu 14.04使用cron實現(xiàn)作業(yè)自動化

系統(tǒng) Linux 系統(tǒng)運維 自動化
Cron是Linux系統(tǒng)中最有用的工具之一,cron作業(yè)是在指定時間到來時被調(diào)度執(zhí)行的作業(yè)。本文講述了Cron的工作機制,你可以用Cron實現(xiàn)調(diào)度作業(yè)作業(yè)。Cron本身是一個守護進程,在后臺運行,通過配置文件“crontab”來根據(jù)時間調(diào)度指定的作業(yè)執(zhí)行。
[[145040]]

 

  Cron是Linux系統(tǒng)中最有用的工具之一,cron作業(yè)是在指定時間到來時被調(diào)度執(zhí)行的作業(yè)。

  最常見的自動化系統(tǒng)管理和自動維護工作,比如每天發(fā)出的按計劃完成了備份的通知,或者是按計劃定時清理/tmp/目錄的通知。還有很多Web應用程序也需要執(zhí)行定時作業(yè)。

  本文講述了Cron的工作機制,你可以用Cron實現(xiàn)調(diào)度作業(yè)作業(yè)。Cron本身是一個守護進程,在后臺運行,通過配置文件“crontab”來根據(jù)時間調(diào)度指定的作業(yè)執(zhí)行。

  一、啟動Cron服務

  基本上所有的Linux發(fā)行版在默認情況下都預安裝了cron工具。即使未預裝cron,也很簡單,執(zhí)行命令手動安裝它:

  1. root@ubuntu-14:~# apt-get install cron  

  接著檢查cron服務的狀態(tài),默認情況它應該運行于后臺。如果它未啟動,那么可以手動啟動此服務。

  1. root@ubuntu-14:~# service cron start 
  2. root@ubuntu-14:~# service cron status  
  3. cron start/running, process 1027  

  二、使用Cron幫助

  如果cron工作正常,那么你可以使用man命令查看其手冊描述的詳細用法。

  1. root@ubuntu-14:~# man crontab 

  上面的命令顯示了crontab手冊描述的使用方法。如果要查看怎樣使用cron作業(yè)指定的信息,可以這樣:

  1. root@ubuntu-14:~# man 5 crontab  

  要退出幫助命令手冊的顯示,按下q鍵或h鍵

  三、Crontab命令的用法

  下面講述怎樣使用crontab命令實現(xiàn)定時調(diào)度作業(yè)。

  1、對Cron作業(yè)進行列表

  使用以下命令列出當前用戶計劃的cron作業(yè)。

  1. root@ubuntu-14:~# crontab –l 

  會列出當前用戶的所有cron作業(yè),如果想查看其它用戶的cron作業(yè),可以使用如下命令:

  1. root@ubuntu-14:~# crontab –l –u username  

  這會列出指定用戶的cron作業(yè)。

  2、編輯Cron作業(yè)

  要添加一個新cron作業(yè),或者是編輯現(xiàn)有的cron作業(yè),可以使用如下命令:

  1. root@ubuntu-14:~# crontab -e 

  3、移除Cron作業(yè)

  使用下面的命令移除已經(jīng)計劃的cron作業(yè)。

  1. root@ubuntu-14:~# crontab –r  

  使用下面的命令移除所有已計劃的cron作業(yè),且無需再次確認。

  1. root@ubuntu-14:~# crontab –ir  

  4、命令參數(shù)

  -u user:用來設定某個用戶的crontab服務;

  file:file是命令文件的名字,表示將file做為crontab的任務列表文件并載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,并將它們載入crontab。

  -e:編輯某個用戶的crontab文件內(nèi)容。如果不指定用戶,則表示編輯當前用戶的crontab文件。

  -l:顯示某個用戶的crontab文件內(nèi)容,如果不指定用戶,則表示顯示當前用戶的crontab文件內(nèi)容。

  -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。

  -i:在刪除用戶的crontab文件時給確認提示。

#p#

  四、用Crontab計劃任務

  除了通過配置文件來處理計劃cron作業(yè)之外,還有別的方法可以做到。如果你查看/etc目錄,你會發(fā)現(xiàn)有這樣的目錄:cron.daily、 cron.hourly、cron.monthly等等。因此,把cron腳本放入這些目錄中,那么系統(tǒng)會根據(jù)這些目錄名定時執(zhí)行這些作業(yè)腳本的。

  1、Cron配置類型

  Cron有兩種配置文件類型,用于調(diào)度自動化任務。

  (1)系統(tǒng)級Crontab

  這些cron作業(yè)被系統(tǒng)服務和關鍵作業(yè)所使用,且需要root級的權限才能執(zhí)行??梢栽?etc/crontab文件中查看系統(tǒng)級的cron作業(yè)。

 

  (2)用戶級Crontab

  用戶級的cron作業(yè)是針對每個用戶單獨分開的。因此每個用戶都可以使用crontab命令創(chuàng)建自己的cron作業(yè),還可以使用以下命令編輯或查看自己的cron作業(yè)。 

  1. root@ubuntu-14:~# crontab –e  

 

  選擇編輯器后,你可以配置新cron作業(yè)了。

  五、用Crontab調(diào)度作業(yè)

  可以使用指定的語法調(diào)度cron作業(yè),而且還有速記縮寫命令,使的管理cron作業(yè)很簡單。

  Crontab語法如下:

  1. * * * * * command to be executed 
  2. - - - - - - 
  3. | | | | | | 
  4. | | | | | --- 預執(zhí)行的命令 
  5. | | | | ----- 表示星期0~7(其中星期天可以用0或7表示) 
  6. | | | ------- 表示月份1~12 
  7. | | --------- 表示日期1~31 
  8. ----------- 表示小時1~23(0表示0點) 
  9. ------------- 表示分鐘1~59 每分鐘用*或者 */1表示  

  六、新Cron作業(yè)配置實例

  現(xiàn)在你已經(jīng)熟悉了crontab命令、語法及cron作業(yè)的類型,現(xiàn)在可以創(chuàng)建一些作業(yè)計劃進行測試??梢允褂胏rontab –e 命令添加。

  1、每分鐘運行的計劃作業(yè)

  下面的例子,創(chuàng)建一個cron作業(yè),它每分鐘輸出文本“test cron job to execute every minute”并把文本發(fā)送到user@vexxhost.com郵箱。

  首先用crontab命令編輯:

  1. root@ubuntu-14:~# crontab –e  

  寫入以下的腳本:

  1. SHELL=/bin/bash 
  2. HOME=/ 
  3. MAILTO=”user@vexxhost.com” 
  4. #This is a comment 
  5. * * * * * echo 'test cron job to execute every minute' 
  6. :wq!    保存并退出  

 

  一旦保存了此cron腳本文件,就可以把它添加到計劃的作業(yè)中。

  2、在指定時間調(diào)度Cron job作業(yè)

  假如想調(diào)度某個cron作業(yè),讓它在“每個星期四的下午7:00”運行,那么crontab腳本應該這樣:

  1. 00 19 * * 4 sh /root/test.sh  

  再把它添加到調(diào)度作業(yè)中。

  1. root@ubuntu-14:~# crontab -e 
  2. crontab: installing new crontab  

  上面腳本中的“00 19”指的是下午7點,“4”指的是星期四。

  七、總結(jié)

  可以看到,用crontab實現(xiàn)自動化任務是很容易的,而且它可以按分鐘、小時、周、月、星期來執(zhí)行任務。除此之外,Linux還有一個at命令,它適用于處理只執(zhí)行一次的任務,且需要先運行atd服務。

  其次要注意環(huán)境變量的問題。有時我們創(chuàng)建了一個crontab,但是這個任務卻無法自動執(zhí)行,而手動執(zhí)行這個任務卻沒有問題,這種情況一般是由于在 crontab文件中沒有配置環(huán)境變量引起的。在crontab文件中定義多個調(diào)度任務時,需要特別注環(huán)境變量的設置,因為我們手動執(zhí)行某個任務時,是在 當前shell環(huán)境下進行的,程序當然能找到環(huán)境變量,而系統(tǒng)自動執(zhí)行任務調(diào)度時,是不會加載任何環(huán)境變量的,因此,就需要在crontab文件中指定任 務運行所需的所有環(huán)境變量,這樣,系統(tǒng)執(zhí)行任務調(diào)度時就沒有問題了。

  還要注意清理系統(tǒng)用戶的郵件日志。每條任務調(diào)度執(zhí)行完畢,系統(tǒng)都會將任務輸出信息通過電子郵件的形式發(fā)送給當前系統(tǒng)用戶,這樣日積月累,日志信息會非常大,可能會影響系統(tǒng)的正常運行,因此,將每條任務進行重定向處理非常重要。

  ***要注意,新創(chuàng)建的cron作業(yè),不會馬上執(zhí)行,至少要過2分鐘才執(zhí)行。如果重啟cron服務則會馬上執(zhí)行。

 

責任編輯:火鳳凰 來源: 威鋒網(wǎng)
相關推薦

2014-04-22 09:26:49

Ubuntu 14.0虛擬化

2019-11-14 10:00:18

Linuxcron任務自動化任務

2012-05-05 21:48:43

puppet自動化運維

2022-11-15 17:07:40

開發(fā)自動化前端

2014-05-30 10:08:06

2025-02-06 14:59:08

2019-03-10 21:13:03

UbuntuLinuxAlfred

2015-10-21 15:08:25

電纜自動化

2021-09-08 16:03:12

Kubernetes 安全開源

2021-10-14 09:55:28

AnsibleanacronLinux

2023-10-25 08:00:00

人工智能游戲開發(fā)

2017-12-17 21:58:18

2021-11-19 10:55:03

GitOps運維自動化

2021-09-17 15:56:14

數(shù)據(jù)平臺自動化

2024-06-11 10:41:14

2022-03-30 09:43:19

jscodeshif自動化重構(gòu)開發(fā)

2020-10-29 10:17:24

AnsibleKubernetes容器編排自動化

2023-12-25 09:52:32

2024-01-08 13:31:00

Rust自動化測試

2021-04-18 12:12:29

systemd定時器系統(tǒng)運維
點贊
收藏

51CTO技術棧公眾號