专栏首页学一学大数据踩坑记录-crontab每10秒执行一次

踩坑记录-crontab每10秒执行一次

写在前面,记录一个linux小白使用crontab中遇到的各种坑及解决思路方法。网上帖子千千万,坑也是千千万。记录下,分享给大家。

需求:linux中使用crontab每十秒执行一次

场景:需要在ubuntu14服务器中使用代理每十秒执行一次curl来访问互联网,来测试代理网络稳定性。

经过网上的大量搜贴之后得到的可用的一个结论如下:

# crontab -e* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 10; /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 20; /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 30; /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 40; /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 50; /usr/local/cc.sh >>/usr/local/log.txt 2>&1

如果你是直接一梭子全复制,改下目录那么恭喜你完成了计划任务。而我就不是了,我只写了sleep 10 这条然后任务没有执行。这就是坑。

坑1 .上面sleep 10 20 30 ...是啥意思啊,怎么个规则啊。一头雾水,当时我是直接把第二个sleep 10 那个定时任务直接粘进去的。然后,任务没有执行就一直纠结任务没有执行这个问题。

坑2.ubuntu系统第一次使用crontab -e 需要选择比编辑器,如果选nano上,对我这种小白可就蒙圈。最后在命令行使用, select-ediort 来选择编辑器选3 vim 就好了

后来,明白后做了实验。

如果只写前两条的话是:在每分钟的第一秒和第一个10秒执行一次

* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 10; /usr/local/cc.sh >>/usr/local/log.txt 2>&1

以此类推只写前三的话就是:在每分钟的第一、第一个十秒、第二个十秒分别执行一次

* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 10; /usr/local/cc.sh >>/usr/local/log.txt 2>&1* * * * * sleep 20; /usr/local/cc.sh >>/usr/local/log.txt 2>&1

如果都写上的话就是每十秒执行一次啦,完美过程。

过程遇到的问题(1):crontab -e 完都有新邮件

原因:1.crontab 每次执行完程序产生的输出都会发邮件到/var/mail/root

2.定时任务语法有误,/var/mail/root 发送的是错误日志,如下

root@bogon:/usr/local# tail -20 /var/mail/rootFrom root@bogon  Tue May 21 18:31:11 2019Return-Path: <root@bogon>X-Original-To: rootDelivered-To: root@bogonReceived: by bogon (Postfix, from userid 0)  id AAFCB43077; Tue, 21 May 2019 18:31:11 +0800 (CST)From: root@bogon (Cron Daemon)To: root@bogonSubject: Cron <root@bogon> sleep 10; sh /home/liuxin/curl-status.sh >dev/null 2>&1Content-Type: text/plain; charset=ANSI_X3.4-1968X-Cron-Env: <SHELL=/bin/sh>X-Cron-Env: <HOME=/root>X-Cron-Env: <PATH=/usr/bin:/bin>X-Cron-Env: <LOGNAME=root>Message-Id: <20190521103111.AAFCB43077@bogon>Date: Tue, 21 May 2019 18:31:11 +0800 (CST)
/bin/sh: 1: cannot create dev/null: Directory nonexistent

解决:如果是1的话就放到黑洞 >/dev/null 2>&1

* * * * * /usr/local/cc.sh >/dev/null 2>&1

精讲:1,/dev/null是linux系统的一个垃圾桶(一个不正经的比喻)有不用的输出都可以往里面扔。>/dev/null 缺省默认是1 即 1>/dev/null

2,linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2 2>&1就是把2错误输出重定向到1标准输出 而1又输出到/dev/null黑洞

如果不想输出到一个文件可以这样写

* * * * * /usr/local/cc.sh >>/usr/local/log.txt 2>&1

过程中遇到的问题(2):如图crontab -e 后是新文件

解决:crontab语法错误再三检查后,建议select-editor 选3 vim

转发是最大的支持。评论区等你!

SHOWTIME

想要加入我们IT资源社群吗?想要与志同道合的小伙伴们一起成长和发展吗?想要及时获得各种技术福利吗?

本文分享自微信公众号 - 学一学大数据(lx18710140128),作者:懂点财税

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 拼多多的电商扶贫逻辑

    2.刷抖音无意间刷到副县长的抖音。很明显这是一个抓经济,抓三农的县长。大多数作品都是全国去开会然后回来落地电商扶贫,抖音直播带货。其中,有两点值...

    学一学大数据
  • 网络爬虫的应用领域

    学一学大数据
  • 全文搜索引擎 Elasticsearch 入门教程

    学一学大数据
  • 轻松搞懂中文分词的评测

    你呀,你别再关心灵魂了,那是神明的事。你所能做的,是些小事情,诸如热爱时间,思念母亲,静悄悄地做人,像早晨一样清白。

    触摸壹缕阳光
  • Deep Learning Book 中文第七章 深度学习的正则化

    深入分析各种正则化方法:L2、L1;数据集增强;噪音;半监督;多任务;提前终止(过犹不及^_^);参数共享;稀疏;Bagging;DropOut(进化生物基因)...

    用户1908973
  • 【业界】 Face++ 获 4.6 亿美金融资, 创始人CEO印奇CTO唐文斌如何看AI行业

    10月31日消息,国内人工智能公司旷视科技(Face++)已于近期完成 C 轮融资,本轮融资金额约为 4.6 亿美元,本轮由中国国有资本风险投资基金(简称“国风...

    WZEARW
  • 通过键盘方向键控制TreeView节点的移动

    本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141932204/

    跟着阿笨一起玩NET
  • 高端大气上档次的帕累托图

    用户1756920
  • 解读AI芯片麒麟980如何让手机更智能

    8月31日,华为发布了新一代顶级人工智能手机芯片——麒麟980,成为全球首款采用7nm制程工艺的手机芯片。麒麟980能做到人脸识别、物体识别、物体检测、图像分割...

    刘盼
  • .NetCore2.1升级到3.1记录

    以为缺少对应的包,然后去nuget安装时发现 最新版本是2.2 ,跟.NETcore web 项目引用的版本不一样。

    李明成

扫码关注云+社区

领取腾讯云代金券