亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

Linux crontab命令實現定時任務

2024-06-04 09:06:53
9
0

在日常中,我們常常需要linux系統來執行定時任務。而這時就需要我們使用crontab命令來完成此項任務。

crontab 命令介紹

crontab命令被用于提交和管理用戶提交的需要定期執行的任務。而crontab命令需要crond服務支持。crondLinux下用來周期地執行某種任務或等待處理某些事件的一個守護進程。在安裝linux系統時,crond一般會被自動安裝。我們可以通過如下的命令查看、啟動、重啟crond服務。

$ service crond status # 查看crond狀態
$ service crond start # 啟動crond服務
$ service crond restart # 重啟crond服務

crontab 語法

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user 
 # 用來設定某個用戶的 crontab 服務,例如 "-u demo" 表示設備 demo用戶的 crontab 服務,此選項一般有 root 用戶來運行。
 -e         edit user's crontab 、
 # 編輯某個用戶的 crontab 文件內容。如果不指定用戶,則表示編輯當前用戶的 crontab 文件。
 -l         list user's crontab
 # 顯示某用戶的 crontab 文件內容,如果不指定用戶,則表示顯示當前用戶的 crontab 文件內容。
 -r         delete user's crontab
 # 從 /var/spool/cron 刪除某用戶的 crontab 文件,如果不指定用戶,則默認刪除當前用戶的 crontab 文件。
 -i         prompt before deleting 
 # 在刪除用戶的 crontab 文件時,給確認提示。
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x <mask>  enable debugging

注意:這里的 file 指的是包含待執行任務的crontab文件。

任務的定義

crontab文件的含義:用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:

minute hour day month week command

其中:

  • minute: 表示分鐘,可以是從0到59之間的任何整數。
  • hour:表示小時,可以是從0到23之間的任何整數。
  • day:表示日期,可以是從1到31之間的任何整數。
  • month:表示月份,可以是從1到12之間的任何整數。
  • week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
  • command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

在以上各個字段中,還可以使用以下特殊字符:

  • 星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
  • 逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
  • 中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
  • 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

注意:在定義任務時,我們可以分別以周或者是日月為單位作為循環,但我們不可使用 幾月幾號且為星期幾 的模式工作。

下面的例子是一個錯誤的寫法:

30 12 11 9 5 root echo "test mission"

設置定時任務

我們可以如下的幾種方式進行定時任務的設置。

  • 用戶定時任務:使用crontab -e命令

用戶定時任務:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。

我們可以使用crontab -e進入某個用戶的定時任務編輯界面。如果不指定用戶的話,則進入當

前用戶的編輯界面。在編輯界面中,一行表示一個定時任務。如下圖所示,編輯界面含有兩個定時任務。

  • 系統定時任務:編輯/etc/crontab文件

系統定時任務:系統周期性所要執行的工作,比如寫緩存數據到硬盤、日志清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。

首先,我們先來看看文件的內容。使用cat /etc/crontab,內容如下。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO= root
HOME=/
# For details see man 4 crontabs

# 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
51 * * * * root run-parts /etc/cron.hourly
24 7 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前面四行是用來配置crond任務運行的環境。

第一行:指定了環境所使用的shell。

第二行:指定了系統執行命令的路徑。

第三行:指定了crond的任務執行信息將通過電子郵件發送的用戶,這里發給root用戶。如果為空,則不發給任何人。

第四行:指定了執行命令或者腳本時的主目錄。

下面的幾行,則是系統執行的任務。每個任務占據一行。

注意:在這里定義任務時,需要指定用戶。而用戶任務則不需要。

crontab 相關配置文件

  • 用戶權限文件
\etc\cron.deny
\etc\cron.allow

使用說明:

  1. 當系統中有 /etc/cron.allow 文件時,只有寫入此文件的用戶可以使用 crontab 命令,沒有寫入的用戶不能使用 crontab 命令。同樣,如果有此文件,/etc/cron.deny 文件會被忽略,因為 /etc/cron.allow 文件的優先級更高。
  2. 當系統中只有/etc/cron.deny文件時,寫入此文件的用戶不能使用 crontab 命令,沒有寫入文件的用戶可以使用 crontab 命令。
  3. Linux 系統中默認只有/etc/cron.deny 文件。
  • 用戶任務存放目錄
/etc/spool/cron/

說明:所有用戶crontab文件存放的目錄,以用戶名命名。

  • cron.daily cron.hourlycron.weeklycron.monthly目錄
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
/etc/cron.monthly/

說明:在四個文件夾里面存放了crond按天、小時、周和月執行的腳本。

解釋:

看一下 anacrontab 這個配置文件中的代碼:

# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

在系統啟動時會讀取一次 anacrontab 中的配置參數。

這里以每天舉例。在讀取完成 anacrontab 文件后,crond 程序會在每天的 4點12分 左右執行一次 cron.daily 下的文件。

參考

  • //www.runoob.com/w3cnote/linux-crontab-tasks.html
  • //c.biancheng.net/view/1092.html
  • //www.cnblogs.com/ftl1012/p/crontab.html
  • //man.linuxde.net/crontab
  • //www.cnblogs.com/xd502djj/p/4292781.html
  • //www.zhihu.com/question/57000081/answer/301299818
