站長資訊網
        最全最豐富的資訊網站

        讓Crontab每秒鐘執行一次任務的方法

        讓Crontab每秒鐘執行一次任務的方法

        讓Crontab每秒鐘執行一次任務的方法

        Crontab是linux下定時調度配置文件,通過它,我們可以讓系統的程序、腳本、命令、任務按設定的時間、間隔、周期循環的運行。 在Crontab里時間粒度最小的是分鐘。也就是說,通過Crontab配置,我們最多可以讓目標任務每分鐘執行一次,更頻繁的執行是不行的,只能借助其它方法。

        相關學習推薦:linux視頻教程

        比如說,如果希望一個程序每30秒執行一次,該怎么辦呢?

        變通的方法還是有的。 一種思路是,在Crontab里添加兩條配置,一條是正常調度,每分鐘執行一次,另一條是等待30秒后才執行。

        # Need these to run on 30-sec boundaries, keep commands in sync. * * * * *              /path/to/executable param1 param2 * * * * * ( sleep 30 ; /path/to/executable param1 param2 )

        這種方法感覺有點生硬,怪怪的,但的確可行。這種方法實際是可以簡寫成一行:

        * * * * * /bin/bash -l -c "/path/to/executable; sleep 30 ; /path/to/executable"

        還有一種方法是使用watch命令:

        $ watch --interval .30 script_to_run_every_30_sec.sh

        但watch是命令行工具,我們可以使用nohup命令讓它在后臺運行。

        SystemD定時器

        如果我們使用的linux系統里有SystemD,可以使用SystemD定時器在任何時間粒度上調度程序,理論上可以小到納秒級別——當然,這樣做有點瘋狂。總之,它在任務調度上的靈活性遠比Cron要高——無需使用sleep這種蹩腳的方案。

        比起一行完成配置的crontab來說,建立一個SystemD定時器會顯得稍微復雜一些,但為了更好的實現小于‘每分鐘’粒度的調度任務,這種方法值得嘗試。

        SystemD定時器實現原理簡單說就是兩部分:一個系統service,一個SystemD定時器。SystemD定時器執行調度,而任務是寫在service里。

        下面有個簡單的例子,目標是讓系統logger每十秒鐘輸出一次“Hello World”;

        /etc/systemd/system/helloworld.service

        [Unit] Description=Say Hello [Service] ExecStart=/usr/bin/logger -i Hello World

        /etc/systemd/system/helloworld.timer

        [Unit] Description=Say Hello every 10 seconds [Timer] OnBootSec=10 OnUnitActiveSec=10 AccuracySec=1ms [Install] WantedBy=timers.targethelloworld.timer里并沒有聲明service的名稱,那它和service是如何關聯的呢?沒錯,因為它們的名稱相同,都是helloworld。

        如果想讓整個系統使用這個定時器,這兩個文件就需要放置在/etc/systemd/system下。如果想給某個用戶使用,則放置在~/.config/systemd/user。想讓這個定時器立即運行,需要執行下面的命令:

        systemctl enable --now helloworld.timer

        里面的–now標記是讓定時器立即執行。否則,只有等系統重啟后,或者用戶登錄是才會觸發運行。

        [Timer]部分里的各個字段的作用如下:

        • OnBootSec – 系統啟動多少秒后開始執行調度
        • OnUnitActiveSec – 重復調度相關service的時間間隔。就是這行配置決定了跟cron job一樣定時調度的動作。
        • AccuracySec – 定時器精度。 默認是一分鐘,跟cron很相似。可以要求的更高,但精度增加會帶來
        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久国产精品-久久精品| 国产精品自在线拍国产电影| 亚洲精品综合一二三区在线| 亚洲精品中文字幕乱码三区| 99国产精品国产免费观看| 精品国产三级a∨在线欧美| 欧美久久久久久午夜精品| 欧美精品人爱c欧美精品| 久久99国产综合精品免费| 亚洲精品动漫免费二区| 国产在线精品一区二区三区不卡 | 国产综合精品女在线观看| 四虎亚洲国产成人久久精品| 精品久久久久久无码人妻蜜桃| 亚洲永久永久永久永久永久精品| 国产精品福利在线观看| 精品国产a∨无码一区二区三区| 一本久久a久久精品亚洲| 亚洲国产欧美日韩精品一区二区三区 | 夜夜高潮夜夜爽国产伦精品| 久久国产乱子伦精品免费午夜| 国产精品igao视频| 四虎影视884a精品国产四虎| 精品国产欧美另类一区| 国产91精品在线观看| 97精品人妻系列无码人妻| 精品一区二区三区免费毛片爱| 永久无码精品三区在线4| 亚洲国产综合精品中文字幕| 无码乱码观看精品久久| 久久亚洲中文字幕精品一区| 精品无码国产自产拍在线观看蜜| 国产精品最新国产精品第十页| 国产精品美女网站在线观看| 国产精品免费视频观看拍拍| 国自产精品手机在线观看视| 国内精品伊人久久久久网站| 蜜桃麻豆www久久国产精品 | 欧美激情精品久久久久久久| 日本精品一区二区三区四区| 欧美亚洲日本久久精品|