一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實(shí)現(xiàn)Linux定時(shí)任務(wù)

Wildesbeast ? 來(lái)源:今日頭條 ? 作者:安界 ? 2020-02-20 15:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

cron的軟件包c(diǎn)ronie

rpm -ql cronie

rpm –ql crontabs

最關(guān)鍵的是一個(gè)叫做crontab的命令,我們要書(shū)寫(xiě)的非系統(tǒng)定時(shí)任務(wù)就是通過(guò)此程序來(lái)編寫(xiě)的;

要保證crond.service服務(wù)有啟動(dòng),cron定時(shí)任務(wù)才會(huì)生效:

systemctl status crond.service 查看crond服務(wù)狀態(tài);

systemctl enable crond.service 開(kāi)機(jī)自動(dòng)啟動(dòng)crond服務(wù);

systemctl disable crond.service 開(kāi)機(jī)禁止啟動(dòng)crond服務(wù);

systemctl start crond.service 啟動(dòng)crond服務(wù);

systemctl stop crond.service 停止crond服務(wù);

systemctl restart crond.service 重啟crond服務(wù);

crontabs軟件包提供了系統(tǒng)級(jí)別的定時(shí)任務(wù)的配置文件和一些初始狀態(tài)的腳本,正常情況,我們不應(yīng)該

去動(dòng)這些腳本。特別是系統(tǒng)默認(rèn)自帶的東西,不要去修改他們,如果一定要用系統(tǒng)的定時(shí)任務(wù),無(wú)非

是我們自己去按照規(guī)定去添加。

提交cron定時(shí)任務(wù)說(shuō)明

向crond提交作業(yè)的方式不同于at,它需要使用專(zhuān)用的配置文件,此文件有固定格式,

不建議使用文本編輯器直接編輯此文件;要使用crontab命令;

cron任務(wù)分為兩類(lèi):

1、系統(tǒng)cron任務(wù)

主要用來(lái)實(shí)現(xiàn)系統(tǒng)自身的維護(hù);可以手動(dòng)編輯修改/etc/crontab文件

2、用戶(hù)cron任務(wù)

通過(guò)crontab命令(一個(gè)帶有SUID權(quán)限的工具)增刪改查;

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

查看配置文件/etc/crontab

說(shuō)明:

1. 如果定義的cron任務(wù)有多個(gè),每行寫(xiě)一個(gè),共7個(gè)字段;字段分別為,

分 時(shí) 日 月 周 user-name表示用戶(hù)名, 后邊表示要執(zhí)行的命令或腳本;

2. 由于這里的環(huán)境變量PATH定義的可選值與系統(tǒng)bash接口略有差別,這里范圍更小,

所以建議,定義定時(shí)任務(wù)中用到的命令建議使用絕對(duì)路徑,或者自定義PATH環(huán)境變量;

crontab命令選項(xiàng)和說(shuō)明

crontab的常建語(yǔ)法結(jié)構(gòu)和選項(xiàng):

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

-e:編輯當(dāng)前用戶(hù)的或者指定用戶(hù)的crontab,如果沒(méi)有定時(shí)任務(wù),會(huì)作為一個(gè)新的文件編輯,編輯默認(rèn)是以vi編輯

器來(lái)編輯,可以通過(guò)顯式設(shè)定VISUAL或EDITOR環(huán)境變量來(lái)修改使用指定的編輯器來(lái)編輯。一但編輯的crontab保

存退出后,crontab會(huì)自動(dòng)被安裝成定時(shí)任務(wù)計(jì)劃。

比如:

export EDITOR="/usr/bin/nano" 或 export EDITOR="/usr/bin/emasc",然后再去crontab -e

nano和emacs都是文本編輯器,默認(rèn)都是沒(méi)有安裝的,需要自己手動(dòng)指定安裝。

-l:列出當(dāng)前用戶(hù)或者指定用戶(hù)的crontab到標(biāo)準(zhǔn)輸出。

-r:移除當(dāng)前用戶(hù)或者指定用戶(hù)的所有定時(shí)任務(wù),即刪除/var/spool/cron/USERNAME文件;(危險(xiǎn),沒(méi)有交互式

操作提示)

-i:在使用-r選項(xiàng)移除所有任務(wù)時(shí)提示用戶(hù)確認(rèn)信息;

-u user:指定管理給定用戶(hù)的crontab,只有超級(jí)管理員用戶(hù)才能管理,普通用戶(hù)不能使用此選項(xiàng);

小技巧和注意事項(xiàng):

1、如果不想把定時(shí)任務(wù)運(yùn)行結(jié)果通知給指定用戶(hù)

