zoukankan      html  css  js  c++  java
  • Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

    最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用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 LTIB学习笔记
    wince WaitForMultipleObjects需要注意的问题
    微信小程序在苹果上出现[request:fail 发生了 SSL 错误无法建立与该服务器的安全连接。]错误的解决方案
    Windows 2008之PKI实战4:吊销
    十个不找工作的理由
    [zt]我奋斗了18年不是为了和你一起喝咖啡
    [zt]Java/PHP/C 几种语言 RSA 的互操作
    全职共享和兼职的一些思考pkill
    定价策略(翻译稿)
    Windows 2008之PKI实战1:管理
  • 原文地址:https://www.cnblogs.com/sunshine-H/p/9336960.html
Copyright © 2011-2022 走看看