[转载]CentOS7下crontab计划任务

crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

安装

yum install vixie-cron
yum install crontabs

说明:

vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动cron守护进程的表格的程序。

配置

cron 是 linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
service crond status    //查看crontab服务状态

在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on

cron 的主配置文件是 /etc/crontab,它包括下面几行:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

前四行是用来配置cron任务运行环境的变量。

SHELL变量的值告诉系统要使用哪个shell环境(在这个例子里是bash shell);

PATH变量定义用来执行命令的路径。

cron任务的输出被邮寄给MAILTO变量定义的用户名。

如果MAILTO变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。

HOME变量可以用来设置在执行命令或脚本时使用的主目录。

crontab 命令

功能:设置计时器。

语法:crontab[-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

解释:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:Minute Hour Day Month DayOFWeek Command

参数:

-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u <用户名称>  指定要设定计时器的用户名称

格式:

*   *  *  *  *  command
分 时 日 月 周   命令

第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache。

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

上面的例子表示每月1、10、22日的4 : 45重启apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

一月一号的4点重启apache

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44

每半小时同步一下时间

为不同用户创建Cron任务

为当前用户创建cron服务

1.键入 crontab -e 编辑crontab服务文件

例如:

文件内容如下:

*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh

保存文件并并退出

*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh

*/2 * * * *通过这段字段可以设定什么时候执行脚本

/bin/sh /home/admin/jiaoben/buy/deleteFile.sh这一字段可以设定你要执行的脚本,这里要注意一下bin/sh是指运行脚本的命令后面一段时指脚本存放的路径

2.查看该用户下的crontab服务是否创建成功, 用crontab -l命令

3.启动crontab服务

一般启动服务用/sbin/service crond start若是根用户的cron服务可以用sudo service crond start,这里还是要注意下不同版本Linux系统启动的服务的命令也不同,像我的虚拟机里只需用sudo service cron restart即可,若是在根用下直接键入service cron start就能启动服务

4.查看服务是否已经运行用ps -ax | grep cron

原文地址:https://colascarlet.moe/Linux/Centos/Server/232/

如果您觉得本文对您有用,欢迎捐赠或留言~
微信支付
支付宝

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注