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

Linux中cron命令的16個(gè)基礎(chǔ)用法及示例

運(yùn)維 系統(tǒng)運(yùn)維
Linux/Unix中,我們可以使用cron命令自動(dòng)運(yùn)行和計(jì)劃任務(wù),你可以一次或定期執(zhí)行任務(wù)。“Cron”廣泛用于定期執(zhí)行重復(fù)性工作(使用名為“crontab”的命令運(yùn)行),“at”程序用于在特定時(shí)間段內(nèi)執(zhí)行一次任務(wù)。Crontab為所有用戶維護(hù)單獨(dú)的crontab文件。

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

一般來說,“crontab”文件用于備份、更新系統(tǒng)、同步服務(wù)器等任務(wù)。cron的一個(gè)重要優(yōu)點(diǎn)是,你不需要詳細(xì)了解它,只需要知道如何使用它作為設(shè)置cron作業(yè)的一部分。

本教程將指導(dǎo)你使用crontab的各種選項(xiàng)。下文中所有crontab的例子都在RHEL/CENTOS 7.6上測(cè)試過。

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

  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個(gè)字段。第1-5個(gè)字段是日期和時(shí)間,第6個(gè)字段可用于任何可執(zhí)行的Linux命令或腳本。

注意:時(shí)間字段采用24小時(shí)格式。

1. 如何在每天的特定時(shí)間執(zhí)行cronjob?

要把任務(wù)添加到crontab中,我們應(yīng)該使用'-e'選項(xiàng)。一旦添加了任務(wù),vi編輯器將打開crontab配置文件,然后使用’:wq!'保存并關(guān)閉該文件。 

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

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

2. 如何列出crontab任務(wù)?

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

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

注意:'-l'是列出當(dāng)前登錄的用戶的crontab列表的選項(xiàng)。

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

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

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

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

4. 如何列出其他用戶的crontab任務(wù)?

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

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

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

5. 如何配置每分鐘運(yùn)行的cronjob?

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

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

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

6. 如何配置一個(gè)每天運(yùn)行兩次的cronjob?

這意味著一條命令/腳本在一天內(nèi)將被執(zhí)行兩次。舉個(gè)例子:一些公司在早上和晚上進(jìn)行數(shù)據(jù)庫備份,比方說早上6點(diǎn)和晚上8點(diǎn)。

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

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

7. 如何配置每10分鐘運(yùn)行一次的cronjob?

下面的任務(wù)可以連續(xù)每10分鐘執(zhí)行一次命令/腳本。

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

注意:你可以根據(jù)你的要求調(diào)整為5分鐘或10分鐘等進(jìn)行測(cè)試。

8. 如何配置特定日期執(zhí)行的cronjob?

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

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

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

9. 如何配置在特定月份運(yùn)行的cronjob?

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

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

注意:crontab語法中第四字段是月份的名稱。如果不止一個(gè)月份執(zhí)行,則使用逗號(hào)來分隔。

10. 如何在一行中連續(xù)運(yùn)行多個(gè)cronjob?

正常情況下,我們?yōu)椴煌娜蝿?wù)、不同的時(shí)間一個(gè)一個(gè)地添加crontab任務(wù)。實(shí)際上,我們可以在一個(gè)特定的時(shí)間添加多個(gè)任務(wù),一個(gè)接一個(gè)地執(zhí)行。例如:我有多個(gè)命令/腳本要在我的服務(wù)器上執(zhí)行,即備份數(shù)據(jù)庫、備份應(yīng)用程序文件,然后壓縮數(shù)據(jù)庫和文件,并將這些tar文件推送到備份位置,然后從服務(wù)器上刪除這些tar/archive文件,然后清理tmp文件,等等。這種情況下,如果我們同時(shí)執(zhí)行所有的腳本,將極大地影響服務(wù)器的性能。例如,可能導(dǎo)致服務(wù)器的磁盤空間用完,內(nèi)存、CPU和帶寬的占用率會(huì)大幅升高,有時(shí)甚至使服務(wù)器失去響應(yīng)。

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

