成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux中cron命令的16個基礎用法及示例

運維 系統運維
Linux/Unix中,我們可以使用cron命令自動運行和計劃任務,你可以一次或定期執行任務。“Cron”廣泛用于定期執行重復性工作(使用名為“crontab”的命令運行),“at”程序用于在特定時間段內執行一次任務。Crontab為所有用戶維護單獨的crontab文件。

Linux/Unix中,我們可以使用cron命令自動運行和計劃任務,你可以一次或定期執行任務。“Cron”廣泛用于定期執行重復性工作(使用名為“crontab”的命令運行),“at”程序用于在特定時間段內執行一次任務。Crontab為所有用戶維護單獨的crontab文件。這些自動化的工作對許多使用Linux服務器的管理員來說是非常有用的。

一般來說,“crontab”文件用于備份、更新系統、同步服務器等任務。cron的一個重要優點是,你不需要詳細了解它,只需要知道如何使用它作為設置cron作業的一部分。

本教程將指導你使用crontab的各種選項。下文中所有crontab的例子都在RHEL/CENTOS 7.6上測試過。

首先,讓我們看看crontab的基本語法和表達式: 

  1. Minute hour Day-of-Month Month-of-Year Day-of-Week Command  
  2. 0-59 0-23 1-31 1-12 0-6 command / script 

Crontab總共有6個字段。第1-5個字段是日期和時間,第6個字段可用于任何可執行的Linux命令或腳本。

注意:時間字段采用24小時格式。

1. 如何在每天的特定時間執行cronjob?

要把任務添加到crontab中,我們應該使用'-e'選項。一旦添加了任務,vi編輯器將打開crontab配置文件,然后使用’:wq!'保存并關閉該文件。 

  1. # crontab -e  
  2. 30 01 * * * /usr/scripts/rsync_svnvmback.sh >/dev/null 2>&1 

注意:在這里,我們有一個名為“rsync_svnbackup.sh”的bash腳本,每天(周一到周日)凌晨1點30分執行。一旦任務被執行,Cron就會向特定的用戶發送一封關于任務狀態的通知郵件,無論是成功還是失敗。如果不需要通知,那么我們可以在腳本的最后使用>/dev/null 2>&1命令來禁用它,它將使所有的通知無效。

2. 如何列出crontab任務?

使用下面的命令列出我們添加到crontab配置文件中的任務。這里,我們使用的是root賬戶。 

  1. # crontab -l  
  2. 30 01 * * * /usr/scripts/rsync_svnvmback.sh >/dev/null 2>&1 

注意:'-l'是列出當前登錄的用戶的crontab列表的選項。

3. 如何以其他用戶身份修改cronjob?

比方說,我想以另一個名為“linuxteck”的用戶修改crontab任務。 

  1. # crontab -u linuxteck -e  
  2. 30 01 * * * /usr/scripts/rsync_svnvmback.sh 

注意:上述命令只能由高權限用戶執行,比如“root用戶或超級用戶”,或者被賦予了特權的普通用戶。這里‘-u’代表用戶名,‘-e’選項代表編輯。

4. 如何列出其他用戶的crontab任務?

下面的命令將顯示其他用戶(linuxteck)的任務列表。 

  1. # crontab -u linuxteck -l  
  2. 30 01 * * * /usr/scripts/rsync_svnvmback.sh 

注意:記住,只有root/超級用戶可以執行上述命令,或者具有相同權限的普通用戶。

5. 如何配置每分鐘運行的cronjob?

這個要求在實際中很少使用,但也有一些用例。舉個例子:如果你使用rsync腳本/命令從線上服務器同步備份,這樣以來,備份服務器將每分鐘從線上服務器獲得更新。 

  1. # crontab -e  
  2. * * * * * /usr/scripts/rsync_svnvmback.sh 

注意:上述crontab任務(rsync_svnvmback.sh)將在全年每小時中的每一分鐘運行。

6. 如何配置一個每天運行兩次的cronjob?

這意味著一條命令/腳本在一天內將被執行兩次。舉個例子:一些公司在早上和晚上進行數據庫備份,比方說早上6點和晚上8點。

  1. 00 06,20 * * * /usr/scripts/mysqldump.sh >/dev/null 2>&1 

注意:在小時字段使用了逗號分隔值。這個腳本將在每天早上6點和晚上8點執行。正如第一個例子中提到的,用'>/dev/null 2>&1'命令來禁用通知。

