zoukankan      html  css  js  c++  java
  • LNMP定时任务

    阅读本文之前,请先了解下关于crontab的相关基础知识 

    crontab:是在unix/linux上定时执行某个任务的程序  

    crond服务:是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务,crond是工具,是linux服务项。

    下面开始设置定时任务

    1,创建定时任务文件(下面以test.sh脚本为例)

      [root@xxx  ~]#  cd  /
      [root@xxx   /]#  mkdir  -p  data/crontask   注释:用于集中存放任务文件
      [root@xxx   /]#  mkdir  -p  data/cronlog     注释:用于集中存放任务日志
      [root@xxx   /]#  vim  /data/crontask/test.sh

    #!/bin/sh                   注释:shell脚本开头
    wget http://www.baidu.com

      说明:test.sh文件设置的任务是,访问百度网站

    2,修改test.sh 文件权限755,使它可被执行

      [root@xxx   /]#  chmod  0755  /data/crontask/test.sh 

    3,定时任务分为2种,系统级别定时任务和用户级别定时任务

      方法1:系统级别定时任务(此方法便于管理所有用户设置的定时任务)

      /etc/crontab是系统级别的crontab,系统的设置等,这种方法只有root用户能用。

      [root@xxx   /]#  vim  /etc/crontab

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    #HOME=/
    
    # For details see man 4 crontabs
    
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed
      * * * * * root  /data/crontask/test.sh > /data/cronlog/test.log 2>&1

      SHELL变量:要使用哪个shell,这里使用的是bash

      PATH变量:系统执行命令的路径

      MAILTO变量:crond任务的执行信息将通过电子邮件发给root用户,如果为空,则不发送给任何用户(一般不用更改)

      HOME变量:执行crond命令使用的主目录(被我注释掉,操作日志分开存放)

      最后一行是crond命令格式,依次是: 分钟  小时  日期  月份  星期  用户    .sh定时任务文件物理路径   日志记录 

    分钟/小时/日期/月份/星期 这5个参数,可以用的字符有:
    
    星号(*):代表所有可能的值。
    
    逗号(,):指定一个列表范围,例如“1,7,9”
    
    中杠(-):表示一个整数范围,例如“2-5”表示“2,3,4,5”
    
    正斜线(/):指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。例如*/10,如果用在minute字段,表示每十分钟执行一次。

      方法2:用户级别定时任务,不写执行用户名称,默认为当前登录用户

      [root@xxx  /]#  crontab  -e

    0 2 * * * /usr/bin/curl https://域名/模块/方法名

    0 2 * * * /data/crontask/test.sh >> /data/cronlog/test.log 2>&1

    0 10 * * 1-3 /data/crontask/pgsql.sh

         表示执行命令的同时,产生的操作日志以追加的形式重定向到/data/cronlog/test.log

      crontab -e是用户级的crontab,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本,crontab命令实际是/usr/bin/crontab这个可执行文件

      有些系统设置即使用root账号crontab -e也不行,必须放到/etc/crontab中


      ---------------------
      关于/etc/crontab和crontab -e的区别,请参考CSDN网址:https://blog.csdn.net/fanren224/article/details/64906848

    4,最后了放上crontab相关指令

      crontab命令选项基本只有对用户操作的选项: 
      -u 指定一个用户 
      -l 列出某个用户的任务计划 
      -r 删除某个用户的任务 (慎用
      -e 编辑某个用户的任务 

    希望大家共同进步,学习更多想学习的知识。
  • 相关阅读:
    μC/OS-II中使用软件定时器
    基于javafx的实训项目实战 —— 猿天气
    郑州轻工业大学软件学院计算机网络期末复习
    软件工程经济学结课报告——兰花智慧大棚监控系统可行性研究报告
    基于javafx实现一个简单的图片查看器
    数据结构之动态数组
    JSP技术
    JavaWeb实现上传下载
    windows下mysql编码问题
    基于socket的即时通信系统的设计与实现
  • 原文地址:https://www.cnblogs.com/lyzaidxh/p/9879955.html
Copyright © 2011-2022 走看看