LNMP定时任务

it2026-05-09  3

阅读本文之前,请先了解下关于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的区别,请参考网址:https://blog.csdn.net/fanren224/article/details/64906848

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

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

 

转载于:https://www.cnblogs.com/lyzaidxh/p/9879955.html

最新回复(0)