7. 如何配置每10分鐘運行一次的cronjob?

下面的任務可以連續每10分鐘執行一次命令/腳本。

  1. */10 * * * * /usr/scripts/rsync_svnvmback.sh 

注意:你可以根據你的要求調整為5分鐘或10分鐘等進行測試。

8. 如何配置特定日期執行的cronjob?

使用下面的配置,我們可以在特定的日子里執行cronjob。例如:你可以只在周五和周日的晚上11點運行備份腳本。

  1. > 0 23 * * fri,sun /usr/scripts/rsync_svnvmback.sh 

注意:在這里我使用了日期的簡稱并用逗號來分隔,而不是數字,這樣用戶就很容易讀懂。如果你使用數字,一些系統上是0-6,一些是1-7。因此,許多初學者在配置“星期天”時感到困惑,到底該使用0還是7。實際上,‘0和7’都代表星期天。

9. 如何配置在特定月份運行的cronjob?

使用下面的配置,我們可以為在特定月份執行cronjob,例如:該腳本應該只在1月和7月的晚上11.00執行。

  1. 0 23 * jan,jul * /usr/scripts/rsync_svnvmback.sh 

注意:crontab語法中第四字段是月份的名稱。如果不止一個月份執行,則使用逗號來分隔。

10. 如何在一行中連續運行多個cronjob?

正常情況下,我們為不同的任務、不同的時間一個一個地添加crontab任務。實際上,我們可以在一個特定的時間添加多個任務,一個接一個地執行。例如:我有多個命令/腳本要在我的服務器上執行,即備份數據庫、備份應用程序文件,然后壓縮數據庫和文件,并將這些tar文件推送到備份位置,然后從服務器上刪除這些tar/archive文件,然后清理tmp文件,等等。這種情況下,如果我們同時執行所有的腳本,將極大地影響服務器的性能。例如,可能導致服務器的磁盤空間用完,內存、CPU和帶寬的占用率會大幅升高,有時甚至使服務器失去響應。

這種情況下,我們可以在crontab中使用下面的方式,讓腳本一個接一個地執行,例如:如果我們有5組腳本要在早上1點運行,那么第一個腳本將在1點開始運行,一旦完成,第二個就立即開始,以此類推。

常規做法: 

  1. 00 01 * * * /usr/scripts/mysqldump.sh   
  2. 00 02 * * * /usr/scripts/application_backup.sh   
  3. 10 01 * * * /usr/scripts/tar_db_appfile.sh   
  4. 30 01 * * * /usr/scripts/cp_tar_remote_server.sh   
  5. 10 02 * * * /usr/scripts/tardelete.sh   
  6. 30 02 * * * /usr/scripts/clean_tmp.sh 

多個任務在一個crontab中執行: 

  1. 00 01 * * * /usr/scripts/mysqldump.sh && /usr/scripts/application_backup.sh && /usr/scripts/tar_db_appfile.sh && /usr/scripts/cp_tar_remote_server.sh && /usr/scripts/tardelete.sh && /usr/scripts/clean_tmp.sh 
  2.  
  3. -OR
  4.  
  5. 00 01 * * * /usr/scripts/mysqldump.sh; /usr/scripts/application_backup.sh; /usr/scripts/tar_db_appfile.sh; /usr/scripts/cp_tar_remote_server.sh; /usr/scripts/tardelete.sh; /usr/scripts/clean_tmp.sh 

注意:雙引號‘&&’和分號‘;’的區別是:‘&&’意味著作業將一個接一個地執行,而‘;’則表示無論前面的作業是否成功,第二或第三作業都將運行。

11. 如何在cron中使用特殊字符?

特殊字符是cron中用一個關鍵詞替換其他字段來執行任務。我們可以在’@’后面接關鍵字,語法和含義如下。 

  1. 關鍵字       等價于          含義   
  2. @yearly     0 0 1 1 *     --> 每年執行一次 
  3. @monthly    0 0 1 * *     --> 每月執行一次 
  4. @daily      0 0 * * *     --> 每天執行一次 
  5. @hourly     0 * * * *     --> 每小時執行一次 
  6. @reboot     --            --> 重啟后執行一次 

接下來我們用幾個例子來說明關鍵字的使用方法。

12. 如何使用@yearly的特殊字符配置cronjob?

