ubuntu下的定時器編寫

2021-09-06 15:36:46 字數 2477 閱讀 6824

在linux系統中,計畫任務一般是由cron承擔,我們可以把cron設定為開機時自動啟動。cron啟動後,它會讀取它的所有配置檔案(全域性性配置檔案/etc/crontab,以及每個使用者的計畫任務配置檔案),然後cron會根據命令和執行時間來按時來呼叫度工作任務。

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

/sbin/service cron start //啟動服務

/sbin/service cron stop //關閉服務

/sbin/service cron restart //重啟服務

/sbin/service cron reload //重新載入配置

/etc/init.d這個目錄是所有服務的指令碼,可以通過執行指令碼並且加上引數,開啟關閉或者重啟對應的服務

cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制

crontab引數

-u:編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab

crontab -u 使用者名稱

-l:可以列出crontab的內容

-r:可以移除crontab

-e:可以使用系統預設的編輯器,開啟crontab

-i:可以移除crontab,會跳出系統資訊讓你再次確定是否移除crontab

範例:

*/5 * * * * 每五分鐘執行

0 * * * * 每小時執行

0 0 * * * 每天執行  

0 0 * * 0 每週執行  

0 0 1 * * 每月執行      

0 0 1 1 * 每年執行

常用命令:

重啟cron:/etc/init.d/cron restart

檢視cron:crontab -l

檢視cron的狀態(開啟或關閉):service cron status

開啟cron檔案:crontab -e

檢視cron日誌:/var/log/syslog

minute(分):可以設定0-59分

hour(小時):可以設定0-23小時

day of month(日期):可以設定1-31號

month(月份):可以設定1-12月

day of week(星期):可以設定0-7星期幾,其中0和7都代表星期天,也可以使用名稱來表示星期天到星期一,例如sun表示星期天,mon表示星期一

"*"代表取值範圍內的數字

"/"代表"每"

"-"代表從某個數字到某個數字

","分開幾個離散的數字

1.開啟cron檔案

2.選擇乙個編輯器

使用規則:

儲存:ctrl+o

退出:ctrl+x

3.編寫定時命令每5分鐘執行一次jar包:

4.儲存退出

先ctrl+0儲存

再回車最後ctrl+x退出

5.檢查定時命令是否儲存成功

6.重啟cron

/etc/init.d/cron restart
ubuntu的cron編寫完畢後,需要重啟才會生效

7.檢視cron日誌

/var/log/syslog
8.刪除cron內的任務②把編輯器中的內容注釋掉

③重啟cron:service cron restart

編寫使用者側定時器

定時器是我們在平時開發中經常使用到的工具,特別是在協議的編寫上更是必不可少的組成部分。雖然系統本身給我們提供了定時器,但是有的時候,我們也想自己編寫乙個粗粒度的定時器,比如說在單元測試的時候。大家只要看到下面的例項 其實就會發現,只要利用一下sleep函式,編寫屬於自己的定時器原來不是一件複雜的事情...

Linux下的定時器

linux下的定時器有兩種,以下分別介紹 1 alarm 如果不要求很精確的話,用 alarm 和 signal 就夠了 unsigned int alarm unsigned int seconds 專門為sigalrm訊號而設,在指定的時間seconds秒後,將向程序本身傳送sigalrm訊號,...

Linux下的定時器

1.alarm 執行後,程序將繼續執行。在後期 alarm以後 的執行過程中將會在seconds秒後收到訊號sigalrm並執行其處理函式。include include include void sigalrm fn int sig int main void 2.alarm定時器,可是僅僅能精確...