天天看點

定時任務

目錄

定時任務

1、計劃任務基本概述

2、格式(分、時、日、月、周)

3、計劃任務編寫實踐

4、秒級任務

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 張賀,多年網際網路行業工作經驗,擔任過網絡工程師、系統內建工程師、linux系統運維工程師 個人網站:www.zhanghehe.cn

什麼是crond?

crond服務就是用來執行計劃任務的服務,類型于鬧鐘,定點執行。

為什麼用crond

做周期性的任務,減少人力成本,比如淩晨三點備份資料,12點打開搶購入口等。

計劃任務為分兩種:

系統級别的定時任務:無需人工幹預,作用是用于檔案的清理、日志的切割、系統資訊的采集。

使用者級别的定時任務:運維人員進行定義。

<code>/etc/crontab</code>檔案裡面記載了定時任務書寫的格式,格式就是:分、時、日、月、周

note:“日”并不是比周小,是以在設定“周”的時候“日”并不用有所展現。

注意事項:

給定時任務加注釋 将需要定期執行的任務寫入shell腳本中,避免直接使用指令無法執行的情況。 定時任務的結尾一定要有&amp;&gt;/dev/null 。 如果一定要用指令,指令必須使用絕對路徑。

crond如何備份?

通過檢視<code>/var/log/cron</code>中執行的記錄,去推算任務執行的時間 定時的備份<code>/var/spool/cron/{username}</code>

crond如何拒絕某個使用者使用

計劃任務排程的注意點

先調整成每分鐘執行,看看效果 通過檢視/var/log/cron日志,可以看到執行的結果,友善後續的調試。 注意環境變量的問題 指令先在終端試一試,試成功了再複制到腳本當中,盡量少用手打。

通過<code>crontab</code>編寫<code>cron</code>定時任務

參數

含義

-e

編輯

-l

檢視

例0:每天淩晨3點做一次備份,備份/etc/目錄到/backup下面

将備份指令寫入到一個腳本中,每天備份檔案名要求格式:目前時時間_檔案名_tar.gz,不輸出任何資訊,存放的備份内容隻存放三天的資料

例1:每4個小時備份一次/etc/目錄到/bakup目錄當中,儲存的檔案名格式為“etc-yyyy-mm-dd-hh.tar.xz”

例2:每周2,4,7備份/var/log/messages檔案至至/backup目錄中,檔案名形如”messages-yyyymmdd.tar,gz”

例3:每兩個小時取出目前系統/proc/meminfo檔案中以s或m開頭的資訊追加至/tmp/meminfo.txt檔案中

例4:工作日時間内,每小時執行一次ip addr show 指令

例5:每3分鐘執行一個echo how are you?

例6:每周2,4,6備份/etc/目錄到backup目錄中,備份的檔案名的當etc_開頭并跟上當日的日期檔案名

例7: 每天的6,9,12,15,18時檢視一下目前系統挂載的檔案系統,并将檢視結果追加到/tmp/mounts.txt檔案

例8: 每天每兩個小時取目前系統記憶體空間餘量,将其儲存到/stats/memory.txt檔案下

怎樣使用crond運作秒級任務,想要在crond當中運作秒級任務的話,必需結果其他的方法,比如for循環和while循環.

例1:每20秒列印hello!

這就代表每分鐘,一分鐘到了之後i就等于0,然後就運作echo hello!運作完成之後就睡20秒,20秒睡完了,i又等于1了,然後再列印,然後再睡20秒,然後i等于3,再列印,再睡着.............進而實作每隔20秒列印一次的效果。

例2;每秒列印一次hello!

解釋:一分種到了之後,i先等于1之後就echo,然後睡一秒,i又等于2了,再echo ...............,一分種有60個一秒。

定時任務