Linux下怎么做秒执行任务
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
一,crontab沒有規(guī)定到多少秒執(zhí)行任務(wù),那怎么辦呢,我們就用jobs?來做吧。
?例如:我要執(zhí)行下面的腳本,每10秒執(zhí)行一次,
/usr/local/bin/python?/opt/app/nginx/openurl.py
方法1
那我們先做個(gè)shell腳本?kk.sh
#!/bin/sh
while?:
do
?/usr/local/bin/python?/opt/app/nginx/openurl.py
?sleep?10
done
?
chmod?+x?kk.sh
./kk.sh?&
這樣就在后臺(tái)運(yùn)行了,想多少秒運(yùn)行一次都可以了。
?方法2
crontab?-e
*?*?*?*?*?sleep?10;?/usr/local/bin/python?/opt/app/nginx/openurl.py
?
二,我們談下jobs
A,Shell支持作用控制,有以下命令:?
1.?command&?讓進(jìn)程在后臺(tái)運(yùn)行?
2.?jobs?查看后臺(tái)運(yùn)行的進(jìn)程?
3.?fg?%n?讓后臺(tái)運(yùn)行的進(jìn)程n到前臺(tái)來?
4.?bg?%n?讓進(jìn)程n到后臺(tái)去;???
PS:"n"為jobs查看到的進(jìn)程編號(hào).
B.?命令詳解
fg、bg、jobs、&、ctrl?+?z都是跟系統(tǒng)任務(wù)有關(guān)的,雖然現(xiàn)在基本上不怎么需要用到這些命令,但學(xué)會(huì)了也是很實(shí)用的
一。&?最經(jīng)常被用到
這個(gè)用在一個(gè)命令的最后,可以把這個(gè)命令放到后臺(tái)執(zhí)行
二。ctrl?+?z
可以將一個(gè)正在前臺(tái)執(zhí)行的命令放到后臺(tái),并且暫停
三。jobs
查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令
四。fg
將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行
如果后臺(tái)中有多個(gè)命令,可以用?fg?%jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)
五。bg
將一個(gè)在后臺(tái)暫停的命令,變成繼續(xù)執(zhí)行
如果后臺(tái)中有多個(gè)命令,可以用bg?%jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺(tái)正在執(zhí)行的命令的序號(hào)(不是pid)
?
三,順便在說下crontab
??基本格式?:?
* * * * * command?
分 時(shí) 日 月 周 命令?
第1列表示分鐘1~59?每分鐘用*或者?*/1表示?
第2列表示小時(shí)1~23(0表示0點(diǎn))?
第3列表示日期1~31?
第4列表示月份1~12?
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)?
第6列要運(yùn)行的命令?
crontab文件的一些例子:?
*/5?*?*?*?*?python?/opt/app/nginx/interface.py????每5分執(zhí)行一次
1?*?*?*?*????python?/opt/app/nginx/interface.py???每小時(shí)的第一分執(zhí)行一次
0?*?*?*?*?/bin/ls????每月每天每小時(shí)的第?0?分鐘執(zhí)行一次?/bin/ls?:?
每五分鐘執(zhí)行??*/5?*?*?*?*
每小時(shí)執(zhí)行?????0?*?*?*?*
每天執(zhí)行????????0?0?*?*?*
每周執(zhí)行???????0?0?*?*?0
每月執(zhí)行????????0?0?1?*?*
每年執(zhí)行???????0?0?1?1?*
?
30?21?*?*?*?/usr/local/etc/rc.d/lighttpd?restart?
上面的例子表示每晚的21:30重啟lighttpd?。?
45?4?1,10,22?*?*?/usr/local/etc/rc.d/lighttpd?restart?
上面的例子表示每月1、10、22日的4?:?45重啟lighttpd?。?
10?1?*?*?6,0?/usr/local/etc/rc.d/lighttpd?restart?
上面的例子表示每周六、周日的1?:?10重啟lighttpd?。?
0,30?18-23?*?*?*?/usr/local/etc/rc.d/lighttpd?restart?
上面的例子表示在每天18?:?00至23?:?00之間每隔30分鐘重啟lighttpd?。?
0?23?*?*?6?/usr/local/etc/rc.d/lighttpd?restart?
上面的例子表示每星期六的11?:?00?pm重啟lighttpd?。?
*?*/1?*?*?*?/usr/local/etc/rc.d/lighttpd?restart?
每一小時(shí)重啟lighttpd?
*?23-7/1?*?*?*?/usr/local/etc/rc.d/lighttpd?restart?
晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟lighttpd?
0?11?4?*?mon-wed?/usr/local/etc/rc.d/lighttpd?restart?
每月的4號(hào)與每周一到周三的11點(diǎn)重啟lighttpd?
0?4?1?jan?*?/usr/local/etc/rc.d/lighttpd?restart?
一月一號(hào)的4點(diǎn)重啟lighttpd
轉(zhuǎn)載于:https://my.oschina.net/seanx/blog/618483
總結(jié)
以上是生活随笔為你收集整理的Linux下怎么做秒执行任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 四中方式实现单例模式
- 下一篇: linux cron计划任务