日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux定时任务每小时_linux定时任务

發(fā)布時(shí)間:2023/12/18 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux定时任务每小时_linux定时任务 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第1章 定時(shí)任務(wù)介紹

1.1 什么是定時(shí)任務(wù)?

crond是linux系統(tǒng)中用來(lái)定期執(zhí)行命令或指定程序任務(wù)的一種服務(wù)或軟件。一般情況下,我們按裝完操作系統(tǒng)后,默認(rèn)遍會(huì)啟動(dòng)crond服務(wù)調(diào)度服務(wù),在我們面前的系統(tǒng)安裝及開(kāi)機(jī)啟動(dòng)優(yōu)化設(shè)置中,我們也設(shè)置保留了crond開(kāi)機(jī)啟動(dòng)。crond服務(wù)會(huì)定期(默認(rèn)每分鐘檢查一次)檢查系統(tǒng)中是否有要執(zhí)行的任務(wù)工作。如果有。變會(huì)根據(jù)埼玉縣設(shè)定的定時(shí)任務(wù)規(guī)則執(zhí)行該定時(shí)任務(wù)。這個(gè)crond定時(shí)任務(wù)就相當(dāng)于我們平時(shí)早起使用的鬧鐘一樣。

特殊需求:crond服務(wù)搞不定了(如任務(wù)精確到秒),一般工作中寫(xiě)腳本守護(hù)進(jìn)程執(zhí)行。

這里要求理解進(jìn)程、程序、守護(hù)進(jìn)程之前的關(guān)系。

1.2 linux系統(tǒng)crond的定時(shí)任務(wù)

linux系統(tǒng)中定時(shí)任務(wù)調(diào)度工作可以分為以下兩種情況:

1.2.1 linux系統(tǒng)自身定期執(zhí)行的任務(wù)工作:

系統(tǒng)周期性自行執(zhí)行的任務(wù)工作,如輪詢(xún)系統(tǒng)日志、備份系統(tǒng)數(shù)據(jù)、清理系統(tǒng)緩存等,這些任務(wù)無(wú)需我們認(rèn)為干預(yù)。如:

[root@oldboy ~]# ll /var/log/messages*

-rw-------? 1root root? 838513 Sep? 8 23:52 /var/log/messages

-rw-------. 1 root root? 496687 Aug 14 19:59/var/log/messages-20160814

-rw-------. 1 root root 1614991 Aug 21 12:14/var/log/messages-20160821

-rw-------? 1root root 1419878 Aug 28 08:45 /var/log/messages-20160828

-rw-------? 1root root 1104533 Sep? 4 11:22/var/log/messages-20160904

1.2.2?? 用戶(hù)執(zhí)行的任務(wù)工作:

某個(gè)用戶(hù)或系統(tǒng)管理員定期要做的任務(wù)工作,例如每隔5分鐘和互聯(lián)網(wǎng)上時(shí)間服務(wù)同步(這是安裝系統(tǒng)基礎(chǔ)優(yōu)化部分的內(nèi)容),每天晚上0點(diǎn)備份網(wǎng)站站點(diǎn)數(shù)據(jù)及數(shù)據(jù)庫(kù)數(shù)據(jù),一般這些工作需要由每個(gè)用戶(hù)自行設(shè)置才行。所謂的用戶(hù)就是讀者或者在做的小伙伴。

例如:服務(wù)器時(shí)間同步

[root@oldboy ~]# crontab -l

#time sync by hz at 2016-8-19

*/5 * * * * /usr/sbin/ntpdate pool.ntp.org>/dev/null 2>&1

linux系統(tǒng)下定時(shí)任務(wù)軟件種類(lèi)

1.3 linux系統(tǒng)下定時(shí)任務(wù)軟件

at,crontab,anacron.

at定時(shí)任務(wù),是一種臨時(shí)性的定時(shí)軟件,在命令行設(shè)置at定時(shí)任務(wù),只會(huì)執(zhí)行一次,然后失效。跟windows里cmd中的at定時(shí)任務(wù)類(lèi)似。(不常用)

anacron定時(shí)任務(wù),該定時(shí)任務(wù)可以在系統(tǒng)關(guān)機(jī)后,將關(guān)機(jī)期間的沒(méi)有執(zhí)行的定時(shí)任務(wù)在開(kāi)機(jī)的時(shí)候自動(dòng)都執(zhí)行一遍。然而在生產(chǎn)環(huán)境中,服務(wù)器是不允許停機(jī)的,所以該服務(wù)基本上也不會(huì)用到。(幾乎不用)

