linux停止crontab脚本,mac生存指南:linux中crontab定时启动关闭(附scrapy)

crontab -e 会进入编辑模式。

50ce3edd6947b84528c18797d3cddcef.png

我的是nano编辑器。

31fd8fbb4b1df6bb62a39ea0fcc079bd.png

使用Ctrl+O来保存所做的修改

使用Ctrl+X来退出

基本格式 :

command: 分 时 日 月 周 sh 文件

命令 第1列表示分钟1~59 每分钟用或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

88321f721af63fd389bc607bff100a4d.png

如上图所示:

第一行表示,在每月每周每日的8点到21点的5,15,25,35,45,55分,执行 start_prod.sh 脚本

第二行表示,在每月每周每日的10点,23点的0分,执行process_prod.sh 脚本

c492663ec2bad9d2698a631f58c611d2.png

d9f495373eb1622140f24e58bdec29d8.png

如何查看运行成功呢:

我这里是建了一个文件脚本 main.py :

d0e12e0178538063cfa0f90713d9b349.png

用 run.sh 来执行:

907623782e980f62789a2f5a704bc1a2.png

每次执行写一个日期写入txt中。

crontab脚本: 8点到21点每一分钟执行一次

4494d2308c8903e8b261e7c1d4903c80.png

通过tail来看是不是执行了:

a41e2fd3d049bd337cc748a943890684.png

7c962944631e4f46494e32761dde42f8.png

下面步入正题:

我这里业务上要实现的是一个,在每天的 指定时段中 每15 分钟执行一次任务,然后每次执行10分钟的时候,如果任务还在继续就杀掉任务。没有则继续。

我之前的文件叫 main.py,就那个写时间的py文件。

tail -f /root/test.txt

我把时间改成半小时执行一次了。

a5b41c3b018595cb02526591994385ee.png

1。我以上面为例子,这里的思路是通过进程名来找到进程的id。

ps -ef|grep main.py

d0769519aace39a58c03b72d7b30a0e6.png

上面是不对的,因为我们的py脚本是一瞬间写完的,所以我在文件里面又加上了time.sleep(40)

6e968d5a780f04075c5137cbc3b440a0.png

然后等到一分钟整的时候,我们来输入下面命令继续查看:

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

ps -ef|grep -w main.py|grep -v grep

7f02af7aec27dca46d0c71cb74b8592c.png

有了。

“cut -c 9-15” 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

下面的文件名中的引号不加也行。

ps -efww|grep -w ‘main.py’|grep -v grep|cut -c 9-15

b3f21b3d64d7ea92840e30889853df0b.png

“xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。

ps -efww|grep -w ‘main.py’|grep -v grep|cut -c 9-15|xargs kill -9

“kill -9”会强行杀掉指定进程,这样就成功清除了同名进程。

2c5192002411a079e03a16a29716d81d.png

ps -efww|grep -w main.py|grep -v grep|cut -c 9-15|xargs kill -9。

成功了。

那我们把这句话也加入到 crontab中。

先写个sheel脚本,

叫做 kill.sh:

c9c7dc22321558e68bf71afe605390fa.png

然后跑下看看: ok

2257613a8bfcd0be3d1677f42d2cdf2c.png

现在到crontab -e 中:

我想了想,把这个time.sleep放到写时间的外面。

方便我们测试。

65beb6cef5d05ad48c07352b9cde46b8.png

tail -f 查看下当前文件内容:

b1d7f4560d93f729142af0000961cc85.png

然后我修改了下时间:

42f68721940b9c3d04db91b19ac7aab5.png

成了。这样就是每5,15,20,25,30分钟跑1次,跑1分钟的时候给进程关了。

但是你要跑scrapy的话:

不能使用上面的脚本文件来执行:

要用下面这种方式

34bb76d25d29e61b596fe218402b577c.png

然后再 crontab -e:

5303aa9d4e0f7bab144f770fa4252810.png

本文同步分享在 博客“考古学家lx”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值