精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

      0
      • 聊天消息
      • 系統消息
      • 評論與回復
      登錄后你可以
      • 下載海量資料
      • 學習在線課程
      • 觀看技術視頻
      • 寫文章/發帖/加入社區
      會員中心
      創作中心

      完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

      3天內不再提示

      如何實現Linux定時任務

      Wildesbeast ? 來源:今日頭條 ? 作者:安界 ? 2020-02-20 15:09 ? 次閱讀

      cron的軟件包cronie

      rpm -ql cronie

      rpm –ql crontabs

      最關鍵的是一個叫做crontab的命令,我們要書寫的非系統定時任務就是通過此程序來編寫的;

      要保證crond.service服務有啟動,cron定時任務才會生效:

      systemctl status crond.service 查看crond服務狀態;

      systemctl enable crond.service 開機自動啟動crond服務;

      systemctl disable crond.service 開機禁止啟動crond服務;

      systemctl start crond.service 啟動crond服務;

      systemctl stop crond.service 停止crond服務;

      systemctl restart crond.service 重啟crond服務;

      crontabs軟件包提供了系統級別的定時任務的配置文件和一些初始狀態的腳本,正常情況,我們不應該

      去動這些腳本。特別是系統默認自帶的東西,不要去修改他們,如果一定要用系統的定時任務,無非

      是我們自己去按照規定去添加。

      提交cron定時任務說明

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

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

      cron任務分為兩類:

      1、系統cron任務

      主要用來實現系統自身的維護;可以手動編輯修改/etc/crontab文件

      2、用戶cron任務

      通過crontab命令(一個帶有SUID權限的工具)增刪改查;

      系統定時任務配置文件

      查看配置文件/etc/crontab

      說明:

      1. 如果定義的cron任務有多個,每行寫一個,共7個字段;字段分別為,

      分 時 日 月 周 user-name表示用戶名, 后邊表示要執行的命令或腳本;

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

      所以建議,定義定時任務中用到的命令建議使用絕對路徑,或者自定義PATH環境變量;

      crontab命令選項和說明

      crontab的常建語法結構和選項:

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

      -e:編輯當前用戶的或者指定用戶的crontab,如果沒有定時任務,會作為一個新的文件編輯,編輯默認是以vi編輯

      器來編輯,可以通過顯式設定VISUAL或EDITOR環境變量來修改使用指定的編輯器來編輯。一但編輯的crontab保

      存退出后,crontab會自動被安裝成定時任務計劃。

      比如:

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

      nano和emacs都是文本編輯器,默認都是沒有安裝的,需要自己手動指定安裝。

      -l:列出當前用戶或者指定用戶的crontab到標準輸出。

      -r:移除當前用戶或者指定用戶的所有定時任務,即刪除/var/spool/cron/USERNAME文件;(危險,沒有交互式

      操作提示)

      -i:在使用-r選項移除所有任務時提示用戶確認信息

      -u user:指定管理給定用戶的crontab,只有超級管理員用戶才能管理,普通用戶不能使用此選項;

      小技巧和注意事項:

      1、如果不想把定時任務運行結果通知給指定用戶

      COMMAND > /dev/null 標準錯誤信息還是會以郵件的形式通知給用戶;

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

      2.定義COMMAND時,如果命令需要用到%,需要對其轉義;但放置于單引號中的%不用轉義亦可;

      3.某任務在指定的時間因關機未能執行,下次開機不會自動執行;

      4.如果期望某時間因故未能按時執行,下次開機后無論是否到了相應時間點都要執行一次,可使用anacron實現;

      crontab配置定時任務時候的時間表示

      時間格式一共5位,分別對應:

      * * * * *

      分 時 日 月 周

      分鐘有效值:0 - 59;

      時的有效值:0 - 23;

      日的有效值: 1 - 31;

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

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

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

      · 指定特定值

      給定時間點有效取值范圍內的值;

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

      例如:

      3 * * * *:執行頻率為 每小時執行一次;每小時的第3分鐘執行;

      3 4 * * 5:執行頻率為 每周執行一次;每周5的4點3分執行;

      5 6 7 * *:執行頻率為 每月執行一次;每月的7號的6點5分執行;

      7 8 9 10 *:執行頻率為 每年執行一次;每年的10月9號8點7分執行;

      · 取所有值

      給定時間點上有效取值范圍內的所有值;表示"每xxx"的含義;

      · 離散取值

      在時間點上使用逗號分隔的多個值;

      x,y,z

      例如:

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

      9 8 * * 3,7:每周三和周日執行的8點9分執行;

      · 連續取值

      在時間點上使用符號短破折號"-"連接開頭和結束

      x-y

      例如:

      0 9-18 * * 1-5:周1到周5,每天的9點到18點,執行;(假設上午9點上班,下午18點下班,雙休,這就是

      工作日執行要執行的任務)

      · 步長取值

      在指定時間點上,定義步長:

      /number :其中number表示步長;

      指定的時間點不能被步長整除時,其意義將不復存在;

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

      可以定義每分鐘定時計劃任務,再利用腳本實現在每分鐘之內,循環執行多次;

      例如:

      */5 * * * *:每5分鐘執行一次;

      * */1 * * *:每1小時執行一次;

      * * */5 * *:每5天執行一次;

      */7 * * * *:這個并不完全是每7分鐘執行一次,這種不整除的現象,不建議使用。

      cron定時任務示例

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

      * */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";

      要添加的任務計劃為:

      * * * * 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、每兩小時取出當前系統/proc/meminfo文件中以S或M開頭的行信息追加至/tmp/meminfo.txt文件中;

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

      4、制定每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00;

      我的腳本內容為:

      [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 #關閉 bash alias 擴展

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

      [root@node2 ~]#

      定時任務計劃為:

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

      聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
      • Linux
        +關注

        關注

        87

        文章

        11227

        瀏覽量

        208925
      • 定時器
        +關注

        關注

        23

        文章

        3237

        瀏覽量

        114467
      • 編輯器
        +關注

        關注

        1

        文章

        801

        瀏覽量

        31119
      收藏 人收藏

        評論

        相關推薦

        Linux系統定時任務Crond

        會定期(默認每分鐘檢查一次)檢查系統中是否有要執行的任務工作,如果有,便會根據其預先設定的定時任務規則自動執行該定時任務工作,這個crond定時任務服務就相當于我們平時早起使用的鬧鐘一
        發表于 07-05 06:22

        詳解linux定時任務

        定時執行程序,實現腳本中的功能,在linux是通過etc/init.d/crond這個服務來實現計劃任務
        發表于 07-25 06:12

        linux的循環定時任務

        linux循環定時任務
        發表于 05-20 14:59

        嵌入式linux是如何去實現定時任務

        嵌入式linux用倒計時是方式代替定時任務測試過程中,嵌入式linux ,是因為使用的系統默認使用ash進行編譯shell腳本,導致無法正常編譯。service crond status無法啟動
        發表于 11-05 06:04

        定時任務的發展史是怎么樣的

        定時任務是互聯網行業里最常用的服務之一,本文給大家介紹定時任務在我司的發展歷程。 linux系統中一般使用crontab命令來實現,在Java世界里,使用最廣泛的就是quartz了。我
        發表于 07-18 17:38 ?0次下載
        <b class='flag-5'>定時任務</b>的發展史是怎么樣的

        linux定時任務如何判斷文件差異?

        設計每10min執行任務檢查/app/recode文件大小,該文件不會超過4MB,超過此大小則壓縮處理,僅保留最近的日志內容。立馬著手檢查linux定時任務cron運行情況。 2. 初步排查 執
        的頭像 發表于 03-17 10:05 ?1406次閱讀

        SpringBoot如何實現動態增刪啟停定時任務

        在spring boot項目中,可以通過 @EnableScheduling 注解和@Scheduled注解實現定時任務,也可以通過SchedulingConfigurer接口來實現定時任務
        的頭像 發表于 09-24 09:49 ?2917次閱讀
        SpringBoot如何<b class='flag-5'>實現</b>動態增刪啟停<b class='flag-5'>定時任務</b>

        Python定時任務實現方式

        在日常工作中,我們常常會用到需要周期性執行的任務,一種方式是采用 Linux 系統自帶的 crond 結合命令行實現。另外一種方式是直接使用Python。接下來整理的是常見的Python定時任
        的頭像 發表于 10-08 15:20 ?5703次閱讀

        嵌入式linux 用倒計時的方式代替定時任務

        嵌入式linux 用倒計時是方式代替定時任務測試過程中,嵌入式linux ,是因為使用的系統默認使用ash進行編譯shell腳本,導致無法正常編譯。service crond status 無法
        發表于 11-02 15:06 ?13次下載
        嵌入式<b class='flag-5'>linux</b>  用倒計時的方式代替<b class='flag-5'>定時任務</b>

        解析Golang定時任務庫gron設計和原理

        正巧,最近看到了 gron 這個開源項目,它是用 Golang 實現一個并發安全的定時任務庫。實現非常簡單精巧,代碼量也不多。今天我們就來一起結合源碼看一下,怎樣基于 Golang 的能力做出來一個【
        的頭像 發表于 12-15 13:57 ?1286次閱讀

        求一種SpringBoot定時任務動態管理通用解決方案

        SpringBoot的定時任務的加強工具,實現對SpringBoot原生的定時任務進行動態管理,完全兼容原生@Scheduled注解,無需對原本的定時任務進行修改
        的頭像 發表于 02-03 09:49 ?752次閱讀

        如何動態添加修改刪除定時任務

        如何動態添加修改刪除定時任務?那么我們一起看看具體怎么實現,先看下本節大綱: (1)思路說明; (2)代碼解析; (3)修改定時任務執行周期特別說明;
        的頭像 發表于 04-12 11:06 ?1055次閱讀

        Linux如何使用cron進行定時任務的操作

        按計劃執行命令對于計算機來說非常重要,因為假如我親自去執行一些任務的話,可能會因為多方面因素不能按時執行,所以定時任務就顯得非常重要了! cron就是一個能夠執行定時任務的命令,其實該命令本身不難,下面小編帶您詳細了解!
        的頭像 發表于 05-12 16:27 ?2030次閱讀

        python定時任務實踐

        由于程序需求,監測配置變化需要設置定時任務,每分鐘執行一次,對任務持久化要求不高,不需要時可以關閉定時任務
        的頭像 發表于 05-20 17:53 ?956次閱讀
        python<b class='flag-5'>定時任務</b>實踐

        linux定時任務的用法總結

        習慣了使用 windows 的計劃任務,使用 linux 中的 crontab 管理定時任務時很不適應。
        的頭像 發表于 08-14 18:16 ?802次閱讀
        <b class='flag-5'>linux</b><b class='flag-5'>定時任務</b>的用法總結