<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
需求:linux中使用crontab每十秒執行一次
場景:需要在ubuntu14伺服器中使用代理每十秒執行一次curl來存取網際網路,來測試代理網路穩定性。
經過網上的大量搜貼之後得到的可用的一個結論如下:
# crontab -e * * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 10; /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 20; /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 30; /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 40; /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 50; /usr/local/cc.sh >>/usr/local/log.txt 2>&1
如果你是直接一梭子全複製,改下目錄那麼恭喜你完成了計劃任務。而我就不是了,我只寫了sleep 10 這條然後任務沒有執行。這就是坑。
坑1 .上面sleep 10 20 30 ...是啥意思啊,怎麼個規則啊。一頭霧水,當時我是直接把第二個sleep 10 那個定時任務直接粘進去的。然後,任務沒有執行就一直糾結任務沒有執行這個問題。
坑2.ubuntu系統第一次使用crontab -e 需要選擇比編輯器,如果選nano上,對我這種小白可就蒙圈。最後在命令列使用, select-ediort 來選擇編輯器選3 vim 就好了
後來,明白後做了實驗。
如果只寫前兩條的話是:在每分鐘的第一秒和第一個10秒執行一次
* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 10; /usr/local/cc.sh >>/usr/local/log.txt 2>&1
以此類推只寫前三的話就是:
在每分鐘的第一、第一個十秒、第二個十秒分別執行一次
* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 10; /usr/local/cc.sh >>/usr/local/log.txt 2>&1 * * * * * sleep 20; /usr/local/cc.sh >>/usr/local/log.txt 2>&1
如果都寫上的話就是每十秒執行一次啦,完美過程
過程遇到的問題(1):crontab -e 完都有新郵件
原因:
1.crontab 每次執行完程式產生的輸出都會發郵件到/var/mail/root
2.定時任務語法有誤,/var/mail/root 傳送的是錯誤紀錄檔,如下
root@bogon:/usr/local# tail -20 /var/mail/root
From root@bogon Tue May 21 18:31:11 2019Return-Path: <root@bogon>X-Original-To: rootDelivered-To: root@bogonReceived: by bogon (Postfix, from userid 0) id AAFCB43077; Tue, 21 May 2019 18:31:11 +0800 (CST)From: root@bogon (Cron Daemon)To: root@bogonSubject: Cron <root@bogon> sleep 10; sh /home/liuxin/curl-status.sh >dev/null 2>&1Content-Type: text/plain; charset=ANSI_X3.4-1968X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=root>Message-Id: <20190521103111.AAFCB43077@bogon>Date: Tue, 21 May 2019 18:31:11 +0800 (CST) /bin/sh: 1: cannot create dev/null: Directory nonexistent
解決:
如果是1的話就放到黑洞 >/dev/null 2>&1
* * * * * /usr/local/cc.sh >/dev/null 2>&1
精講:
1,/dev/null是linux系統的一個垃圾桶(一個不正經的比喻)有不用的輸出都可以往裡面扔。>/dev/null 預設預設是1 即 1>/dev/null
2,linux中有三種標準輸入輸出,分別是STDIN,STDOUT,STDERR,對應的數位是0,1,2 2>&1就是把2錯誤輸出重定向到1標準輸出 而1又輸出到/dev/null黑洞
如果不想輸出到一個檔案可以這樣寫
* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1
過程中遇到的問題(2):如圖crontab -e 後是新檔案
解決:crontab語法錯誤再三檢查後,建議select-editor 選3 vim
crontab命令主要用於設定命令列或者指令碼週期性的執行。該命令從標準輸入裝置讀取指令,並將其存放於檔案中,以供之後讀取和執行。
主要講述crontb命令的基本語法和設定方法。
crontab [-u user] -e -l -r
-u
使用者名稱,不加-u引數預設為當前使用者。-e
編輯crontab檔案。-l
列出crontab檔案中的內容。取值來源為/var/spool/cron下對應的檔案-r
刪除crontab檔案。crontab命令格式
# Example of job definition: .---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) OR jan,feb,mar,apr ... | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | | | * * * * * command/script
一個定時任務的設定共包括6個欄位,分別是分、時、日、月、周、命令列或指令碼,每一列取值的範圍或者含義如上述格式中註釋描述。
特別注意一點是命令列或者指令碼一定要設定成絕對路徑。
0 22 * * * /root/rumenz.sh
> 30 8 1,3,7 * * /root/rumenz.sh
> 0 2 * * 6,0 /root/rumenz.txt
0,30 18-23 * * /root/rumenz.sh //或者 */30 18-23 * * /root/rumenz.sh
> 0 2 * * * /usr/bin/curl https://rumenz.com
* * * * * /root/rumenz.sh * * * * * sleep 10;/root/rumenz.sh * * * * * sleep 20;/root/rumenz.sh * * * * * sleep 30;/root/rumenz.sh * * * * * sleep 40;/root/rumenz.sh * * * * * sleep 50;/root/rumenz.sh
0 0-21/3 * * * /root/rumenz.sh 30 0-22/3 * * * /root/rumenz.sh
需要兩個表示式實現
*/3 * * * * /root/rumenz.sh */3 * * * * sleep 90;/root/rumenz.sh
需要兩個表示式實現
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45