曾经做过Windows server下的定时任务的业务,最近又做了一些Linux下使用Crontab做的定时任务的业务,觉得有必要进行一次小结,于是有了如下这篇文章。

Windows Server下

设置定时任务的步骤如下:

比如:你开发了一个Windows可执行程序,并将其编译成demo.exe,然后你需要该任务每到特定的时间都自动进行执行...

步骤1:打开"开始" -> "计划任务程序"

步骤2: 依次选择 "计划任务程序(本地)" -> "任务计划程序库"

步骤3: 点击右侧的"创建基本任务",然后按照向导填好相应的设置即可...

Linux下

使用Crontab设置定时任务:

1、理解crontab的时间表达式


基本格式 :
*  *  *  *  *  command
分 时  日  月  周  命令

2. 配置和使用Crontab做定时任务

Ubuntu下,在终端中输入crontab -e,即可打开crontab的配置文件,在这个文件里添加待执行的任务,里面可以执行各种各样的命令,比如:curl、sh、php等等...

例如:你要给bravo发一份信,这个信的内容在/home/www/msg.txt里

在执行crontab -e后,添加如下任务:

50 13 4 5 * mail bravo < /home/www/msg.txt
表示在每年的5月4号13:50发信给他

再比如:

在该配置文件中加入:

20 13 * * * /usr/bin/curl -i http://dev.blog.io/cron/testAction

即可定时访问该网址~

另一个例子是使用sh命令(有时需要改为bash):

00 02 * * * sh /home/bravo/shell/dailyError.sh

也可以 crontab -uroot -l查看指定用户的定时任务。

另外Linux下的at命令也可进行定时任务,

at命令:仅执行一次的工作调度。

我们使用at命令来生成所要运行的工作,并将这个工作以文本文件的方式写入到 /var/spool/at/目录里,使该工作能等待atd这个服务取用和执行。

先寻找/etc/at.allow这个文件,只有写在这个文件中的用户才能使用at命令;再寻找/etc/at.deny文件,写在这个文件里的用户不能使用at命令;要是这两个文件都不存在,说明只有root用户才有权限使用at命令。

step1. atd服务的启动  /etc/init.d/atd restart

step2.at命令详解

         at [-mldv] TIME

          at -c 工作号码

         参数:

          -m:当at的工作完成后,即使没有输出信息,以email通知该用户工作已经完成

          -l: at -l相当于atq,列出系统上所有该用户at的调度

          -d: at -d相当于atrm,取消一个在at调度中的工作

          -v:可以使用比较明显的时间格式列出at调度中的任务列表

          -c:列出后面接的该工作的实际命令内容

TIME时间格式:

           HH:MM            04:00

           HH:MM  YYYY-MM-DD             04:00   2009-03-17

           HH:MM[am|pm]   [Month]   [Date]       04pm   March 17

           HH:MM[am|pm]+numver [minutes|hours|days|weeks]              04:00 + 5 minutes

           now + 5 minutes

*注: 以上内容中的部分图文来自于网上,其他部分均为原创...

浅谈Web开发中的定时任务的更多相关文章

  1. 浅谈iOS开发中多语言的字符串排序

    一.前言 在iOS开发中,一个经常的场景是利用tableview展示一组数据,以很多首歌曲为例子.为了便于查找,一般会把这些歌曲按照一定的顺序排列,还会加上索引条以便于快速定位. 由于歌曲名可能有数字 ...

  2. 浅谈iOS开发中方法延迟执行的几种方式

    Method1. performSelector方法 Method2. NSTimer定时器 Method3. NSThread线程的sleep Method4. GCD 公用延迟执行方法 - (vo ...

  3. 浅谈web前端开发阅历

    WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没有学校的正轨教育,大多数人都是靠本人自学成才.本文次要引见本人从事web开发以来(从大二至今)看过的书籍和本人的成长过程,目的是给想了解Java ...

  4. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

  5. 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

    1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...

  6. 浅谈关于QT中Webkit内核浏览器

    关于QT中Webkit内核浏览器是本文要介绍的内容,主要是来学习QT中webkit中浏览器的使用.提起WebKit,大家自然而然地想到浏览器.作为浏览器内部的主要构件,WebKit的主要工作是渲染.给 ...

  7. 浅谈WebService开发三(动态调用WebService)转

    在前两讲里,我已经向大家演示了如何使用WebService.同步, 异步调用WebService,而在实际开发过程中,可能会有多个WebService接口供你选择,而在程序执行过程中才决定使用哪一个 ...

  8. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  9. 浅谈Excel开发:十一 针对64位Excel的插件的开发和部署

    自Office 2010版本开始有了32位和64位之分,对Excel来说,32位的Excel和64位的Excel在性能上的主要区别是64位的Excel能够处理2G及2G以上的大数据集. 随着64位操作 ...

随机推荐

  1. CentOS7完成mysql的安装和远程访问

    详见链接https://blog.csdn.net/weixin_42266606/article/details/80879571 (此处我的本地用户名root,密码root:远程用户名root,密 ...

  2. MongoDB与Spring整合(支持事务)——SpringDataMongoDB

    1.将MongoDB设置为复制集模式 a.修改 mongod.cfg 文件,添加replSetName复制集名称 #replication: replication: replSetName: &qu ...

  3. I - Infinite Improbability Drive

    I - Infinite Improbability Drivehttp://codeforces.com/gym/241750/problem/I不断构造,先填n-1个0,然后能放1就放1,最后这个 ...

  4. JAVA基础复习与总结<六> 数组_容器_泛型

    数组的常用方法 java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的. 具有以下功能: 给数组赋值:通过 fill 方法. 对数组排序:通过 sort 方法,按升序. 比较 ...

  5. Android EventBus技能点梳理

    EventBus为Github上的开源项目,地址:https://github.com/greenrobot/EventBus 疑问:1. 现在都是Android Studio创建的项目,如何导入这些 ...

  6. RSP小组——团队冲刺博客五

    RSP小组--团队冲刺博客五 冲刺日期:2018年12月17日 前言 周末的结束,我们并没有完全的休息,对于这个项目,以我们的实力还是需要花费更多的时间. 各成员今日(12.17)完成的任务 马瑞蕃由 ...

  7. JS for循环 if判断、white循环。小练习

    1----输入正整数n,求1-n的和. var n=prompt("请输入一个正整数"); var sum=0; for (var i=1;i<=n;i++) { sum=s ...

  8. git 配置 .ssh key

    1.安装git软件: 2.打开本地git bash,使用如下命令生成ssh公钥和私钥对: ssh-keygen -t rsa -C 'xxx@xxx.com'    然后一路回车(-C 参数是你的邮箱 ...

  9. 程序执行流程/布尔类型与布尔:运算猜数字游戏;库的使用:turtle

    myPrice = 6 while True: guess = int(input()) if guess > myPrice: print('>') elif guess < my ...

  10. LoadRunner(二)——性能测试过程概述

    参考学习感谢:<精通软件性能测试与LoadRunner实战> 性能测试过程概述 2.1 性能测试的基本过程 2.2 性能测试需求分析 2.3 性能测试计划 2.4 性能测试用例 2.5 测 ...