重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,在CentOS Linux release 7.2.1511中默认是开机启动的,大家可以使用命令:systemctl status crond进行查看。 crond进程定期(每分钟)检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。用户在cron表
10年的淅川网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整淅川建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“淅川网站设计”,“淅川网站推广”以来,每个客户项目都认真落实执行。
(也被称为crontab文件)指定了定时任务,crontab也就是我们常见的定时任务设置命令。Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度 :系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件就是系统任务调度的配置文件。
用户任务调度 :用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致,使用者权限文件如下:
通过以上帮助信息,我们可以知道crond是执行任务计划的一个守护进程。在使用crontab之前我们可以根据帮助信息来设置相关选项,一般情况下我们都使用默认值。
1.建立演示账号crontab。
2.星号(*)使用举例。
以上例子中完整演示了crontab从建立到执行的过程。“5 0 * * * echo "GeekDevOps"”表示在每天00:05执行命令:echo "GeekDevOps"。后面的星号表示只要前面条件满足都执行。例子中的-u选项指定了用户:crontab,-l选项列举了相关用户的用户任务调度,不指定用户则默认为root。执行结果默认写入到用户mail目录下的相关文件中。
3.逗号(,)的使用举例。
现在我们已经把用户切换到crontab下,因此无需额外指定-u选项相关内容。“3 2,6,8 * * *”表示每天的02:03:00、06:03:00、08:03:00分别执行一次命令:ls /usr/local。
4.减号(-)的使用举例。
例子中的“0 2-6 * * 6 df -h /”表示用户crontab在每周六的02:00、03:00、04:00、05:00、06:00执行命令:df -h / 。
5.斜杠(/)的使用举例。
例子中表示每隔2分钟执行一次命令:echo "GeekDevOps"/root/GeekDevOps.txt。
6.crontab的使用非常简单,很容易理解,只要在取值范围内设置执行的值基本是没有问题的。现在我们要删除已经设置的这些定时任务。
例子中,选项-r表示删除所有定时任务。选项-i表示在删除前进行再次确定,输入y或者Y才能真正删除。
7.备份我们设置的用户任务调度配置文件。
8.系统任务调度的使用举例。
系统任务调度与用户任务调度不一样,需要直接在/etc/crontab里面配置,如果需要指定用户,还需要在执行命令前指定用户名。通过crontab -l 命令是查看不到系统任务调度任务的。
1.修改crontab文件添加或修改定时任务
直接编辑文件:nano /etc/crontab
或使用crontab命令:crontab -e
2.语法介绍:
里面已经有一些test示例,照着添加或修改就行,这里做点简单介绍:
time user command
分 时 天 月 星期 用户 命令
minute hour day month dayofweek user command
A. 时间 time:
minute: 分钟,从 0 到 59 之间的任何整数
hour: 小时,从 0 到 23 之间的任何整数
day: 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
month: 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
dayofweek: 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)
command: 要执行的命令(command是linux终端可以直接执行的命令。)
这里一些符号可以表示以上特殊数值:
*表示所有有效值
-表示范围, 比如1-4(从1到4)
,表示散数数值, 比如1,2,4,7...
/表示每隔,比如 */19 (每隔19 )
看一些简单的例子,以下是我自己的一个crontab文件:
root@mtx:~#crontab -l
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/.sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow usercommand
#17 ** * *root cd / run-parts --report /etc/cron.hourly#每小时的17分
#25 6* * *roottest -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.daily )#每天6点25分
#47 6* * 7roottest -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.weekly )#每年7月份里每一天的6点47分
#52 61 * *roottest -x /usr/sbin/anacron || ( cd / run-parts --report /etc/cron.monthly )#每个月1号的6点52分
*/4 * * * * root /home/Tool/httpslow/httpslow.sh 每4分钟
#
B. 命令 command
命令command直接是linux终端可以执行的命令或可执行脚本的绝对位置
3.使用方法:
crontab crontab_file (-u user)#如crontab /etc/crontab -u root (root用户执行默认配置文件)
crontab -l#查看当前正在运行的crontab服务
crontab -r#删除用户crontab配置文件
crontab -i#删除前给出提示
crontab -h#查看帮助
/etc/init.d/cron start/stop/restart/reload#启动/停止/重启/重新加载 crontab服务
简单的临时重复命令完全可以有其他方案代替:
while true;do clear echo '您的ip地址是:' wget -qo- ifconfig.me/ip;sleep 120;done
#每2分钟刷新一次外网ip地址,并打印出来”
watch -n 5 netstat -nus#显示网络流量,每5秒刷新一次
。。。
如果必须使用命令的话,一般会可at命令。
定时任务,指定一个时间执行一个任务,只能执行一次。
语法:#
at
[参数]
[时间]
输入要执行的任务命令后按Ctrl+d退出即可。
常见参数:
-m
:当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I
:atq的别名
-d
:atrm的别名
-v
:显示任务将被执行的时间
-c
:打印任务的内容到标准输出
-V
:显示版本信息
-q
:后面加列队
使用指定的列队
-f
:后面加文件
从指定文件读入任务而不是从标准输入读入
-t
:后面时间参数
以时间参数的形式提交要运行的任务
注:该命令的功能实现需要atd服务
如果需要长期定时或周期性的执行某个任务,则需要使用crontab,编写cron脚本来实现。同样,负责安装脚本执行任务的服务一般叫做crond。具体使用方法篇幅较长,请自行百度。