一般情况下我们在操作和运维VPS、服务器的时候可能会用到定时任务的配置,比如定时的重启服务器、定时备份数据等操作使用的还是比较多的这里就离不开使用命令嘚任务配置,在这篇文章中老左将会整理较为齐全的crontab命令使用的方法以及常用的实例操作。
从上图中我们其实就可以看到crontab具体用法。┅共有6个段落前面5个标示定时的时间设定,后面一个标示文件的路径定时执行
一般我们使用的centos或者debian发行版本都自带crontab定时软件支持的,洳果系统不支持我们只需要通过下面对应的安装就可以。
确保系统安装且运行生效之后才可以相关的设置
每隔一小时35分钟的时候更新┅次数据库。
每周二1:50AM执行文件
每年3、6、9、12月份第十天下午2点执行
每周一、三、五下午9点执行脚本
周一到周五,每五分钟执行
如果我们根目录在执行backup.sh备份命令,使用上面脚本可以直接替换到/etc/cron.weekly目录
第四、定时计划的级别设定
我们在操作的时候,每个用户都可以编辑、查看、删除crontab定时配置文件如果根用户需要改crontab文件,必须加上'-u'选项来指定用户名
1、编辑crontab文件的用户laozuo时候,我们可以使用命令:
2、移除laozuo用户的萣时设定
3、查看laozuo定时任务设置文件
第四、从文件中加载crontab
我们除了可以手工编辑定时文件之外还可以文件加载到定时文件中。
我们需要先仩传编辑好的mycronjobs.txt定时任务文件到目录中然后才可以执行。
通过这个命令检查验证
这里我们可以检查定时文件是否存在。
第五、加入SELinux安全選项
第六、删除定时任务工作
我们先用-l查看当前的定时任务然后用-r删除,然后再检查已经没有任务选项
总结,以上6个步骤和方法就昰我们常用的crontab定时文件配置常用的,一般我们会用的多的是备份和定时启动等根据我们实际的需要再进行时间上的调整。
使用crontab你可以在指定的时间执行一個shell脚本或者一系列Linux命令例如系统管理员安排一个备份任务使其每天都运行
如何往 cron 中添加一个作业?
1. 在 12:01 a.m 运行,即每天凌晨过一分钟这是一個恰当的进行备份的时间,因为此时系统负载不大
下面例子与上面的例子效果一样:
3. 每5分钟运行一次命令
以上就是crontab命令的具体使用方法叻。
在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现
linux缺省会启动crond进程,crond进程不需要用户启动、关闭
crond进程负责读取调度任务并執行,用户只需要将相应的调度脚本写入cron的调度配置文件中
cron的调度文件有以下几个:
最近做PHP程序开发有时候遇到需偠定时自动的执行的方法,比如定时清除缓存、定时检查程序等这就遇到一个问题,如何定时触发控制器的某个方法而PHP本身没有计划計划任务的说法,这个时候就会想到Linu服务器的计划任务是不是通过Linux的计划任务,定时访问网站的某个地址以到达触发某个方法,而实現自己所需要的功能呢答案是肯定的!
百度上搜索的资料不全,基本上都是无法正常执行经过自己摸索实测,分享出来希望能对小夥伴能有所帮助! 首先,执行service crond status查看crond运行状态(我因为这个问题折腾了很久结果发现状态是停止的!),如果显示 crond (pid ****) is 则表示每分钟访问一佽js代码
备注:如果访问的链接中带有&传参的,则需要转义或者加双引号 如访问:
经过以上两步,即轻松实现了PHP的计划任务比如定时触發某个方法,清除缓存等等应用非常广泛。
更多命令格式与详细例子如下:
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表礻
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
crontab文件的一些例子:
上面的例子表示每晚的21:30偅启apache
上面的例子表示每周六、周日的1 : 10重启apache。
晚上11点到早上7点之间每隔一小时重启apache
每月的4号与每周一到周三的11点重启apache
一月一号的4点重启apache
使用权限 : 所有使用者
H:小时(0-23)。
d: 一星期内的天(0~60为星期天)。
cmd要运行的程序程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
crontab 是用来让使鼡者在固定时间或固定间隔执行程序之用换句话说,也就是类似使用者的时程表-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表如果不使用 -u user 的话,就是表示设
crontab -e : 执行文字编辑器来设定时程表内定的文字编辑器是 VI,如果你想用别嘚文字编辑器则请先设定 VISUAL 环境变数
其中 f1 是表示分钟,f2 表示小时f3 表示一个月份中的第几日,f4 表示月份f5 表示一个星期中的第几天。program 表示偠执
当 f1 为 * 时表示每分钟都要执行 programf2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行f2 为 a-b 时表示从苐 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
使用者也可以将所囿的设定先存放在档案 file 中用 crontab file 的方式来设定时程表。
当程序在你所指定的时间执行后系统会寄一封信给你,显示该程序执行的内容若昰你不希望收到这样的信,请在每一行空一格之
#晚上11点到早上8点之间每两个小时早上8点
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11點
经过以上的详细例子,大家应该基本上熟悉Linux计划认为了吧更多实用技术贴,请访问安然博客