COMMAND > /dev/null 標(biāo)準(zhǔn)錯(cuò)誤信息還是會(huì)以郵件的形式通知給用戶(hù);

COMMAND &> /dev/null 所有輸出信息都不會(huì)以郵件的形式通知用戶(hù);

2.定義COMMAND時(shí),如果命令需要用到%,需要對(duì)其轉(zhuǎn)義;但放置于單引號(hào)中的%不用轉(zhuǎn)義亦可;

3.某任務(wù)在指定的時(shí)間因關(guān)機(jī)未能執(zhí)行,下次開(kāi)機(jī)不會(huì)自動(dòng)執(zhí)行;

4.如果期望某時(shí)間因故未能按時(shí)執(zhí)行,下次開(kāi)機(jī)后無(wú)論是否到了相應(yīng)時(shí)間點(diǎn)都要執(zhí)行一次,可使用anacron實(shí)現(xiàn);

crontab配置定時(shí)任務(wù)時(shí)候的時(shí)間表示

時(shí)間格式一共5位,分別對(duì)應(yīng):

* * * * *

分 時(shí) 日 月 周

分鐘有效值:0 - 59;

時(shí)的有效值:0 - 23;

日的有效值: 1 - 31;

月的有效值:1 - 12 或 jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec;

周的有效值:0 - 6 ,星期天可以用0或7表示,這個(gè)是個(gè)特例,也可以用周的英文縮寫(xiě),

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

· 指定特定值

給定時(shí)間點(diǎn)有效取值范圍內(nèi)的值;

注意:day of week和day of month一般不同時(shí)使用;

例如:

3 * * * *:執(zhí)行頻率為 每小時(shí)執(zhí)行一次;每小時(shí)的第3分鐘執(zhí)行;

3 4 * * 5:執(zhí)行頻率為 每周執(zhí)行一次;每周5的4點(diǎn)3分執(zhí)行;

5 6 7 * *:執(zhí)行頻率為 每月執(zhí)行一次;每月的7號(hào)的6點(diǎn)5分執(zhí)行;

7 8 9 10 *:執(zhí)行頻率為 每年執(zhí)行一次;每年的10月9號(hào)8點(diǎn)7分執(zhí)行;

· 取所有值

給定時(shí)間點(diǎn)上有效取值范圍內(nèi)的所有值;表示"每xxx"的含義;

· 離散取值

在時(shí)間點(diǎn)上使用逗號(hào)分隔的多個(gè)值;

x,y,z

例如:

0 8,20 * * 3,7:這種不建議;(出現(xiàn)了20號(hào),又出現(xiàn)了每周3,周天);

9 8 * * 3,7:每周三和周日?qǐng)?zhí)行的8點(diǎn)9分執(zhí)行;

· 連續(xù)取值

在時(shí)間點(diǎn)上使用符號(hào)短破折號(hào)"-"連接開(kāi)頭和結(jié)束

x-y

例如:

0 9-18 * * 1-5:周1到周5,每天的9點(diǎn)到18點(diǎn),執(zhí)行;(假設(shè)上午9點(diǎn)上班,下午18點(diǎn)下班,雙休,這就是

工作日?qǐng)?zhí)行要執(zhí)行的任務(wù))

· 步長(zhǎng)取值

在指定時(shí)間點(diǎn)上,定義步長(zhǎng):

/number :其中number表示步長(zhǎng);

指定的時(shí)間點(diǎn)不能被步長(zhǎng)整除時(shí),其意義將不復(fù)存在;

最小時(shí)間單位為"分鐘",想要完成"秒"級(jí)別任務(wù),需要額外借助于其他機(jī)制,例如

可以定義每分鐘定時(shí)計(jì)劃任務(wù),再利用腳本實(shí)現(xiàn)在每分鐘之內(nèi),循環(huán)執(zhí)行多次;

例如:

*/5 * * * *:每5分鐘執(zhí)行一次;

* */1 * * *:每1小時(shí)執(zhí)行一次;

* * */5 * *:每5天執(zhí)行一次;

*/7 * * * *:這個(gè)并不完全是每7分鐘執(zhí)行一次,這種不整除的現(xiàn)象,不建議使用。

cron定時(shí)任務(wù)示例

1、每12小時(shí)備份一次/etc目錄至/backups目錄中,保存文件 名稱(chēng)格式為"etc-yyyy-mm-dd-hh.tar.xz"要添加的任務(wù)計(jì)劃為:

* */12 * * * /usr/bin/mkdir -p /backups >/dev/null && /usr/bin/tar -JPcvf /backups/etc-`date '+%Y-%m-%d-%H'`.tar.xz /etc >/dev/null

*

2、每周2、4、7備份/var/log/secure文件至/logs目錄中,文件名格式為"secure-yyyymmdd";

