crontab 管理工具
crontab
A crontab tool build by golang
Crontab
背景:
在實(shí)際工作中經(jīng)常需要在服務(wù)器上添加定時(shí)任務(wù),當(dāng)任務(wù)多了的時(shí)候管理起來就比較麻煩,所以想要有一個(gè)方便使用和管理的crontab工具
功能介紹:
使用web api的方式提供任務(wù)的添加、刪除、查看、運(yùn)行狀態(tài)、暫停、恢復(fù)、重新加載配置、日志查看等功能,清晰的任務(wù)執(zhí)行日志和工具的系統(tǒng)日志便于問題查找和任務(wù)監(jiān)控。
使用:
- ./crontab -h
- Usage of ./crontab:
- -conf="crontab.conf": crontab config
- -logs="logs/": log path
- -port=":8080": web port
crontab.conf格式
{"time":"* * * * *","cmd":"php","args":["-v"],"out":"./logs/php_v.log","comment":"備注"}
每一行為一個(gè)jjson對(duì)象,字段說明:
- time:任務(wù)執(zhí)行時(shí)間,參考linux crontab
- cmd:可執(zhí)行程序
- args:可執(zhí)行程序參數(shù)
- out:執(zhí)行輸出文件
- comment:任務(wù)備注
同樣適用于api的job字段
API:
- /get 獲取當(dāng)前設(shè)置的任務(wù)列表 json
- /set?h=key&j=job 設(shè)置一個(gè)鍵值為key的任務(wù)/修改一個(gè)鍵值為key的任務(wù)(h為空或者不設(shè)置時(shí),key=md5(job))
- /del?h=key 刪除鍵值為key的任務(wù),下次不再執(zhí)行
- /log?d=20141228 獲取d天的任務(wù)運(yùn)行日志
- /load 重新加載配置文件,可以手動(dòng)修改配置文件之后調(diào)用重新加載而不重啟服務(wù)
- /stop 停止,已經(jīng)在執(zhí)行的任務(wù)繼續(xù)執(zhí)行,停止觸發(fā)后續(xù)任務(wù)執(zhí)行
- /start 開始,繼續(xù)觸發(fā)任務(wù)執(zhí)行
- /status 獲取當(dāng)前正在執(zhí)行的任務(wù),包括進(jìn)程ID、任務(wù)信息、任務(wù)開始時(shí)間信息 json
規(guī)劃功能:
- 添加郵箱報(bào)警功能、當(dāng)任務(wù)執(zhí)行失敗,出錯(cuò)等及時(shí)郵箱報(bào)警
聲明:
本項(xiàng)目目前在linux64(centos)和windos 7上golang 1.3+ 每分鐘100個(gè)任務(wù)測試下,cpu瞬時(shí)峰值10~20%,大多時(shí)間為0% ,內(nèi)存占有20M左右, 長時(shí)間(7days+)運(yùn)行,任務(wù)執(zhí)行正常,各項(xiàng)資源使用正常,但還未大量用于生產(chǎn)服務(wù),對(duì)此項(xiàng)目感興趣的朋友麻煩給個(gè)星支持一下,同時(shí)感謝提供寶貴意見,可以直接郵箱我。
評(píng)論
圖片
表情
