linux crontab定时任务

  1. 首先查看liunx系统中定时任务crontab是否启动:
    命令:service crond status
    linux crontab定时任务
    如上图:running表示启动 pid表示进程

  2. 开始创建定时任务:
    命令:crontab -e(如何此时让你选择编译器,可以选择vi) 输入要执行的脚本或者命令:
    linux crontab定时任务
    在这里我执行的是python脚本,时间是每月的一号零点零分
    然后我们可以按照vi编译器的用户,保存退出

  3. 查看创建的定时任务
    命令:crontab -l 如果出现下图问题:
    linux crontab定时任务

    1. 进入root用户下再执行crontab -e创建定时任务,然后再查看定时任务,如果还是这样,则进行第二步
    2. 进入/var/spool/cron/ cron是存放crontab任务的目录,每个任务以当前用户的名字命名,一般一个用户最多只有一个crontab文件,然后在此目录下随便创建一个文件,看看有没有权限,如果没有,则退出到上一级目录 执行chmod 777 cron赋予权限,然后看是否可以创建目录,然后执行crontab -e应该就可以了
  4. 权限
    crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
    用法如下:
    1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
    2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
    3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
    4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。

  5. 定时任务时间问题
    ***** command(命令或脚本)
    分  时  日  月  周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示

    第2列表示小时1~23(0表示0点)

    第3列表示日期1~31

    第4列表示月份1~12

    第5列标识号星期0~6(0表示星期天)

    第6列要运行的命令
    举一些例子:
    每晚的21:30重启apache。
    30 21 * * * /usr/local/etc/rc.d/lighttpd restart

    每月1、10、22日
    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

    每天早上6点10分
    10 6 * * * date

    每两个小时
    0 */2 * * * date

    在上午的8点到11点的第3和第15分钟执行
    3,15 8-11 * * * command