天天看點

Linux定時任務詳解

crond 定時任務詳解

crond 是 Linux 下用來周期性的執行某種任務或等待處理某些事件的一個守護程序,可以在無需人工幹預的情況下運作作業。

我的環境是3A伺服器搭建centos7.9,延遲低

安裝 crond 服務

yum install crond

crond服務啟動

systemctl start crond

systemctl enable crond

crond服務詳解

Linux系統排程可以分為兩類: 系統任務排程 | 使用者任務排程

系統任務排程: 系統周期性所要執行的工作,比如寫緩存資料到硬碟、日志清理等

# crond服務在/etc/目錄下有一個crontab檔案,這個檔案就是系統任務排程的配置檔案。

# 配置檔案内容解析

[root@dev etc]# vim /etc/crontab

SHELL=/bin/bash # 指定shell

PATH=/sbinL:/bin:/usr/sbin:/usr/bin # 指定了系統可執行檔案路徑

MAILTO=root # 指定了crond的任務執行資訊将通過電子郵件發送給root使用者,如果MAILTO變量的值為空,則表示不發送任務 執行資訊給使用者。

HOME=/ # 指定執行指令或腳本時使用的主目錄

使用者任務排程: 使用者定期要執行的工作,比如使用者資料備份、定時郵件提醒等

# 使用者可以使用 crontab 工具來定制自己的計劃任務。所有使用者定義的crontab 檔案都被儲存在 /var/spool/cron目錄中。其檔案名與使用者名一緻。

# 可以通過 crontab 指令添加或者編輯需要定時執行的任務

crontab 指令基本參數

crond 服務提供 crontab 指令用于設定 crond 服務

crontab -u //設定某個使用者的cron服務,一般root使用者在執行這個指令的時候需要此參數

crontab -l //列出某個使用者cron服務的詳細内容

crontab -r //删除某個使用者的cron服務

crontab -e //編輯某個使用者的cron服務

# 特殊字元

* : 代表所有可能的值

, :用逗号隔開的值表示一個範圍清單,如 1,2 表示1-2

- :可以在整數中間用中杠表示一個整數範圍,如 6-8 , 表示6 7 8

/ : 可以用正斜線表示時間間隔頻率,如 /10 用于minute字段,表示每10分鐘執行一次。

添加定時任務

任務格式: M(分) H(時) D(日) m(月) d(周) command

M : 表示分鐘1~59 , 每分鐘用*或者 */1表示

H : 表示小時1~23(0表示0點)

D : 表示日期1~31

m : 表示月份1~12

d : 表示号星期0~6(0表示星期天)

command : 要運作的指令

# 每分鐘執行一次 /root/test.sh腳本