Ubuntu下用crontab 部署定时任务
用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服务:
service rsyslog restart;
然后再重启crontab服务:
service cron restart;
网上很多人说开启,停止或者重启contab服务用命令 service crond restart,执行这个命令会报出 unrecognised service ,这里吧 crond 改成 cron 就可以了。
之后,在这个位置 /var/log/cron.log 就可以查看定时任务的文件日志文件了;
下面这个命令还可以查看crontab的状态
service cron status;
查看运行时的日志文件,如果在日志文件中执行一条语句后出现:
No MTA installed, discarding output
则crontab执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到邮箱里,需要邮件服务器了,如果没有安装邮件服务器,它就会报这个错。
可以在每条定时脚本后面加入:
>/dev/null 2>&1
即将所有信息输入到linux系统中的空设备/dev/null中。
即可解决No MTA installed, discarding output的问题。
写定时任务
通过如下命令,就可以开启本用户的定时文件,文件存放在 /var/spool/cron/crontabs 文件夹下
并且以用的的名字命名的文件
crontab -e
可以通过以下命令列出某个用户cron服务的详细内容
crontab -l
我先写了个定时任务测试以下,用php写了一个功能,每分钟向数据库中写入一条数据,定时任务每分钟执行url就可以
1 * * * * curl servername/Home/Test/test >/dev/null 2>&1
curl也是Ubuntu自带的,不用另外安装。此条命令单独在命令行执行是可以的。
在crontab中发现好像不能执行,后来发现每分钟不能这样写,分钟位要写成 */1,才能执行,下面是从别人那拷贝过来的几个命令,不过我都试过
每五分钟执行 */5 * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 *
在最终能用之前我还运行过以下命令,是给root赋权限。但是在我最终能运行时,我不知道这条命令有没有起作用。不过还是先写上。运行后需要重启crontab服务
crontab -u root /var/spool/cron/crontabs/root
之前不能运行的时候,看到很多人说不能运行是环境变量的问题,需要修改。不过我这次并没有遇到。不过先记下来。以后可能会用到。
我用的是root用户写的定时任务,并且看到他人写的下面内容,下次试一下
/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户。
如果两个文件同时存在,那么/etc/cron.allow 优先。
如果两个文件都不存在,那么只有超级用户可以安排作业。
Ubuntu下用crontab 部署定时任务的更多相关文章
- Ubuntu下使用crontab部署定时任务
Ubuntu下使用crontab部署定时任务 安装cron apt-get install cron 开启crontab日志 默认情况下的日志是没有开启的,我们需要找到 /etc/rsyslog.d/ ...
- ubuntu下在apache部署python站点
ubuntu下在apache部署python站点 我的是ubuntu14 32为的虚拟机,默认安装的python为3.4 环境:apache + mysql + django + python3 软件 ...
- NodeJS项目迁移兼Ubuntu下NodeJS环境部署
前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...
- ubuntu下使用crontab
创建crontab任务 参考:https://www.cnblogs.com/Icanflyssj/p/5138851.html 3. crontab常用的几个命令格式 crontab -l //显示 ...
- crontab部署定时任务
1.安装cron工具:apt-getinstall cron 2.开启定时任务:crontab –e 定时任务语句格式为:执行周期+命令. 周期有5个域,分别是分,时,日(day of month), ...
- ubuntu下使用crontab定时器
crontab 定时工具(周期性执行的任务列表称为Cron Table),其中每一个任务,被称为Cron Job. 可以,每分钟执行,每小时执行,每天执行,每周执行,每月执行. 检查服务 1.查看任务 ...
- centos和ubuntu下使用cron设置定时任务
1.启动cron工具[ps:使用root权限] centos启动cron两种方式 a) /etc/init.d/crond start b) service crond start ubuntu启动c ...
- Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站
前言 本文介绍如何在 Ubuntu 16.04 服务器上安装 .NET Core 2.0 SDK.创建项目与发布,并使用 Nginx 部署 .NET Core 2.0 Web 项目. 安装 .NET ...
- linux下使用crontab新建定时任务
我安装了一个全文搜索的插件,但是需要生成索引才能使用,但是不能手动生成索引,所以说呢,我就加了一个定时任务, 一.首先vim /etc/crontab 打开文件 我根据上面的提示加了用户名,但是看到其 ...
随机推荐
- SCSS详解
SCSS入门 CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等 ...
- 【BZOJ2506】calc 分段+vector+莫队
[BZOJ2506]calc Description 给一个长度为n的非负整数序列A1,A2,…,An.现有m个询问,每次询问给出l,r,p,k,问满足l<=i<=r且A ...
- Chocolate Bar(暴力)
Chocolate Bar Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement There is ...
- c#调用c++带有回调函数方法的实现
最近完成了一个C++版本的对外sdk程序,其中有部分回调函数使用. C++程序使用时没有异常,但是在C#环境下使用时出了点问题,简单总结下. 感谢博客:http://blog.csdn.net/son ...
- jquerymobile模板
<!DOCTYPE html> <html> <head> <title>Page Title</title> <meta name= ...
- docker快速构建oracle数据库
1.查看可用镜像docker search oracle2.拉去想要的镜像docker pull wnameless/oracle-xe-11g3.基于wnameless/oracle-xe-11g创 ...
- C# 面向对象三大特性:封装、继承、多态
面向对象有封装.继承.多态这三个特性,面向对象编程按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成任务.这种编程方法提供了非常强大的多样性,大大增加了 ...
- python——单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在. 当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 比如, ...
- echarts3.8.4实现模拟迁移
动态接受城市的经纬度https://zhidao.baidu.com/question/1384875311724922940.html 调用百度api获得ip对应的城市https://www.cnb ...
- Owncloud-X安装配置
系统是基于Centos7.2 1.更改yum源: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back ...