crond定時(shí)任務(wù),該服務(wù)是生產(chǎn)環(huán)境普遍用到的定時(shí)任務(wù),可以精確到分鐘。在系統(tǒng)優(yōu)化中的精簡(jiǎn)開(kāi)機(jī)服務(wù)啟動(dòng)項(xiàng)中將該服務(wù)保留,開(kāi)機(jī)啟動(dòng)。

第2章 定時(shí)任務(wù)crond使用說(shuō)明

2.1 指令語(yǔ)法

crond定時(shí)任務(wù)的命令為crondtab,常用選項(xiàng):

crontab [-u user] file

crontab [-u user] [-l | -r | -e] [-i] [-s]

-u(user)執(zhí)行該定時(shí)任務(wù)的用戶(hù)

-l(list)查看定時(shí)任務(wù)列表

-e(edit)編輯定時(shí)任務(wù)

2.2 定時(shí)任務(wù)的文件

定時(shí)任務(wù)的執(zhí)行是由系統(tǒng)每隔一分鐘,系統(tǒng)自動(dòng)掃描一次定時(shí)任務(wù)的定時(shí)文件,如果存在定時(shí)任務(wù),就執(zhí)行相應(yīng)的命令。

2.2.1 系統(tǒng)定時(shí)任務(wù)文件:

[root@oldboy ~]# cat /etc/crontab

SHELL=/bin/bash???????????????????????????? #默認(rèn)編輯器

PATH=/sbin:/bin:/usr/sbin:/usr/bin????????? #定時(shí)任務(wù)中的PATH黃金變量

MAILTO=root???????????????????????????????? #默認(rèn)生成文件的位置

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59) ??????? #每小時(shí)的第幾分鐘

# |?.------------- hour (0 - 23)?????????? #每天的第幾小時(shí)

# |? |? .---------- day of month (1 - 31)?? #每月的第幾天

# |? |? |?.------- month (1 - 12) OR jan,feb,mar,apr ...?????? #每年的第幾個(gè)月

# |? |? |?|? .---- day of week (0 - 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat? #每周周幾

# |? |? |?|? |

# *? *? *?*? * user-name command to beexecuted

系統(tǒng)定時(shí)任務(wù)有七部分組成:分、時(shí)、日、月、周、用戶(hù)和命令。

2.2.2 用戶(hù)的定時(shí)任務(wù)文件

用戶(hù)定時(shí)任務(wù)文件在/var/spool/cron/下,

如系統(tǒng)的定時(shí)任務(wù)文件:

cat /var/spool/cron/root

#time sync by hz at 2016-8-19

*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null2>&1

用戶(hù)的定時(shí)任務(wù)由六部分組成:分、時(shí)、日、月、周、命令。

查看系統(tǒng)定時(shí)任務(wù):

[root@oldboy ~]#crontab -l

#time sync by hz at 2016-8-19

*/5 * * * * /usr/sbin/ntpdate pool.ntp.org>/dev/null 2>&1

編輯系統(tǒng)定時(shí)任務(wù):

[root@oldboy ~]# crontab -e

#time sync by hz at 2016-8-19

*/5 * * * * /usr/sbin/ntpdate pool.ntp.org>/dev/null 2>&1

crontab -e編輯定時(shí)任務(wù)實(shí)際上就是將定時(shí)任務(wù)寫(xiě)到定時(shí)任務(wù)文件/var/spool/cron/root中,也可以直接將定時(shí)任務(wù)追加到該文件中。crontab -e的用法好處是系統(tǒng)自動(dòng)檢測(cè)語(yǔ)法是否錯(cuò)誤。所以初學(xué)者建議用此方法。

2.3 定時(shí)任務(wù)中的時(shí)間表示

定時(shí)任務(wù)中的時(shí)間是由一些特殊的字符和數(shù)字以特殊的排序組成的。符號(hào)用法

**代表“每”的意思,在什么位置上就代表沒(méi)多長(zhǎng)時(shí)間。

如:* * * * ?*?? 表示每分鐘

00 * * * * 表示每小時(shí)的整點(diǎn)

,“,”表示間隔的時(shí)間,當(dāng)時(shí)間不連續(xù)時(shí),可以用逗號(hào)分隔開(kāi)

如:15,30,45 * ?* * *?? 表示每小時(shí)的第15、30、45分鐘時(shí)執(zhí)行命令。

-“-”可以用來(lái)表示連續(xù)的時(shí)間段,從某一時(shí)間開(kāi)始到某一時(shí)間結(jié)束。

