1. 程式人生 > >crontab實現秒級的計劃任務

crontab實現秒級的計劃任務

開啟crontab的配置檔案:
[[email protected] ~]# cat /etc/crontab

# Example of job definition:
# .---------------- 分鐘(0 - 59)
# |  .------------- 小時 (0 - 23)
# |  |  .---------- 一月中的哪一天 (1 - 31)
# |  |  |  .------- 月份 (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- 星期 (0 - 6) (Sunday=0 or 7) OR sun,mon...
# | | | | | # * * * * * 使用者 命令(或者指令碼)

可以看到,他的5顆星分別代表 分鐘、小時、天、星期、月份
那麼可以實現的最小時間單位是分鐘,想要實現秒級的計劃任就需要另外做些處理:

我們要看到秒級的執行情況,需要借用一個date命令,這一樣可以很好的看到結果。

每分鐘將date輸出的內容匯入到/mnt/file的計劃任務是:

[root@eg0 mnt]# crontab -l
* * * * *  date>>/mnt/file

這是每一分鐘執行一次計劃任務。接下來進入正題,看如何實現每秒執行一次的計劃任務:

先來看下每10秒執行一次的實現方法:

[[email protected] mnt]# crontab -l
* * * * *  sleep 10; date>>/mnt/file
* * * * *  sleep 20; date>>/mnt/file
* * * * *  sleep 30; date>>/mnt/file
* * * * *  sleep 40; date>>/mnt/file
* * * * *  sleep 50; date>>/mnt/file
[root@eg0 mnt]# cat /mnt/file
Wed Nov 29 07:46:01 EST 2017
Wed Nov
29 07:46:11 EST 2017 Wed Nov 29 07:46:21 EST 2017 Wed Nov 29 07:46:31 EST 2017 Wed Nov 29 07:46:41 EST 2017 Wed Nov 29 07:46:51 EST 2017 Wed Nov 29 07:47:01 EST 2017 Wed Nov 29 07:47:11 EST 2017 Wed Nov 29 07:47:21 EST 2017 Wed Nov 29 07:47:31 EST 2017 Wed Nov 29 07:47:41 EST 2017 Wed Nov 29 07:47:51 EST 2017 Wed Nov 29 07:48:01 EST 2017

用sleep10 表示休眠10s,
這樣寫就實現了每10秒執行一次,用了5個計劃任務。如果要實現每5秒,甚至是每1秒執行一次,就要寫59行計劃任務了,顯然太繁瑣,可以用一個指令碼的方式實現:

[[email protected] mnt]# vim test.sh
#!/bin/bash
step=1  #間隔的秒數,不能大於60
for ((i=0;i<60;i=(i+step)));do
    $(date>>/mnt/file)
    sleep $step
done
exit 0
[root@eg0 mnt]# chmod +x test.sh
[root@eg0 mnt]# crontab -e
* * * * *   sh /mnt/date.sh

結果是:

[[email protected] mnt]# cat file
Wed Nov 29 08:06:02 EST 2017
Wed Nov 29 08:06:03 EST 2017
Wed Nov 29 08:06:04 EST 2017
Wed Nov 29 08:06:05 EST 2017
Wed Nov 29 08:06:06 EST 2017
Wed Nov 29 08:06:07 EST 2017
Wed Nov 29 08:06:08 EST 2017
Wed Nov 29 08:06:09 EST 2017
Wed Nov 29 08:06:10 EST 2017
Wed Nov 29 08:06:11 EST 2017
Wed Nov 29 08:06:12 EST 2017
Wed Nov 29 08:06:13 EST 2017
Wed Nov 29 08:06:14 EST 2017
Wed Nov 29 08:06:15 EST 2017
Wed Nov 29 08:06:16 EST 2017
Wed Nov 29 08:06:17 EST 2017
Wed Nov 29 08:06:18 EST 2017
Wed Nov 29 08:06:19 EST 2017
Wed Nov 29 08:06:20 EST 2017
Wed Nov 29 08:06:21 EST 2017
Wed Nov 29 08:06:22 EST 2017
Wed Nov 29 08:06:23 EST 2017
Wed Nov 29 08:06:24 EST 2017
Wed Nov 29 08:06:25 EST 2017
Wed Nov 29 08:06:26 EST 2017
Wed Nov 29 08:06:27 EST 2017
Wed Nov 29 08:06:28 EST 2017
Wed Nov 29 08:06:29 EST 2017
Wed Nov 29 08:06:30 EST 2017
Wed Nov 29 08:06:31 EST 2017
Wed Nov 29 08:06:32 EST 2017
Wed Nov 29 08:06:33 EST 2017
Wed Nov 29 08:06:34 EST 2017
Wed Nov 29 08:06:35 EST 2017
Wed Nov 29 08:06:36 EST 2017
Wed Nov 29 08:06:37 EST 2017
Wed Nov 29 08:06:38 EST 2017
Wed Nov 29 08:06:39 EST 2017
Wed Nov 29 08:06:40 EST 2017
Wed Nov 29 08:06:41 EST 2017
Wed Nov 29 08:06:42 EST 2017
Wed Nov 29 08:06:43 EST 2017
Wed Nov 29 08:06:44 EST 2017
Wed Nov 29 08:06:45 EST 2017
Wed Nov 29 08:06:46 EST 2017
Wed Nov 29 08:06:47 EST 2017
Wed Nov 29 08:06:48 EST 2017
Wed Nov 29 08:06:49 EST 2017
Wed Nov 29 08:06:50 EST 2017
Wed Nov 29 08:06:51 EST 2017
Wed Nov 29 08:06:52 EST 2017
Wed Nov 29 08:06:53 EST 2017
Wed Nov 29 08:06:54 EST 2017
Wed Nov 29 08:06:55 EST 2017
Wed Nov 29 08:06:56 EST 2017
Wed Nov 29 08:06:57 EST 2017
Wed Nov 29 08:06:58 EST 2017
Wed Nov 29 08:06:59 EST 2017
Wed Nov 29 08:07:00 EST 2017
Wed Nov 29 08:07:01 EST 2017
Wed Nov 29 08:07:01 EST 2017
Wed Nov 29 08:07:02 EST 2017
Wed Nov 29 08:07:03 EST 2017

可以看到結果是每一秒都將date的結果匯入到了指定的檔案,這樣就實現了每秒執行一次了。

相關推薦

crontab實現計劃任務

開啟crontab的配置檔案: [[email protected] ~]# cat /etc/crontab # Example of job definition: # .---------------- 分鐘(0 - 59) # | .

Linux下實現定時任務的兩種方案(crontab執行)

第一種方案,當然是寫一個後臺執行的指令碼一直迴圈,然後每次迴圈sleep一段時間。 while true ;do command sleep XX //間隔秒數 done 第二種方案,使用crontab。 我們都知道crontab的粒度最小是到分鐘,但是我們還是可以通過變

crontab 定時任務

1, vim test.sh #!/usr/bin/sh step=5 for (( i = 0; i < 60; i=(i+step) )); do wget http://localhost:8080/jobTest/test –del

python +ip2region IP庫地址文件實現查詢1萬不同ip歸屬地址

python +ip2region一、服務器環境介紹: 服務器硬件:4核4g內存服務器系統:centos6.9 x86_64位最小化安裝 二、環境安裝 參考地址:https://github.com/lionsoul2014/ip2region直接下載包到服務器上的/root目錄下wget https://g

linux crontab執行定時任務

例如 就是 break sts 找到 HP 每分鐘 size word OK,我們都知道Linux的crontab 可以設置定時執行任務* * * * *但是最低是每分鐘執行一次任務,之前面試陌陌的時候也被問到過每秒執行一次怎麽寫,依稀記得當時回答的是 */1 ,應該是

身份證、駕駛證ocr識別助力共享租車實現認證

目前,國內P2P租車領軍品牌凹凸共享租車完成了其APP版本的升級,應用了身份證、駕駛證OCR識別技術,租客身份認證開啟懶人模式,拍照自動轉文字,達到秒級驗證;車主上傳車輛開啟傻瓜模式,雲端識別車型資訊,將使用流程效率提升至業內領先水準。 網際網路的本質是提升效率,身份驗證是使用者使用AP