@yearly相當于‘0 0 1 1 *’。

  1. @yearly /usr/scripts/yearly_archival.sh 

注意:上面的crontab任務將執行腳本,把所有前一年的數據移到存檔服務器中。它將在每年的第一個月(一月)的00:00執行。

13. 如何使用@monthly特殊字符來配置cronjob?

@monthly相當于‘0 0 1 * *’。

  1. @monthly /usr/scripts/monthly-backup.sh 

注意:上面的crontab任務將執行每月備份的腳本,它將在每月1日的00:00執行。

14. 如何使用@daily特殊字符串配置cronjob?

@daily相當于‘0 0 * * *’。

  1. @daily /usr/scripts/daily-temp.sh 

注意:上述crontab任務將執行daily-temp.sh的腳本,它將清除temp文件夾中所有的臨時文件。任務將在每天的00:00執行。

15. 如何使用@hourly特殊字符配置cronjob?

@hourly相當于‘0 * * *’。

  1. @hourly /usr/scripts/hourly_rsync_svnvmback.sh 

注意:上述crontab任務將執行hourly_rsync_svnvmback.sh的腳本,它每小時將所有數據從線上服務器同步到備份服務器。

16. 如何使用@reboot特殊字符在每次重啟后執行一個腳本/命令?

@reboot可以用來在每次重啟服務器后執行一組命令/腳本。例如:在重啟后,我們可以執行一個命令/腳本來檢查服務的狀態,如DNS、Apache狀態等。

  1. @reboot /usr/scripts/bootup_service_status.sh 

注意:上述crontab腳本將在每次重啟后執行。這里,我在腳本中加入了檢查“httpd, named,dhcpd”等狀態的命令,這樣它就會顯示所有服務的狀態列表。

我希望這篇文章能夠幫助你學習Linux中的crontab命令。歡迎把你的反饋/意見告訴我。

感謝閱讀!

 

責任編輯:未麗燕 來源: tlanyan.pp.ua
相關推薦

2009-08-03 11:54:34

linux at命令linux at命令詳cron

2022-05-09 08:55:58

Linuxdiff命令

2013-11-15 16:07:26

Linux dfLinux命令

2020-09-29 07:18:24

Linuxtee命令

2018-08-06 08:51:32

Linux命令cut

2020-05-20 13:45:52

Linuxtouch命令

2015-03-25 10:36:57

lsLinux

2023-11-28 13:15:00

Linuxsed工具

2022-08-29 08:33:22

SocatLinux命令

2023-11-30 12:03:06

linuxAwk

2021-04-19 12:00:15

Linux命令chmod

2023-11-27 13:57:00

Linux用法

2017-03-01 11:46:24

Linuxscreen命令示例

2020-04-16 14:20:16

Linuxtouch命令

2013-10-08 15:51:03

Linux find命

2013-05-23 15:10:34

Netcat

2013-10-08 16:24:34

Linux find命

2012-02-22 21:54:57

UnixLinuxCron

2022-01-17 10:05:33

LinuxWatch命令

2024-01-18 15:34:58

Windows操作系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品高潮呻吟久久av野狼 | 97人人爱 | 91精品国产91久久久久游泳池 | 91精品国产欧美一区二区成人 | 日日摸夜夜添夜夜添特色大片 | 成人欧美一区二区三区黑人孕妇 | 亚洲一区电影 | 亚洲精品一区二区 | 国产精品久久久久久久久久三级 | 久色激情 | 亚洲一区二区三 | 亚洲精品久久久久久国产精华液 | 国产在线精品一区二区三区 | 日日综合 | 国产91精品网站 | 久久久久国产精品 | 亚洲精品久久久9婷婷中文字幕 | 一本一道久久a久久精品综合蜜臀 | 777zyz色资源站在线观看 | 黄网在线观看 | 国产精品久久久久久久久图文区 | 国产成人久久精品一区二区三区 | 天天草天天干 | 黄色大片视频 | 日韩亚洲一区二区 | 国产在线www| 偷牌自拍| 欧美影院 | 国产一级毛片精品完整视频版 | 久久久久久国产精品免费免费 | 久久久久久久91 | 五月婷婷色 | 国产免费一区二区三区 | 91免费看片 | 精品99在线 | 日本不卡一区 | 欧美日韩在线观看一区 | 国产高清视频在线观看播放 | 九九热在线观看视频 | 青青久草| 激情久久av一区av二区av三区 |