周末Project(3):用crontab自动运行折扣搜索程序

谁不喜欢折扣?反正我很喜欢。去年写过一个自动检索折扣网站的脚本。一旦搜索到我需要的产品,就会自动发一封信到我的邮箱。唯一的问题是这个脚本需要手动运行,记性很差的我自然是在大部分的时间都忘记运行它啦。今天试着用crontab设置自动运行。看上去比较简单的事情,还是折腾了有两个小时。

  1. cron用在Linux上。Windows需要自动运行脚本的话,需要把相应的脚本加到某个.../startup 文件夹中。
  2. 用crontab -e在cron里面创建一个自动运行项。
  3. crontab的运行条件还是相当苛刻的:
    • 在终端(terminal)中运行脚本时,会有默认输入(stdin)和默认输出(stdout),但cron在运行程序时是没有这些的。如果在程序中,加入了输入输出,如果没有指定文件的话,程序就会出错。但cron是不会报错的。结果就是你发现程序莫名其妙就停了。
    • 我遇到的第二个问题,是cron是在系统载入之后就开始运行,这个时候一般来说,成功的网络连接还没有建立。而我的脚本中,一上来就直接需要链接gmail的邮件服务器,结果就是程序报错然后退出(并且没有任何提示)。解决这个问题有两个办法。第一,在脚本内部加入异常处理,比如,无法链接服务器就等待几分钟再链接。第二种比较偷懒的方法是,让程序运行之后等待几分钟,用sleep 600就可以让程序等待10分钟,这个时间就已经足够让电脑建立网络连接了。

搞定,运行良好。为感恩节做好准备!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (cro...
    Zcclucky阅读 597评论 0 0
  • Linux 系统提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linu...
    happeace阅读 1,810评论 0 53
  • Linux定时任务Crontab命令详解 linux 系统则是由 cron (crond) 这个系统服务来控制的。...
    孙燕超阅读 1,846评论 0 4
  • 一、简介 crond是Linux下用来周期执行某种任务或等待处理某些事件的一个守护进程,当安装完成操作系统后,默认...
    人在码途阅读 1,050评论 0 3
  • Linux定时任务Crontab命令详解linux 系统则是由 cron (crond) 这个系统服务来控制的。L...
    时待吾阅读 415评论 0 0