如:00 ?23,01-07 * * *? 表示每天的晚上23點(diǎn)到第二天早上的7點(diǎn)的整點(diǎn)執(zhí)行命令。

/“/”表示每隔的意思,就是每隔多長(zhǎng)時(shí)間。

如*/5 * * * *?? 表示每隔5分鐘執(zhí)行一次命令

注意與*的區(qū)別

第3章 定時(shí)任務(wù)案例練習(xí)

實(shí)例3-1

每隔五分鐘同步一次系統(tǒng)的時(shí)間

/5 * * * * /usr/sbin/ntpdate pool.ntp.org>/dev/null 2>&1

實(shí)例3-2

每分鐘執(zhí)行一次腳本/server/scripts/tar.sh

* * * * * /bin/sh /server/scripts/tar.sh>/dev/null 2>&1

實(shí)例3-3

每天晚上12點(diǎn)執(zhí)行腳本/bin/sh/server/scripts/tar_html.sh

00 00 * * * /bin/sh /bin/sh/server/scripts/tar_html.sh >/dev/null 2>&1

實(shí)例3-4

每個(gè)月的4號(hào)和每周的周一至周三的上午11點(diǎn)整重啟Apache服務(wù)

00?11?4?*?1-3?/oldboy/weberber/apache/bin/apachectl?restart

實(shí)例3-5

*23,00-07/1 * * * /application/apache/bin/apachectlgraceful

以上不是表示每天晚上的23點(diǎn)到第二天的早上七點(diǎn)每小時(shí)重啟一次Apache服務(wù)。

實(shí)際表達(dá)的意思是每分鐘執(zhí)行一次命令

若要表示每小時(shí)執(zhí)行一次重啟服務(wù)的正確寫(xiě)法是:

00 23,00-07/1 * * * /application/apache/bin/apachectl graceful

第4章 企業(yè)書(shū)寫(xiě)定時(shí)任務(wù)規(guī)范

在生產(chǎn)環(huán)境中,操作正確的重要性是不言而喻的。為了避免操作中的失誤,規(guī)范的操作流程是做到減少失誤的有效方法,下面以一個(gè)生產(chǎn)環(huán)境的案例來(lái)說(shuō)明一下操作的正確流程。

4.1 實(shí)例演示規(guī)范操作

實(shí)例4-1規(guī)范定時(shí)任務(wù)案例:

每分鐘打包備份/etc/services文件一次到/tmp目錄下,要求打包文件不被覆蓋。

1、在命令行下測(cè)試成功

[root@oldboy ~]# cd /etc/

[root@oldboy /etc]# tar -zcf/tmp/services_backup$(date +%F-%H-%M).tar.gz services

[root@oldboy /etc]# ls/tmp/services_backup2016-09-09-22-37.tar.gz

/tmp/services_backup2016-09-09-22-37.tar.gz

2、將執(zhí)行命令寫(xiě)入腳本

[root@oldboy ~]# mkdir -p /server/scripts/

[root@oldboy /etc]# vim/server/scripts/backup_services.sh

1#!/bin/bash

2 cd /etc/&&\

3 /bin/tar-zcf /tmp/services_backup$(date +%F-%H-%M).tar.gz services

將前面執(zhí)行成功的命令復(fù)制到腳本中,防止手動(dòng)敲錯(cuò)。

3、測(cè)試腳本

[root@oldboy /etc]# /bin/sh/server/scripts/backup_services.sh

[root@oldboy /etc]# ls/tmp/services_backup2016-09-09-22-*

/tmp/services_backup2016-09-09-22-37.tar.gz

/tmp/services_backup2016-09-09-22-43.tar.gz

測(cè)試腳本時(shí)要用全路徑,測(cè)試完成注意查看測(cè)試結(jié)果

4、編寫(xiě)定時(shí)任務(wù)

[root@oldboy /etc]# crontab -l |tail -2

#backup services by crh at 2016-09-09

* * * * * /bin/sh/server/scripts/backup_services.sh >/dev/null 2>&1

注意定時(shí)任務(wù)的時(shí)間書(shū)寫(xiě)格式,以及業(yè)務(wù)要求中的時(shí)間;

定時(shí)任務(wù)的命令要執(zhí)行直接復(fù)制命令行中執(zhí)行腳本的命令;

定時(shí)任務(wù)中執(zhí)行腳本后結(jié)果記得定向到/dev/null中;

寫(xiě)完定時(shí)任務(wù)注意查看是否正確。

5、查看定時(shí)任務(wù)執(zhí)行效果

[root@oldboy /etc]# ls/tmp/services_backup2016-09-09-22-*

