最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no crontab for root等问题。

一、Linux系统安装crontab服务

  1.确认crontab是否安装

  # crontab -l

  如果报 “command not found” ,就说明该crontab服务没有安装

  如果报 “no crontab for root” ,就说明已经安装crontab服务了,请跳过步骤一,至于出现这个提示的解决办法请往下看。

  2.安装crontab服务

  centos系统,请执行以下命令:

//vixie-cron软件包是cron的主程序;  

# yum install -y vixie-cron  

//rontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序

# yum install crontabs

//启动服务   

# /sbin/service crond start   或者  systemctl crond start

//加入开机自动启动

# chkconfig --level 35 crond on

  ubuntu、debian系统,请执行以下命令:

//安装crontab服务  

# apt-get install cron  

//启动crontab服务(同时还有service cron stop 停止服务,service cron restart 重启服务)

# service cron start   

  3.测试是否安装成功了

  继续执行上面第一条命令:crontab -l

  这时会出现 “no crontab for root” 这是由于你还没有创建任何定时任务或者命令打错,即没有使用crontab -e命令去创建任何任务。但是到了这里,你的安装基本可以了。crontab命令详情请看下步

  

二、crontab命令详解

  1.crontab命令主要有3个参数:

  -e :编辑用户的crontab

  -l :列出用户的crontab的内容

  -r :删除用户的crontab的内容

  2.功能说明:设置计时器

  补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:

语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

  参数:

    -e   编辑该用户的计时器设置。

    -l    列出该用户的计时器设置。

    -r   删除该用户的计时器设置。

    -u<用户名称>  指定要设定计时器的用户名称。

  

  3.crontab -e命令详解

  # crontab -e

  如果第一次执行上面命令时,会让你选择编辑器,不过有些终端会默认帮你选择nano编辑器的,一般我们都会修改编辑器为vim,具体方法请看步骤三。

  然后会打开一个crontab的文件,然后点击 i 进行输入模式,输入一下内容:

  //每隔一分钟执行一次test.php

  # * * * * * php /var/test.php  

  输入完后保存退出,:wq。然后重启crontab服务

  // 不同服务器命令不一样,详情请看步骤一

  # service cron restart

  4.crontab -l

  查看crontab有哪些定时任务在执行,这里没什么好弊述的。

  

  5.crontab格式

  基本格式:* * * * * command

  格式说明:上面的*代表着不同的时间点,具体排序如下:分 时 日 月 周。

  例如:

  * * * * * php /var/www/hello/index.php >> /tmp/log/index.txt

  //表示每分钟执行一次,整句话的意思是说每分钟执行使用php执行index.php文件,并将信息打印到/tmp/log/index.txt文件中,具体路径自己改

  这里加个技巧关于查看某个文件,但又不想vim <文件名>的。可以使用cat <文件名>命令

  1. * */2 * * * php /var/www/index.php >> /tmp/index.txt

  2. * * */1 * * php /var/www/index.php >> /tmp/index.txt

  // 如果要设置没隔多久执行,则写为“*/数字”,在哪个位置就代表每隔多久执行一次。上面命令分别代表:

  1.每隔2小时执行一次

  2.每隔一天执行一次

三、修改crontab默认编辑器为vim

  1.debian终端下默认编辑器为nano,比如crontab -e就会打开nano,这个编辑器用起来很不习惯,想修改为vim,当然,你的debian系统必须先安装vim.如果已经安装vim,请输入如下命令:

# update-alternatives --config editor

  

  然后选择/usr/vim/vim.basic就可以了,vim.tiny与vim.basic的区别是vim.basic为完全版的vim,而vim.tiny为简化版,功能上有所区别,如不支持高亮等等.

  输入数字   2   ,回车,再次打开crontab -e即可。