0條評論
作者已關閉評論
c****z
2文章數
0粉絲數
c****z
2 文章 | 0 粉絲
c****z
2文章數
0粉絲數
c****z
2 文章 | 0 粉絲
原創

Linux crontab命令實現定時任務

2024-06-04 09:06:53
9
0

在日常中,我們常常需要linux系統來執行定時任務。而這時就需要我們使用crontab命令來完成此項任務。

crontab 命令介紹

crontab命令被用于提交和管理用戶提交的需要定期執行的任務。而crontab命令需要crond服務支持。crondLinux下用來周期地執行某種任務或等待處理某些事件的一個守護進程。在安裝linux系統時,crond一般會被自動安裝。我們可以通過如下的命令查看、啟動、重啟crond服務。

$ service crond status # 查看crond狀態
$ service crond start # 啟動crond服務
$ service crond restart # 重啟crond服務

crontab 語法

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user 
 # 用來設定某個用戶的 crontab 服務,例如 "-u demo" 表示設備 demo用戶的 crontab 服務,此選項一般有 root 用戶來運行。
 -e         edit user's crontab 、
 # 編輯某個用戶的 crontab 文件內容。如果不指定用戶,則表示編輯當前用戶的 crontab 文件。
 -l         list user's crontab
 # 顯示某用戶的 crontab 文件內容,如果不指定用戶,則表示顯示當前用戶的 crontab 文件內容。
 -r         delete user's crontab
 # 從 /var/spool/cron 刪除某用戶的 crontab 文件,如果不指定用戶,則默認刪除當前用戶的 crontab 文件。
 -i         prompt before deleting 
 # 在刪除用戶的 crontab 文件時,給確認提示。
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x <mask>  enable debugging

注意:這里的 file 指的是包含待執行任務的crontab文件。

任務的定義

crontab文件的含義:用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:

minute hour day month week command

其中:

  • minute: 表示分鐘,可以是從0到59之間的任何整數。
  • hour:表示小時,可以是從0到23之間的任何整數。
  • day:表示日期,可以是從1到31之間的任何整數。
  • month:表示月份,可以是從1到12之間的任何整數。
  • week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
  • command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

在以上各個字段中,還可以使用以下特殊字符:

  • 星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
  • 逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
  • 中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
  • 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

注意:在定義任務時,我們可以分別以周或者是日月為單位作為循環,但我們不可使用 幾月幾號且為星期幾 的模式工作。

下面的例子是一個錯誤的寫法:

30 12 11 9 5 root echo "test mission"

設置定時任務

我們可以如下的幾種方式進行定時任務的設置。

  • 用戶定時任務:使用crontab -e命令

用戶定時任務:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。

我們可以使用crontab -e進入某個用戶的定時任務編輯界面。如果不指定用戶的話,則進入當

前用戶的編輯界面。在編輯界面中,一行表示一個定時任務。如下圖所示,編輯界面含有兩個定時任務。

  • 系統定時任務:編輯/etc/crontab文件

系統定時任務:系統周期性所要執行的工作,比如寫緩存數據到硬盤、日志清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。

首先,我們先來看看文件的內容。使用cat /etc/crontab,內容如下。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO= root
HOME=/
# For details see man 4 crontabs

# 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
51 * * * * root run-parts /etc/cron.hourly
24 7 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前面四行是用來配置crond任務運行的環境。

第一行:指定了環境所使用的shell。

第二行:指定了系統執行命令的路徑。

第三行:指定了crond的任務執行信息將通過電子郵件發送的用戶,這里發給root用戶。如果為空,則不發給任何人。

第四行:指定了執行命令或者腳本時的主目錄。

下面的幾行,則是系統執行的任務。每個任務占據一行。

注意:在這里定義任務時,需要指定用戶。而用戶任務則不需要。

crontab 相關配置文件

  • 用戶權限文件
\etc\cron.deny
\etc\cron.allow

使用說明:

  1. 當系統中有 /etc/cron.allow 文件時,只有寫入此文件的用戶可以使用 crontab 命令,沒有寫入的用戶不能使用 crontab 命令。同樣,如果有此文件,/etc/cron.deny 文件會被忽略,因為 /etc/cron.allow 文件的優先級更高。
  2. 當系統中只有/etc/cron.deny文件時,寫入此文件的用戶不能使用 crontab 命令,沒有寫入文件的用戶可以使用 crontab 命令。
  3. Linux 系統中默認只有/etc/cron.deny 文件。
  • 用戶任務存放目錄
/etc/spool/cron/

說明:所有用戶crontab文件存放的目錄,以用戶名命名。

  • cron.daily cron.hourlycron.weeklycron.monthly目錄
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
/etc/cron.monthly/

說明:在四個文件夾里面存放了crond按天、小時、周和月執行的腳本。

解釋:

看一下 anacrontab 這個配置文件中的代碼:

# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

在系統啟動時會讀取一次 anacrontab 中的配置參數。

這里以每天舉例。在讀取完成 anacrontab 文件后,crond 程序會在每天的 4點12分 左右執行一次 cron.daily 下的文件。

參考

  • //www.runoob.com/w3cnote/linux-crontab-tasks.html
  • //c.biancheng.net/view/1092.html
  • //www.cnblogs.com/ftl1012/p/crontab.html
  • //man.linuxde.net/crontab
  • //www.cnblogs.com/xd502djj/p/4292781.html
  • //www.zhihu.com/question/57000081/answer/301299818
文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0