首頁 > 軟體

Linux crontab命令 定時任務 用法詳解以及no crontab for root解決辦法

2020-06-16 16:50:00

最近系統伺服器進行搬遷,又恰好需要使用定時任務執行程式,而我的程式主要使用PHP寫的,然後總結了下定時任務的用法,但是在這裡主要寫的是關於crontab命令的用法,使用過程中遇到不少問題,例如no crontab for root等問題。

一、Linux系統安裝crontab服務

  1.確認crontab是否安裝

  # crontab -l

  如果報 “command not found” ,就說明該crontab服務沒有安裝

  如果報 “no crontab for root” ,就說明已經安裝crontab服務了,請跳過步驟一,至於出現這個提示的解決辦法請往下看。

 

  2.安裝crontab服務

  CentOS系統,請執行以下命令:

//vixie-cron軟體包是cron的主程式;  

# yum install -y vixie-cron  

//rontabs軟體包是用來安裝、卸裝、或列舉用來驅動 cron 守護行程的表格的程式

# yum install crontabs

//啟動服務   

# /sbin/service crond start   或者  systemctl crond start

//加入開機自動啟動

# chkconfig --level 35 crond on

  Ubuntu、debian系統,請執行以下命令:

//安裝crontab服務  

# apt-get install cron  

//啟動crontab服務(同時還有service cron stop 停止服務,service cron restart 重新啟動服務)

# service cron start   

 

  3.測試是否安裝成功了

  繼續執行上面第一條命令:crontab -l

  這時會出現 “no crontab for root” 這是由於你還沒有建立任何定時任務或者命令打錯,即沒有使用crontab -e命令去建立任何任務。但是到了這裡,你的安裝基本可以了。crontab命令詳情請看下步

  

二、crontab命令詳解

  1.crontab命令主要有3個引數:

  -e :編輯使用者的crontab

  -l :列出使用者的crontab的內容

  -r :刪除使用者的crontab的內容

 

  2.功能說明:設定計時器

  補充說明:cron是一個常駐服務,它提供計時器的功能,讓使用者在特定的時間得以執行預設的指令或程式。只要使用者會編輯計時器的組態檔,就可以使用計時器的功能。其組態檔格式如下:

語法:crontab [-u <使用者名稱稱>][組態檔] 或 crontab [-u <使用者名稱稱>][-elr]

  引數:

    -e   編輯該使用者的計時器設定。

    -l    列出該使用者的計時器設定。

    -r   刪除該使用者的計時器設定。

    -u<使用者名稱稱>  指定要設定計時器的使用者名稱稱。

  

  3.crontab -e命令詳解

  # crontab -e

  如果第一次執行上面命令時,會讓你選擇編輯器,不過有些終端會預設幫你選擇nano編輯器的,一般我們都會修改編輯器為vim,具體方法請看步驟三。

  然後會開啟一個crontab的檔案,然後點選 i 進行輸入模式,輸入一下內容:

  //每隔一分鐘執行一次test.php

  # * * * * * php /var/test.php  

  輸入完後儲存退出,:wq。然後重新啟動crontab服務

  // 不同伺服器命令不一樣,詳情請看步驟一

  # service cron restart

 

  4.crontab -l

  檢視crontab有哪些定時任務在執行,這裡沒什麼好弊述的。

  

  5.crontab格式

  基本格式:* * * * * command

  格式說明:上面的*代表著不同的時間點,具體排序如下:分 時 日 月 周。

  例如:

  * * * * * php /var/www/hello/index.php >> /tmp/log/index.txt

  //表示每分鐘執行一次,整句話的意思是說每分鐘執行使用php執行index.php檔案,並將資訊列印到/tmp/log/index.txt檔案中,具體路徑自己改

  這裡加個技巧關於檢視某個檔案,但又不想vim <檔名>的。可以使用cat <檔名>命令

  1. * */2 * * * php /var/www/index.php >> /tmp/index.txt

  2. * * */1 * * php /var/www/index.php >> /tmp/index.txt

  // 如果要設定沒隔多久執行,則寫為“*/數位”,在哪個位置就代表每隔多久執行一次。上面命令分別代表:

  1.每隔2小時執行一次

  2.每隔一天執行一次

 

三、修改crontab預設編輯器為vim

  1.debian終端下預設編輯器為nano,比如crontab -e就會開啟nano,這個編輯器用起來很不習慣,想修改為vim,當然,你的debian系統必須先安裝vim.如果已經安裝vim,請輸入如下命令:

# update-alternatives --config editor

  

  然後選擇/usr/vim/vim.basic就可以了,vim.tiny與vim.basic的區別是vim.basic為完全版的vim,而vim.tiny為簡化版,功能上有所區別,如不支援高亮等等.

  輸入數位   2   ,回車,再次開啟crontab -e即可。

 crontab的使用就到此為止了,歡迎有問題的小夥伴在下方留言。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-07/153181.htm


IT145.com E-mail:sddin#qq.com