crontab的使用就到此为止了,欢迎有问题的小伙伴在下方留言。

Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法的更多相关文章

  1. 【转】Linux虚拟终端命令Screen用法详解

    转自 http://www.linuxidc.com/Linux/2013-07/87415.htm 在使用ssh或者telnet登录远程主机后,执行一些耗时的命令,如果此时ssh或者telnet中断 ...

  2. linux route命令的使用详解 添加永久静态路由 tracert traceroute

    linux route命令的使用详解 添加永久静态路由  tracert  traceroute route -n    Linuxroute  print  Windows traceroute  ...

  3. IP命令的用法详解

    IP命令的用法详解 原创 2017-06-29 10:02:34 0932 摘自:http://www.php.cn/linux-371363.html ip命令是Linux下较新的功能强大的 ...

  4. (转)linux 中特殊符号用法详解

    linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/b ...

  5. Linux常用命令及部分详解

    1.总结部分 常用指令 ls      显示文件或目录 -l            列出文件详细信息l(list) -a            列出当前目录下所有文件及目录,包括隐藏的a(all) m ...

  6. linux shell 之 crontab(定时任务)详解

    1.定义: crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行.该词来源于希 ...

  7. Linux下nl命令的用法详解

    Linux中nl命令和cat命令很像,不过nl命令会打上行号,属于比较不常用的命令,下面随小编一起来了解下这个鲜为人知的nl命令吧. nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文 ...

  8. Linux运维技术之详解任务计划(crontab命令)

    crontab命令 按照预先设置的时间周期(分钟.小时.天……)重复执行用户指定的命令操作,属于周期性计划任务 (1).先来看一下/etc/crontab文件的内容: [root@localhost ...

  9. Linux rpm 命令参数使用详解[介绍和应用]

    RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两 ...

随机推荐

  1. Every write operation executed on a document, deletes included

    Delete API | Elasticsearch Reference [6.5] | Elastic https://www.elastic.co/guide/en/elasticsearch/r ...

  2. Logstash之时区问题的建议和修改---filter---and duplicate resolution.

    2. logstash es duplicate https://logstash.jira.com/browse/LOGSTASH-1875 https://logstash.jira.com/br ...

  3. 关于spring的applicationContext.xml配置文件的ref和value之自我想法

    今天在做SSH的一个项目的时候,因为需要定时操作,所以就再sping里面加入了一个quartz的小定时框架,结果在运行时候,发生了一个小bug. Caused by: org.springframew ...

  4. C. Mail Stamps---cf29c(离散化,图)

    题目链接:http://codeforces.com/problemset/problem/29/C 题意就是有n(1e5)个点,找到一条能把所有的点都包含在内的路径,由于点的编号是 1e9 所以不得 ...

  5. okhttp发送post请求

    String url = "http://www.xxx.com/api/test"; OkHttpClient httpClient = new OkHttpClient(); ...

  6. first-child与:first-of-type的区别

    css选择器中:first-child与:first-of-type的区别 :first-child选择器是css2中定义的选择器,从字面意思上来看也很好理解,就是第一个子元素.比如有段代码: p:f ...

  7. debian 如何切换为root用户

    debian 如何切换为root用户   debian 如何切换为root用户 sudo su 输入命令后提示输入密码,输入密码切换为root用户

  8. 查看电脑已经连过的wifi密码

    用下面两条命令可以完成 查看当前系统已经保存的网络 netsh wlan show profiles 查看wifi指定密码 netsh wlan show profiles name="wi ...

  9. JVM调优之Java进程消耗CPU过高

    JVM调优之Java进程消耗CPU过高 查找问题思路 1.查看cpu使用率,发现有线程cpu占用率很高  tops 咱们拿18092线程举例示范 2.查询pid对应的进程 ps -ef|grep 18 ...

  10. iClap分享:如何优雅的在 APP 中实现测试?

    开发团队常面临的问题有:内测 APP 时测出一堆 bug 写了很多文档,交到下一个人手中时问题总是不够清晰明了;版本发布公测时只能分发原生版本给团队和用户,无法快速反馈测试和体验结果;使用第三方工具, ...