cron 30min 运行一次,现在想的是 Python 打日志,然后再写一个 php 来读日志,判断是否运行成功,再判断 30min 内有没有运行。但是感觉很麻烦,求个思路
1
0ZXYDDu796nVCFxq 2019-01-16 11:00:22 +08:00 via Android 1
exit code
|
2
alexsunxl 2019-01-16 11:16:56 +08:00 2
有一个很简单,成本很低的土办法, 找个朋友帮忙(或者开小号)建个钉钉群,然后设置一个聊天机器人
然后 python 运行的时候往机器人发消息。 |
3
mcone 2019-01-16 11:20:06 +08:00 1
你这个思路不是很好嘛……
我之前维护过若干脚本,基本逻辑就是脚本打日志->bash 脚本负责读(记得用 tail )-f->bash 脚本对外输出(邮件等) 我觉得这个思路挺好的,你的思路也挺对,只是不明白你的 30min 是哪里来的…… |
4
alvin666 OP |
5
alexsunxl 2019-01-16 11:26:05 +08:00 1
@alvin666 群消息屏蔽, 然后想看的时候去瞄一下
这个看得舒不舒服,很大程度取决于你制定的日志格式,hahahah |
6
alvin666 OP @alexsunxl 平时不用钉钉和 tg...微信 bot 又容易被封...邮件的话有的邮箱不看,QQ 邮箱又和微信绑定,有新消息提醒...
谢谢,对我来说不太合适,但是是很好的思路 想了想微信公众号也不能主动发信息,还是得做一个检测脚本,调用的时候检测是否成功运行。 |
8
alvin666 OP @just1 我知道,我想要的是我能随时查看这个服务的状态,而不是执行成功了通知我,一天 24 小时每半个小时通知我一次我也烦啊...
|
9
0ZXYDDu796nVCFxq 2019-01-16 11:58:05 +08:00 via Android 1
cron 对于非 0 退出状态码是会发邮件的啊,如果系统运行了 postfix
脚本里对执行失败指定和退出码 需要就登录服务器看系统账号的邮箱就行 |
11
xujunfu 2019-01-16 12:18:54 +08:00 via Android 1
supervisor,这东西可以查看运行状态,同时还有一个 web 页面,页面里有 tail -f 查看 log
|
12
Trim21 2019-01-16 12:20:23 +08:00 1
我用的 airflow
|
14
Trim21 2019-01-16 12:44:56 +08:00 1
贴两张截图(
-- 点进去可以查看对应任务这次运行的 log |
15
z0ne 2019-01-16 12:59:39 +08:00 1
我是这么做的:
cron 的命令,最后都加上>>logs.txt ,写入日志文件,然后就去读取这个文件&清空,达到判断是否执行的目的。 贴个图: |
16
gouchaoer 2019-01-16 13:17:40 +08:00 via Android 1
我喜欢用 php 写脚本处理一些运维的东西,给你几个关键点自己判断吧
在 crontab 里面这么写: * * * * * bash path/to/cron.sh cron.sh 里面注意: cd `dirname $0`进入工作目录 expoet $PATH balabala,cron 的环境变量很少 php/py cron.php/cron.py >> cron.out 2>> cron.err ,这么做方便查看 stderr 错误输出 在 cron.php 脚本里注意调用命令的时候这么做 exec (“ command balabala 2>&1 ”,$o,$r ),通过检查 r 和 o 来判断执行情况,因为 o 只有标准输出,所以命令里需要把 2 定向到 1 因为脚本在 crontab 里是每分钟启动的,启动后用 github 的 cron 库在自己内部写一个 cron 就能实现代码里的定时了,如果嫌麻烦就直接在系统 crontab 里定时内部不写 如果 cron.php 执行时间长,你禁止多个脚本同时执行,可以基于文件所+/proc/pid/cmdline 来做 php 做内容处理不比 py 差的,写的飞快 |
17
gouchaoer 2019-01-16 13:18:49 +08:00 via Android 1
Python 写 log 文件会修改文件 mtime,去检查 mtime,或者解析 log 的时间啥的都行,这个很简单的
|
18
gouchaoer 2019-01-16 13:26:07 +08:00 via Android 1
还要看状态简单
echo 退出码到文件 ` 好了,去检查 a 吧 |
19
zmj1316 2019-01-16 14:01:38 +08:00
都用 php 了,干脆上 jenkins 跑算了?
|
20
lithiumii 2019-01-16 14:04:44 +08:00 1
我是这样:python 脚本里面出错会扔到 server 酱微信推送提醒,不出错默认它就是好的
|
21
a663 2019-01-16 17:12:09 +08:00 via Android
$?
|