centos定時任務crontab

2022-06-25 16:12:19 字數 3398 閱讀 3220

1、簡介

crond 是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,與windows下的計畫任務類似。任務排程分為兩類:系統任務排程和使用者任務排程。

系統任務是由 cron (crond) 這個系統服務來控制的,這個系統服務是預設啟動的。

使用者自己設定的計畫任務則使用crontab 命令。

[root@localhost sugon]# crond --help

crond: invalid option -- '-'

usage:

crond [options]

options:

-h print this

message

-i deamon runs without inotify support

-m off, or specify prefered client for

sending mails

-n run in

foreground

-p permit any crontab

-p use path="

/usr/bin:/bin

" -c enable clustering support

-s log into syslog instead of sending mails

-x print debug information

2、系統定時任務

系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc/crontab檔案,這個就是系統任務排程的配置檔案。可新增定時任務,這裡我使用命令:gedit  /etc/crontab來檢視並新增定時任務,下面是檔案內容。

注:系統定時任務是通過系統服務crond執行的,該服務預設開機啟動。

shell=/bin/bash

path=/sbin:/bin:/usr/sbin:/usr/bin

mailto=root

# for details see man

4crontabs

# example of job definition:

# .---------------- minute (0 - 59

)# | .------------- hour (0 - 23

)# | | .---------- day of month (1 - 31

)# | | | .------- month (1 - 12

) or jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (sunday=0 or 7

) or sun,mon,tue,wed,thu,fri,sat

# | | | | |# * * * * * user-name command to be executed

3、使用者的定時任務

使用者定時任務的設定執行,我們需要使用到crontab服務,使用時要啟動服務crond,crond服務通過crontab命令實現。

yum install crontabs  #安裝crontab

systemctl start crond  #啟動服務

systemctl stop crond #關閉服務

systemctl restart crond #重啟服務

systemctl reload crond #重新載入配置

systemctl status crond #檢視服務狀態

ntsysv #檢視開啟啟動項

systemctl enable crond #加入開機啟動項

1- 看下crontab命令介紹

[root@localhost sugon]# crontab --help

crontab: invalid option -- '-'

crontab: usage error: unrecognized option

usage:

crontab [options] file

crontab [options]

crontab -n [hostname]

options:

-u define user

-e edit user'

s crontab

-l list user'

s crontab

-r delete user'

s crontab

-i prompt before deleting

-n set host in cluster to run users'

crontabs

-c get host in cluster to run users'

crontabs

-s selinux context

-x enable debugging

2- 使用者定時任務新增

命令:crontab -e

注:格式同/etc/crontab文件格式。每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成乙個與此使用者同名的檔案,此使用者的cron資訊都記錄在這個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。

例如新增指令碼:*/5 * * * * root /home/crontab/check_sersync.sh > /dev/null 2>&1

指令碼解釋:以root使用者每5分鐘執行指令碼/home/crontab/check_sersync.sh,並將錯誤資訊記錄到/dev/null下。

3- 使用者定時任務檢視

使用命令:crontab -l,就可看到剛新增的指令碼了

4- 新增設定完成後,可重新載入配置,並重啟下crond服務

systemctl reload crond  #重新載入配置

systemctl restart crond #重啟服務

4、許可權檔案

/etc/cron.deny:該檔案中所列使用者不允許使用crontab命令

/etc/cron.allow:該檔案中所列使用者允許使用crontab命令

/var/spool/cron/:所有使用者crontab檔案存放的目錄,以使用者名稱命名

/var/log/cron:日誌檔案,執行後記錄可在此檔案中檢視

Liunx系統定時任務時間設定Crontab的格式

第1列分鐘1 59 第2列小時1 23 0表示子夜 第3列日1 31 第4列月1 12 第5列星期0 6 0表示星期天 第6列要執行的命令 下面是crontab的格式 分 時 日 月 星期 要執行的命令 這裡有crontab檔案條目的一些例子 30 21 usr local apache bin a...

ubuntu系統建立定時任務之crontab

cron是乙個linux定時執行工具,可以在無需人工干預的情況下執行作業。在ubuntu server 下,cron是被預設安裝並啟動的。通過 etc crontab檔案,可以看到以下內容 ununtu 通過呼叫 run parts 命令,定時執行四個目錄下的所有指令碼。1 etc cron.hou...

centos定時任務cron

任務指令行包括五個時間日期域,接著乙個使用者域 如果是系統級的任務檔案 其餘的被當做是此任務的命令列。下圖顯示系統級任務檔案中的指令行的格式 例如 1 root usr local nginx logs nginx log.sh 每分鐘執行一次 usr local nginx logs nginx ...