/tmp/services_backup2016-09-09-22-49.tar.gz

/tmp/services_backup2016-09-09-22-50.tar.gz

/tmp/services_backup2016-09-09-22-51.tar.gz

/tmp/services_backup2016-09-09-22-52.tar.gz

/tmp/services_backup2016-09-09-22-53.tar.gz

[root@oldboy /etc]# tail -f /var/log/cron

…………

Sep? 922:50:01 oldboy CROND[1542]: (root) CMD (/usr/lib64/sa/sa1 1 1)

Sep? 922:51:01 oldboy CROND[1551]: (root) CMD (/bin/sh/server/scripts/backup_services.sh >/dev/null 2>&1)

Sep? 922:52:01 oldboy CROND[1557]: (root) CMD (/bin/sh/server/scripts/backup_services.sh >/dev/null 2>&1)

Sep? 922:53:01 oldboy CROND[1563]: (root) CMD (/bin/sh/server/scripts/backup_services.sh >/dev/null 2>&1)

查看執(zhí)行的結(jié)果是否正確;

跟蹤定時(shí)任務(wù)日志tail -f /var/log/cron查看狀態(tài)。

6、盡量多環(huán)境測(cè)試后在上產(chǎn)線。

個(gè)人的虛擬機(jī)測(cè)試à辦公室環(huán)境測(cè)試àIDC機(jī)房測(cè)試àIDC正式環(huán)境

4.2 定時(shí)任務(wù)規(guī)范操作步驟:

1、在命令行下測(cè)試成功

2、將執(zhí)行命令寫(xiě)入腳本

3、測(cè)試腳本

4、編寫(xiě)定時(shí)任務(wù)

5、查看定時(shí)任務(wù)執(zhí)行效果

6、盡量多環(huán)境測(cè)試后在上產(chǎn)線。

4.3 定時(shí)任務(wù)規(guī)范習(xí)慣

1、注釋【規(guī)范和習(xí)慣】

2、命令放腳本文件里

3、進(jìn)入目標(biāo)的上級(jí)目錄打包

4、命令在命令行測(cè)試好,然后復(fù)制后放入腳本

5、腳本文件要放在固定的規(guī)范的目錄/server/scripts

6、取消tar命令及腳本的無(wú)用輸出

7、腳本名字用.sh結(jié)尾

8、腳本前面要用/bin/sh執(zhí)行腳本,并且腳本也要全路徑

9、復(fù)制執(zhí)行的全路徑的腳本到定時(shí)任務(wù)里配置,或者配置好定時(shí)任務(wù)后,復(fù)制定時(shí)任務(wù)命令到命令行測(cè)試。

10、定時(shí)任務(wù)的結(jié)尾要加上>/dev/null 2>&1

第5章 企業(yè)案例

5.1 企業(yè)案例:inode被填滿(mǎn)的企業(yè)案例子。

郵件消息隊(duì)列文件

CentOS5???/var/spool/clientmquenue/

CentOS6????? /var/spool/postfix/maildrop/

和定時(shí)任務(wù)相關(guān)的原因:

在定時(shí)任務(wù)中,定時(shí)任務(wù)執(zhí)行出現(xiàn)錯(cuò)誤,但是有沒(méi)有講錯(cuò)誤輸出定向到/dev/null中,而且系統(tǒng)中的郵件服務(wù)有沒(méi)有開(kāi)啟,導(dǎo)致系統(tǒng)報(bào)錯(cuò)小文件堆積在郵件消息隊(duì)列文件下,占用完系統(tǒng)的inode。

解決辦法:

1、將郵件服務(wù)打開(kāi),

2、將定時(shí)任務(wù)的結(jié)果定向到/dev/null

5.2linux定時(shí)任務(wù)生產(chǎn)java服務(wù)無(wú)法執(zhí)行問(wèn)題群友案例

分析:

conrd定時(shí)任務(wù)中的環(huán)境變量只包含了系統(tǒng)中的小部分,在執(zhí)行命令的時(shí)候如果沒(méi)有加全路徑或?qū)h(huán)境變量加入到腳本中,就會(huì)導(dǎo)致定時(shí)任務(wù)執(zhí)行失敗。所以在定時(shí)任務(wù)中執(zhí)行的命令要加上全路徑。在特殊情況下(Java)要將環(huán)境變量導(dǎo)入到執(zhí)行的腳本中。使得定時(shí)任務(wù)能夠正確執(zhí)行。

總結(jié)

以上是生活随笔為你收集整理的linux定时任务每小时_linux定时任务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。