用php做了一个网站,其中一个统计工能,需要每周定时用行。想看看有什么方法,之前看别人的东西,一般有2中方式,一个是php自带的定时任务,一个是用系统

带的,linux下的crontab和windows下的定时任务。

  之前用了php自带的定时任务工能,发现实现起来很简单,中间也没出现很多问题,同时做的时候对  ob_flush()  和 flush() 等函数不是很熟,后来又看了相关的一些文章,

对其中的东西有了深入的了解。但是后来发现php定时任务开启后,貌似不能停止,不需要重启服务器才行。不能通过修改php文件来解决。

  后来就打算用linux下的crontab来实现。这次用的是Ubuntu来做部署系统,nginx来做服务器。此系统下自带crontab,所以不用自己安装。

开启crontab日志

  crontab默认情况下是不执行开启日子的,所以一开始写完后,不能执行,想查看日志,却找不到。所以先开启定时任务的日志来查看

  修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf  文件中的 #cron.* 前的 # 删掉;用以下命令重启rsyslog服务:

  1. service rsyslog restart

  然后再重启crontab服务:

  1. service cron restart

  网上很多人说开启,停止或者重启contab服务用命令 service crond restart,执行这个命令会报出 unrecognised service ,这里吧 crond 改成 cron 就可以了。

  之后,在这个位置 /var/log/cron.log 就可以查看定时任务的文件日志文件了;

  下面这个命令还可以查看crontab的状态

  1. service cron status

  查看运行时的日志文件,如果在日志文件中执行一条语句后出现:

  No MTA installed, discarding output
  则crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到邮箱里,需要邮件服务器了,如果没有安装邮件服务器,它就会报这个错。

  可以在每条定时脚本后面加入:

  1. >/dev/null 2>&1

  即将所有信息输入到linux系统中的空设备/dev/null中。

  即可解决No MTA installed, discarding output的问题。

 

写定时任务

  通过如下命令,就可以开启本用户的定时文件,文件存放在 /var/spool/cron/crontabs 文件夹下

并且以用的的名字命名的文件

  1. crontab -e

  可以通过以下命令列出某个用户cron服务的详细内容

  1. crontab -l

  我先写了个定时任务测试以下,用php写了一个功能,每分钟向数据库中写入一条数据,定时任务每分钟执行url就可以

  1. 1 * * * * curl servername/Home/Test/test >/dev/null 2>&1

  curl也是Ubuntu自带的,不用另外安装。此条命令单独在命令行执行是可以的。

  在crontab中发现好像不能执行,后来发现每分钟不能这样写,分钟位要写成  */1,才能执行,下面是从别人那拷贝过来的几个命令,不过我都试过

  1. 每五分钟执行 */5 * * * *
  2.  
  3. 每小时执行 0 * * * *
  4.  
  5. 每天执行 0 0 * * *
  6.  
  7. 每周执行 0 0 * * 0
  8.  
  9. 每月执行 0 0 1 * *
  10.  
  11. 每年执行 0 0 1 1 *

  在最终能用之前我还运行过以下命令,是给root赋权限。但是在我最终能运行时,我不知道这条命令有没有起作用。不过还是先写上。运行后需要重启crontab服务

  1. crontab -u root /var/spool/cron/crontabs/root

  之前不能运行的时候,看到很多人说不能运行是环境变量的问题,需要修改。不过我这次并没有遇到。不过先记下来。以后可能会用到。

  我用的是root用户写的定时任务,并且看到他人写的下面内容,下次试一下

  /etc/cron.deny 表示不能使用crontab 命令的用户

  /etc/cron.allow 表示能使用crontab的用户。

  如果两个文件同时存在,那么/etc/cron.allow 优先。

  如果两个文件都不存在,那么只有超级用户可以安排作业。