常規(guī)做法: 

  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 

多個(gè)任務(wù)在一個(gè)crontab中執(zhí)行: 

  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 

注意:雙引號(hào)‘&&’和分號(hào)‘;’的區(qū)別是:‘&&’意味著作業(yè)將一個(gè)接一個(gè)地執(zhí)行,而‘;’則表示無論前面的作業(yè)是否成功,第二或第三作業(yè)都將運(yùn)行。

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

特殊字符是cron中用一個(gè)關(guān)鍵詞替換其他字段來執(zhí)行任務(wù)。我們可以在’@’后面接關(guān)鍵字,語法和含義如下。 

  1. 關(guān)鍵字       等價(jià)于          含義   
  2. @yearly     0 0 1 1 *     --> 每年執(zhí)行一次 
  3. @monthly    0 0 1 * *     --> 每月執(zhí)行一次 
  4. @daily      0 0 * * *     --> 每天執(zhí)行一次 
  5. @hourly     0 * * * *     --> 每小時(shí)執(zhí)行一次 
  6. @reboot     --            --> 重啟后執(zhí)行一次 

接下來我們用幾個(gè)例子來說明關(guān)鍵字的使用方法。

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

@yearly相當(dāng)于‘0 0 1 1 *’。

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

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

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

@monthly相當(dāng)于‘0 0 1 * *’。

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

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

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

@daily相當(dāng)于‘0 0 * * *’。

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

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

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

@hourly相當(dāng)于‘0 * * *’。

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

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

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

@reboot可以用來在每次重啟服務(wù)器后執(zhí)行一組命令/腳本。例如:在重啟后,我們可以執(zhí)行一個(gè)命令/腳本來檢查服務(wù)的狀態(tài),如DNS、Apache狀態(tài)等。

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

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

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

感謝閱讀!

 

責(zé)任編輯:未麗燕 來源: tlanyan.pp.ua
相關(guān)推薦

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

2022-08-29 08:33:22

SocatLinux命令

2023-11-30 12:03:06

linuxAwk

2023-11-28 13:15:00

Linuxsed工具

2021-04-19 12:00:15

Linux命令chmod

2017-03-01 11:46:24

Linuxscreen命令示例

2023-11-27 13:57:00

Linux用法

2020-04-16 14:20:16

Linuxtouch命令

2012-02-22 21:54:57

UnixLinuxCron

2013-10-08 15:51:03

Linux find命

2013-05-23 15:10:34

Netcat

2013-10-08 16:24:34

Linux find命

2022-01-17 10:05:33

LinuxWatch命令

2024-01-18 15:34:58

Windows操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品视频在线免费观看 | 7777精品伊人久久精品影视 | 国产一区二区 | 一区二区三区视频在线 | 日韩欧美国产一区二区 | 国产精品久久影院 | 欧美午夜精品 | 国产在线观看av | 美国一级毛片a | 久久av网 | 成人中文字幕在线观看 | 九九久久精品视频 | 成人网av | 99精品免费久久久久久久久日本 | 在线观看av不卡 | 日韩高清一区 | 91国产精品在线 | 国产伦精品一区二区三区视频金莲 | 999精品视频在线观看 | 亚洲精品9999 | 欧美一级大黄 | 97精品一区二区 | 午夜电影网 | 黄色毛片在线观看 | 国产精品久久久久久吹潮 | 国产精品久久久久久高潮 | 日韩中文一区二区 | 久久久精品视频免费看 | 久久涩涩 | 国产在线中文字幕 | 精品一区二区三 | 国产欧美一区二区在线观看 | 成人欧美一区二区三区色青冈 | 97天天干 | 亚洲欧洲一区 | 玖草资源 | 国产一级片在线观看视频 | 国产午夜三级一区二区三 | 成人欧美一区二区三区黑人孕妇 | 成年视频在线观看福利资源 | 中文字幕1区2区 |