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 编辑某个用户的任务 

 

posted @ 2018-02-20 22:09  瑛雄  阅读(411)  评论(0编辑  收藏  举报