Ubuntu下用crontab 部署定时任务的更多相关文章

  1. Ubuntu下使用crontab部署定时任务

    Ubuntu下使用crontab部署定时任务 安装cron apt-get install cron 开启crontab日志 默认情况下的日志是没有开启的,我们需要找到 /etc/rsyslog.d/ ...

  2. ubuntu下在apache部署python站点

    ubuntu下在apache部署python站点 我的是ubuntu14 32为的虚拟机,默认安装的python为3.4 环境:apache + mysql + django + python3 软件 ...

  3. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

  4. ubuntu下使用crontab

    创建crontab任务 参考:https://www.cnblogs.com/Icanflyssj/p/5138851.html 3. crontab常用的几个命令格式 crontab -l //显示 ...

  5. crontab部署定时任务

    1.安装cron工具:apt-getinstall cron 2.开启定时任务:crontab –e 定时任务语句格式为:执行周期+命令. 周期有5个域,分别是分,时,日(day of month), ...

  6. ubuntu下使用crontab定时器

    crontab 定时工具(周期性执行的任务列表称为Cron Table),其中每一个任务,被称为Cron Job. 可以,每分钟执行,每小时执行,每天执行,每周执行,每月执行. 检查服务 1.查看任务 ...

  7. centos和ubuntu下使用cron设置定时任务

    1.启动cron工具[ps:使用root权限] centos启动cron两种方式 a) /etc/init.d/crond start b) service crond start ubuntu启动c ...

  8. Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站

    前言 本文介绍如何在 Ubuntu 16.04 服务器上安装 .NET Core 2.0 SDK.创建项目与发布,并使用 Nginx 部署 .NET Core 2.0 Web 项目. 安装 .NET ...

  9. linux下使用crontab新建定时任务

    我安装了一个全文搜索的插件,但是需要生成索引才能使用,但是不能手动生成索引,所以说呢,我就加了一个定时任务, 一.首先vim /etc/crontab 打开文件 我根据上面的提示加了用户名,但是看到其 ...

随机推荐

  1. class 中构造函数与析构函数

    import pymysql class My_sql(): def __init__(self, host, user, passwd, db, port=3306, charset='utf8') ...

  2. Java类的加载、链接和初始化(个人笔记)

    这里看到一篇比较好的文章:http://www.infoq.com/cn/articles/cf-Java-class-loader 这里只是针对什么时候会触发java类的初始化(注意:这里不是说的实 ...

  3. [CTSC1999][网络流24题] 星际转移

    36. [CTSC1999][网络流24题] 星际转移 ★★★☆   输入文件:home.in   输出文件:home.out   简单对比时间限制:1 s   内存限制:128 MB «问题描述: ...

  4. 【BZOJ3083/3306】遥远的国度/树 树链剖分+线段树

    [BZOJ3083]遥远的国度 Description 描述zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度.当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了 ...

  5. 【转】 通过VMLibrary在client partition上安装AIX全程实录

    现场实录,应该对新手有所帮助,因为本人就是新手...最近一段时间跟Linux无缘,都是在和PowerVM打交道,博文更新慢,不赖我,哈哈本文参考链接:AIX Migration with File-B ...

  6. JavaWeb 之邮件发送

    1. 邮件协议概述 SMTP(Simple Mail Transfer Protocol, 简单邮件传输协议) 发邮件协议; POP3(Post Office Protocol Version 3, ...

  7. git原理:.git隐藏文件夹介绍

    config 定义项目特有的配置选项description 仅供git web程序使用info/ 包含一个全局排除文件(exclude文件),用于配置不在.gitignore中的忽略模式hooks/ ...

  8. sharepoint 2010自定义访问日志列表设置移动终端否和客户端访问系统等计算列的公式

    上个月本人开发和上线了一个在SharePoint 2010上基于HTML5的移动OA网站,后端服务采用自定义的基于AgilePoint工作流引擎的Sharepoint Web服务,前端主要采用Jque ...

  9. XSS - html过滤

    JS 根据白名单过滤HTML http://jsxss.com/zh/index.html   方案一: java的一个方案, 可以参考:  http://winnie825.iteye.com/bl ...

  10. substring splice

    返回start到end之前 不包括end stringObject.substring(start,end) (不接受负数) stringObject.slice(start,end) start起始 ...