要添加的任務(wù)計(jì)劃為:

* * * * 2,4,7 /usr/bin/mkdir -p /logs >/dev/null && tar -JcvfP /logs/secure-`date +%Y%m%d`.tar.xz /var/log/secure >/dev/null

3、每?jī)尚r(shí)取出當(dāng)前系統(tǒng)/proc/meminfo文件中以S或M開(kāi)頭的行信息追加至/tmp/meminfo.txt文件中;

* */2 * * * /usr/bin/grep -E '^(S|M)' /proc/meminfo >> /tmp/meminfo.txt

4、制定每周三凌晨三、五點(diǎn)10分執(zhí)行某個(gè)腳本,輸出當(dāng)前時(shí)間,時(shí)間格式為 2017-12-28 10:00:00;

我的腳本內(nèi)容為:

[root@node2 ~]# cat /var/tmp/print_dtime.sh

#! /bin/bash

PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

LANG="en_US.UTF-8"

export PATH LANG

source /etc/profile

shopt -u expand_aliases #關(guān)閉 bash alias 擴(kuò)展

echo `date +'%Y-%m-%d %H:%M:%S'`

[root@node2 ~]#

定時(shí)任務(wù)計(jì)劃為:

10 3,5 * * 3 bash /var/tmp/print_dtime.sh

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11512

    瀏覽量

    213912
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3300

    瀏覽量

    119039
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    822

    瀏覽量

    32061
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux系統(tǒng)定時(shí)任務(wù)Crond

    會(huì)定期(默認(rèn)每分鐘檢查一次)檢查系統(tǒng)中是否有要執(zhí)行的任務(wù)工作,如果有,便會(huì)根據(jù)其預(yù)先設(shè)定的定時(shí)任務(wù)規(guī)則自動(dòng)執(zhí)行該定時(shí)任務(wù)工作,這個(gè)crond定時(shí)任務(wù)服務(wù)就相當(dāng)于我們平時(shí)早起使用的鬧鐘一
    發(fā)表于 07-05 06:22

    詳解linux定時(shí)任務(wù)

    定時(shí)執(zhí)行程序,實(shí)現(xiàn)腳本中的功能,在linux是通過(guò)etc/init.d/crond這個(gè)服務(wù)來(lái)實(shí)現(xiàn)計(jì)劃任務(wù)
    發(fā)表于 07-25 06:12

    linux的循環(huán)定時(shí)任務(wù)

    linux循環(huán)定時(shí)任務(wù)
    發(fā)表于 05-20 14:59

    嵌入式linux是如何去實(shí)現(xiàn)定時(shí)任務(wù)

    嵌入式linux用倒計(jì)時(shí)是方式代替定時(shí)任務(wù)測(cè)試過(guò)程中,嵌入式linux ,是因?yàn)槭褂玫南到y(tǒng)默認(rèn)使用ash進(jìn)行編譯shell腳本,導(dǎo)致無(wú)法正常編譯。service crond status無(wú)法啟動(dòng)
    發(fā)表于 11-05 06:04

    定時(shí)任務(wù)的發(fā)展史是怎么樣的

    定時(shí)任務(wù)是互聯(lián)網(wǎng)行業(yè)里最常用的服務(wù)之一,本文給大家介紹定時(shí)任務(wù)在我司的發(fā)展歷程。 linux系統(tǒng)中一般使用crontab命令來(lái)實(shí)現(xiàn),在Java世界里,使用最廣泛的就是quartz了。我
    發(fā)表于 07-18 17:38 ?0次下載
    <b class='flag-5'>定時(shí)任務(wù)</b>的發(fā)展史是怎么樣的

    linux定時(shí)任務(wù)如何判斷文件差異?

    設(shè)計(jì)每10min執(zhí)行任務(wù)檢查/app/recode文件大小,該文件不會(huì)超過(guò)4MB,超過(guò)此大小則壓縮處理,僅保留最近的日志內(nèi)容。立馬著手檢查linux定時(shí)任務(wù)cron運(yùn)行情況。 2. 初步排查 執(zhí)
    的頭像 發(fā)表于 03-17 10:05 ?1675次閱讀

    SpringBoot如何實(shí)現(xiàn)動(dòng)態(tài)增刪啟停定時(shí)任務(wù)

    在spring boot項(xiàng)目中,可以通過(guò) @EnableScheduling 注解和@Scheduled注解實(shí)現(xiàn)定時(shí)任務(wù),也可以通過(guò)SchedulingConfigurer接口來(lái)實(shí)現(xiàn)定時(shí)任務(wù)
    的頭像 發(fā)表于 09-24 09:49 ?3240次閱讀
    SpringBoot如何<b class='flag-5'>實(shí)現(xiàn)</b>動(dòng)態(tài)增刪啟停<b class='flag-5'>定時(shí)任務(wù)</b>

    Python定時(shí)任務(wù)實(shí)現(xiàn)方式

    在日常工作中,我們常常會(huì)用到需要周期性執(zhí)行的任務(wù),一種方式是采用 Linux 系統(tǒng)自帶的 crond 結(jié)合命令行實(shí)現(xiàn)。另外一種方式是直接使用Python。接下來(lái)整理的是常見(jiàn)的Python定時(shí)任
    的頭像 發(fā)表于 10-08 15:20 ?1w次閱讀

    嵌入式linux 用倒計(jì)時(shí)的方式代替定時(shí)任務(wù)

    嵌入式linux 用倒計(jì)時(shí)是方式代替定時(shí)任務(wù)測(cè)試過(guò)程中,嵌入式linux ,是因?yàn)槭褂玫南到y(tǒng)默認(rèn)使用ash進(jìn)行編譯shell腳本,導(dǎo)致無(wú)法正常編譯。service crond status 無(wú)法
    發(fā)表于 11-02 15:06 ?13次下載
    嵌入式<b class='flag-5'>linux</b>  用倒計(jì)時(shí)的方式代替<b class='flag-5'>定時(shí)任務(wù)</b>

    解析Golang定時(shí)任務(wù)庫(kù)gron設(shè)計(jì)和原理

    正巧,最近看到了 gron 這個(gè)開(kāi)源項(xiàng)目,它是用 Golang 實(shí)現(xiàn)一個(gè)并發(fā)安全的定時(shí)任務(wù)庫(kù)。實(shí)現(xiàn)非常簡(jiǎn)單精巧,代碼量也不多。今天我們就來(lái)一起結(jié)合源碼看一下,怎樣基于 Golang 的能力做出來(lái)一個(gè)【
    的頭像 發(fā)表于 12-15 13:57 ?1701次閱讀

    求一種SpringBoot定時(shí)任務(wù)動(dòng)態(tài)管理通用解決方案

    SpringBoot的定時(shí)任務(wù)的加強(qiáng)工具,實(shí)現(xiàn)對(duì)SpringBoot原生的定時(shí)任務(wù)進(jìn)行動(dòng)態(tài)管理,完全兼容原生@Scheduled注解,無(wú)需對(duì)原本的定時(shí)任務(wù)進(jìn)行修改
    的頭像 發(fā)表于 02-03 09:49 ?1030次閱讀

    如何動(dòng)態(tài)添加修改刪除定時(shí)任務(wù)?

    如何動(dòng)態(tài)添加修改刪除定時(shí)任務(wù)?那么我們一起看看具體怎么實(shí)現(xiàn),先看下本節(jié)大綱: (1)思路說(shuō)明; (2)代碼解析; (3)修改定時(shí)任務(wù)執(zhí)行周期特別說(shuō)明;
    的頭像 發(fā)表于 04-12 11:06 ?1397次閱讀

    Linux如何使用cron進(jìn)行定時(shí)任務(wù)的操作

    按計(jì)劃執(zhí)行命令對(duì)于計(jì)算機(jī)來(lái)說(shuō)非常重要,因?yàn)榧偃缥矣H自去執(zhí)行一些任務(wù)的話,可能會(huì)因?yàn)槎喾矫嬉蛩夭荒馨磿r(shí)執(zhí)行,所以定時(shí)任務(wù)就顯得非常重要了! cron就是一個(gè)能夠執(zhí)行定時(shí)任務(wù)的命令,其實(shí)該命令本身不難,下面小編帶您詳細(xì)了解!
    的頭像 發(fā)表于 05-12 16:27 ?2376次閱讀

    python定時(shí)任務(wù)實(shí)踐

    由于程序需求,監(jiān)測(cè)配置變化需要設(shè)置定時(shí)任務(wù),每分鐘執(zhí)行一次,對(duì)任務(wù)持久化要求不高,不需要時(shí)可以關(guān)閉定時(shí)任務(wù)
    的頭像 發(fā)表于 05-20 17:53 ?1203次閱讀
    python<b class='flag-5'>定時(shí)任務(wù)</b>實(shí)踐

    linux定時(shí)任務(wù)的用法總結(jié)

    習(xí)慣了使用 windows 的計(jì)劃任務(wù),使用 linux 中的 crontab 管理定時(shí)任務(wù)時(shí)很不適應(yīng)。
    的頭像 發(fā)表于 08-14 18:16 ?1157次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>定時(shí)任務(wù)</b>的用法總結(jié)