mac生存指南:linux中crontab定时启动关闭(附scrapy)
crontab -e 会进入编辑模式。
我的是nano编辑器。
使用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列要运行的命令
如上图所示: 第一行表示,在每月每周每日的8点到21点的5,15,25,35,45,55分,执行 start_prod.sh 脚本 第二行表示,在每月每周每日的10点,23点的0分,执行process_prod.sh 脚本
如何查看运行成功呢:
我这里是建了一个文件脚本 main.py :
用 run.sh 来执行:
每次执行写一个日期写入txt中。
crontab脚本: 8点到21点每一分钟执行一次
通过tail来看是不是执行了:
下面步入正题:
我这里业务上要实现的是一个,在每天的 指定时段中 每15 分钟执行一次任务,然后每次执行10分钟的时候,如果任务还在继续就杀掉任务。没有则继续。
我之前的文件叫 main.py,就那个写时间的py文件。
tail -f /root/test.txt
我把时间改成半小时执行一次了。
1。我以上面为例子,这里的思路是通过进程名来找到进程的id。
ps -ef|grep main.py
上面是不对的,因为我们的py脚本是一瞬间写完的,所以我在文件里面又加上了time.sleep(40)
然后等到一分钟整的时候,我们来输入下面命令继续查看: “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
ps -ef|grep -w main.py|grep -v grep
有了。
“cut -c 9-15” 是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。 下面的文件名中的引号不加也行。
ps -efww|grep -w ‘main.py’|grep -v grep|cut -c 9-15
“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”会强行杀掉指定进程,这样就成功清除了同名进程。
ps -efww|grep -w main.py|grep -v grep|cut -c 9-15|xargs kill -9。
成功了。 那我们把这句话也加入到 crontab中。
先写个sheel脚本,
叫做 kill.sh:
然后跑下看看: ok
现在到crontab -e 中:
我想了想,把这个time.sleep放到写时间的外面。 方便我们测试。
tail -f 查看下当前文件内容:
然后我修改了下时间:
成了。这样就是每5,15,20,25,30分钟跑1次,跑1分钟的时候给进程关了。
但是你要跑scrapy的话:
不能使用上面的脚本文件来执行: 要用下面这种方式
然后再 crontab -e:
相关文章
- Mesh6# gRPC服务通过Istio网格通信
- gRPC11# 超时问题定位
- 微服务信息同步方案(数据依赖一致性问题)
- 关于年长程序员的5个误传
- 云原生环境下的API业务安全思考
- 攻击推理-如何利用威胁情报报告生成可用攻击子图
- 基于Guava API实现异步通知和事件回调
- 源码阅读 | 第一期 : 名称解析
- 做云原生时代标准化工具,实现高效云上研发工作流
- CODING Compass —— 打造行云流水般的软件工厂
- 【技术种草】轻量248助力个人开发者上云
- 代码分享:模拟售票 学习多线程
- 短信服务营销,是保留客户的关键
- 系统软件的成本构成与测算方式
- tke集群搭建Linkerd2
- 什么是功能点分析——FPA
- 如何发展好工业互联网平台?
- nginx的平滑升级
- EasyNVR上传SSL证书时出现报错:网络请求失败,如何处理?
- 人工智能值得研究的领域有哪些?