阿里如何實現百萬TPS?搜尋離線大資料平臺架構解讀

什麼是搜尋離線? 一個典型的商品搜尋架構如下圖所示,本文將要重點介紹的就是下圖中的離線資料處理系統(Offline System)。 何謂離線?在阿里搜尋工程體系中我們把搜尋引擎、線上算分、SearchPlanner等ms級響應使用者請求的服務稱之為“

每天數百億使用者行為資料,美團點評怎麼實現轉化分析?

使用者行為分析是資料分析中非常重要的一項內容,在統計活躍使用者,分析留存和轉化率,改進產品體驗、推動使用者增長等領域有重要作用。美團點評每天收集的使用者行為日誌達到數百億條,如何在海量資料集上實現對使用者行為的快速靈活分析,成為一個巨大的挑戰。為此,我們提出並實現了一套面向海

【資料案例】每天數百億使用者行為資料,美團點評怎麼實現轉化分析?

6. 效果:上述方案目前在美團點評內部已經實際落地,穩定執行超過半年以上。每天的資料有幾百億條,活躍使用者達到了上億的量級,埋點屬性超過了百萬,日均查詢量幾百次,單次查詢的TP95時間小於5秒,完全能夠滿足互動式分析的預期。相比於原有sql方案,達到了3-4個數量級的效能提升。

Linux VPS主機利用Crontab實現定時重啟任務

第一、安裝Crontab可執行環境 一般的VPS/伺服器是支援的,但是有些可能沒有支援就需要我們來給予安裝。 A - centos系統 #安裝Crontab yum install vixie-cron crontabs #設定開機啟動Crontab

PB資料實現查詢ES的安裝

什麼是ES?ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放原始碼釋出,是一種流行的企業級搜尋引擎。ElasticSearch用於雲

使用 tke-autoscaling-placeholder 實現彈性伸縮

## 背景 當 TKE 叢集配置了節點池並啟用了彈性伸縮,在節點資源不夠時可以觸發節點的自動擴容 (自動買機器並加入叢集),但這個擴容流程需要一定的時間才能完成,在一些流量突高的場景,這個擴容速度可能會顯得太慢,影響業務。 `tke-autoscaling-placeholder` 可以用於在 TKE 上實

centos實現兩種任務的簡單方法

實現 需要 mage 一次 logs 如果 必須 centos chm 1、通過寫shell腳本,死循環,守護進程運行 > vi /data/sec.sh #!/bin/bash while true do #寫上自已的命令

bt寶塔面板計劃任務改成

exit .com cal baidu style ESS success aid bin #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export

linux使用crontab實現PHP執行定時計劃任務

首先說說cron它是一個linux下的定時執行工具。根使用者以外的使用者可以使用 crontab 工具來配置 cron 任務。所有使用者定義的 crontab 都被儲存在/var/spool/cron

Linux計劃任務實現運行

bin pre 執行 html 任務 www inux mat tmp 首先增加一個shell腳本vi crontab.sh #!/bin/bash [[ -z $1 ]] || [[ -z $2 ]] && echo "paramater errr" &a

主要是要實現tornado實現計劃任務crontab間隔

大家看了標題,可能知道我要寫啥了 ~ 對頭,我用tornado實現一個類似crontab時間間隔排程的程式。 我為啥要寫這個? 一方面是 更加深入的瞭解tornado非同步方面的能力 。 另一方面是 在特殊的環境下編寫更適合更方便自己的工具。 啥特殊的環境? 比如,我們有好

Linux下怎麼來利用crontab實現計劃任務

前言 Crontab是linux下常用的的,用來設定週期性執行命令的工具。利用這個工具,可以幫助我們制定計劃任務,對於系統管理員來說,非常有用。開發程式中,我也常用這個工具在凌晨定時備份資料庫,程式程式碼等。 一、基本語法 (1)Cron表示式是一個字

Centos7 上 用crontab 實現php計劃任務

首先用命令檢查服務是否在執行 systemctl status crond.service 如果伺服器上沒有裝有crontab ,則可以執行 yum install vixie-c

實現定時任務crontab為單位執行。。

#!/bin/bash step=2 #間隔的秒數,不能大於60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/h