RHEL6系统中默认已安装了at、crontab软件包,通过atd和crond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontab命令进行计划任务设置。 计划任务分为一次性和循环性的计划任务 一、一次调度执行-----at 作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据 一次性调度执行 at---实战 语法格式 at //编辑当前用户的计划任务 管理员可以使用 -u username, 去管理其他用户的计划任务 语法格式 : Minutes Hours Day-of-Month Month 00 02 1 * * ls #每月1号2:00整 00 02 14 2 * ls #每年2月14号2:00整 00 02 * * 7 ls #每周日2:00整 00 02 * 6 5 ls #每年6月的周五2
at 属于一次性的计划任务 at 时间 命令脚本 ctrl+d 提交 atq at -l 查看计划任务 at -d N 删除计划任务 /var/spool/at 配置文件在/etc/at.deny /etc/at.allow 优先级高于deny crontab 周期性计划任务 crontab -l 查询计划任务 crontab -l -u Tom crontab -e 添加计划任务 时间格式
另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令:crontab命令。因此,Linux计划任务整体还是围绕Crontab展开的。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率 ,例如“0-23/2”表示每两小时执行一次。 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1 我们不难看出Linux计划任务的核心还是Linux crontab 命令,通过Linux crontab Linux计划任务和Windows计划任务还是有一定的差异的,Linux系统更加专业化,对使用者的要求更高。
计划任务 crontab、at * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 (每分钟用或者 /1表示,*/5 代表每5分钟) 第2列表示小时1~23(0表示0点) 第3列表示日期1 ~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令 实用命令 crontab -l #查看计划任务列表 crontab -e #进入编辑计划任务模式 grep var/spool/cron/目录中,文件以用户名命名. linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内 at计划任务 #查看详细任务 at -d 2 #删除条目2的计划任务
2、日志文件分析 logwatch 的任务: 如果系统发生了问题等,绝大部分的错误信息都会被记录到日志文件中, 因此系统管理员的重要任务之一就是分析日志。 [root@zutuanxue ~]# atq [root@zutuanxue ~]# atrm 工作编号 [root@zutuanxue at]# atq 2 Fri Feb 21 16:00: 00 2020 a root # 在 2020-02-21 的 16:00 有一项工作,该项工作是root设置的,工作编号为2 [root@zutuanxue ~]# atrm 2 [root@zutuanxue 2、batch:系统有空时才进行后台任务 batch是at的一个辅助工具,也是利用at进行工作的,只是加入一些判断功能。它会在 CPU 的工作负载小于 0.8 的时候,才执行指定的工作! 这个程序可以使CPU 的使用率持续达到 100% , 但是 CPU 的负载接近与1,因为 CPU 仅负责一个工作,而我同时运行了两个这样的程序,那么 CPU 的使用率还是 100% ,但是工作负载则变成 2
Linux 中有时会遇到需要定时自动执行任务的情况,本文记录Linux 计划任务相关命令。 计划任务 计划任务指的是需要定时自动执行或周期执行的工作任务 linux系统中,可以通过cron和at两种命令实现计划任务 at 单次计划任务 指的是定时执行一次的计划任务,可以使用 at 命令完成 (相当于一个空的/etc/at.allow文件) cron 周期性任务计划 命令用法 命令选项 含义 -e 编辑计划任务 edit -l 查看计划任务 display -u 指定用户 user -r 删除计划任务 remove 命令示例 配置生效 配置完计划任务后需要重启 cron 服务来使得改动生效 * * * * * user-name command image.png 分钟更新一次仓库 */2 * * * * /home/vvd/update.sh 重启计划任务服务: sudo systemctl restart cron.service 确认效果:
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率 ,例如“0-23/2”表示每两小时执行一次。 15分钟执行命令 3,15 * * * * commend 在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * command 没两天执行一次 3,15 8-11 */2
概括来说它提供了两方面的支持: 1)为Quartz的重要组件类提供更具Bean风格的扩展类; 2)提供创建Scheduler的BeanFactory类,方便在Spring环境下创建对应的组件对象,并结合 为此,Spring提供SchedulerFactoryBean,这个FactoryBean大致拥有以下的功能: 1)以更具Bean风格的方式为Scheduler提供配置信息; 2)让Scheduler
计划任务的分类: 一次性计划任务:只执行一次 周期性计划任务:每隔一定的周期去做相同的事情 设置计划任务的工具:at、crontab at:专门处理一次性的计划任务 crontab:专门定义周期性计划任务 ,周期性循环做任务 batch:系统自行选择空闲时间去执行指定的任务 一.一次性计划任务at 系统服务路径:/etc/init.d/atd # root @ duiyi in ~ [20:24:36] ,若2点已过,则明天2点执行 at 02:00 2019-08-22 #2019年8月22号2点执行该项任务 at now +1 minutes/hours/days/weeks 每5小时执行一次任务 2/5 * * * root /bin/echo “hello world!” 从2点开始,每5小时执行一次任务,下一天的2点继续执行 */5 2 * * * root /bin/echo “hello world!”
关于crontab的使用,可参考文章:Linux计划任务crontab详解 一、在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP */10 * * * * /usr/bin/wget -q -O temp.txt http://3aj.cn/script.php 再介绍一下在Windows下php计划任务的实现 1、新建一个3aj.php > 2、新建3aj.bat文件,内容如下: C:\php\php.exe -q D:\web\3aj.php 3、建立WINDOWS计划任务: 开始–>控制面板–>任务计划–>添加任务计划 浏览文件夹选择上面的 4、右键点击计划任务 -> “运行”即可 再介绍一个使用php程序来实现的计划任务 这种效率并不高,也不稳定,使用 crontab 才是王道。 <?
): top # 按下crtl+z快捷键后,放在后台暂停 描述:程序计划任务是非常重要的不论是在Linux上还是在Windows上都是不可或缺的,它帮助了我们运维人员减少手动操作的工作量;计划任务 添加计划任务(三天后的下午执行/bin/ls) $at 5pm+3 days at> /bin/ls at> <EOT> job 7 at 2013-01-08 17:00 #示例3.明天17点钟, ,具体任务为输出test字符 @reboot echo test #表示每小时执行一次计划任务,具体任务 为输出test字符 @hourly echo test WeiyiGeek.示例2 补充入坑 描述: 老版的cron计划任务,日志输出到解决办法/var/log/syslog 解决办法: 定时任务尾部增加重定向输出到log的参数,例:>/var/log/cron.log 2>&1 问题6.docker (及特殊情况使计划任务中断或者未被执行的) 所以 anacron 并不能指定何时执行某项任务, 而是以天为单位或者是在开机后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的
#计划任务存储的位置 [root@JX01 ~]# ls /var/spool/cron/ root jack alice #管理计划任务的命令 crontab: -l Displays 00 02 * * * ls //每天2:00整 00 02 1 * * ls //每月1号2:00整 00 02 14 2 * ls //每年2月14号2:00整 00 02 * * 7 ls //每周日2:00整 00 02 * 6 5 ls //每年6月的周五2:00整(特殊) 00 02 14 * 7 ls //每月14号2:00整 或者 每周日2:00整,这两个时间都执行 00 02 14 2 7 ls //每年2月14号2:00整 或者 每周日2:00整,这两个时间都执行 00 02 * * * ls //每天2:00整 * 02 * * * ls //每天2:00 * * ls //每月1,5,8号的2:00整 00 02 1-8 * * ls //每月1到8号的2:00整 00 02 * 1-10 * ls #测试计划任务的执行效果 1 编写执行脚本. vim
(1)我们要用yum install -y vixie-cron这个命令进行安装计划任务服务,小伙伴们可以在安装之前使用crontab -e进行检测一下,服务器是否安装了这个服务! (2)安装之后呢,我们使用crontab -e 就可以添加我们的计划任务了,我给大家书写一些小例子: */1 * * * * /usr/bin/curl -o temp.txt http://www.baidu.com (下面是对上面的解释): * * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时 0~6(0表示星期天) 第6列要运行的命令 (3)编好文件之后,按ESC键,之后(:wq)保存退出 (4)service crond restart 重启计划任务
Linux计划任务分为两类: 1、单次按计划执行,然后终止(at) 2、例行按计划执行,每隔一定周期循环执行(crontab) 单次执行计划任务 at at 命令的作用是在一个指定的时间执行1个指定任务 crontab 循环执行计划任务是由 cron(crond)这个系统服务来控制的,该服务默认启动,用户控制计划任务的命令是 crontab crontab -e 是针对用户来设计的,如要设计系统的计划任务 ,则需编辑 /etc/crontab cron 服务最低检测限制是【分钟】 命令格式: crontab 选项 # 选项 -e:编辑该用户的计划任务设置 -l:列出该用户的计划任务设置 -r:删除该用户的计划任务设置 ” 中杠(-):整数之间的中杠表示整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):正斜线指定时间的间隔频率,可以和星号一起使用,例如*/10,如用在minute表示每10分钟执行1次 &1 即可,如: 1 * * * * command > /dev/null 2>&1 crontab 命令的其它示例 # 列出该用户的计划任务设置 crontab -r # 删除该用户的计划任务设置
计划任务分为一次性计划任务与长期性计划任务,可以按照如下方式理解。 一般我们会使用“at now +2 MINUTE”的方式进行操作,这表示 2 分钟(MINUTE)后执行这个任务,也可以将其替代成小时(HOUR)、日(DAY)、月(MONTH)等词汇: [root@servera ~]# at now +2 MINUTE #两分钟后的一次性计划任务 warning: commands will be executed using /bin/sh at> systemctl restart 创建、编辑计划任务的命令为 crontab -e,查看当前计划任务的命令为 crontab -l,删除某条计划任务的命令为 crontab -r。 可以使用 crontab -e 命令来创建计划任务,为自己创建计划任务时无须使用-u 参数。
# 查看系统日志 ls /etc/ | grep cron* # 过滤cron 任务路径 cron.d # 同路径2 kəˈmænd] 命令, [tu bi] 的, ['ɛksɪ,kjʊtɪd] 执行 # 分 时 日 月 周 命令 1 * * * * # 每小时的第一分钟,小时:1分 如:1:01 2: 01 3:01 为等效于每小时,是属于时钟 # 星号(*) 代表所有可能的值 # 逗号(,) 列表范围: 1,2,3,4 # 中杠(-) 整数范围1 到4: 1-4 # 正斜线(/) 时间的间隔频率: 0-23/2 每两个小时执行一次 5 * * * * Command 每小时的第 # */1 * * * * root reboot 每分钟重启服务器 systemctl restart crond # 重启服务,开始执行计划任务
计划任务的安排方式分两种: 一种是定时性的,也就是例行。 4、删除计划任务 [root@localhost ~]# at 16:11 at> touch /home/he/ttt.txt at> <EOT> job 2 at Mon May 13 16:11: 00 2019 [root@localhost ~]# atq 2 Mon May 13 16:11:00 2019 a root #获取任务编号。 [root@localhost ~]# atrm 2 [root@localhost ~]# atq [root@localhost ~]# 现在你会发现已经没有这个任务编号了。 6点执行,则可以在时的位置写:1,2,6 [root@localhost ~]# crontab -e 输入上面的命令编辑定时任务,相当于打开了一个vim编辑器。
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表常用命令#服务开启service crond start#编辑计划任务crontab -e -u 用户名#查看计划任务crontab -l -u 用户名#删除计划任务:crontab -r -u 用户名相关文件我们可以在以下文件夹内找到相关配置文件:/var/spool/cron #当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推#当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 ,这些工作可由每个用户自行设置所有命令需要写成绝对路径形式,如: /usr/local/bin/docker使用者也可以将所有的计划任务设定先存放在文件中,用 crontab file 的方式来设定执行时间在 点 20 分, 4 点 20 分....执行 echo "haha":20 0-23/2 * * * echo "haha"下面再看看几个具体的例子:0 */2 * * * /sbin/service
defender有一些计划任务,还有其他一些计划任务(diskcleanup等)冷不丁跑起来可能影响业务,可以自行评估是否要关闭,powershell命令仅供参考:Get-ScheduledTask - Microsoft\Windows\DiskFootprint\","\Microsoft\Windows\Windows Defender\","\Microsoft\Windows\Maintenance\" 2> $null | Disable-ScheduledTask 2>$null图片图片
等等 作为一名懒癌晚期患者,应该有坚决抵制重复的工作的觉悟,所以本周的编程课堂教大家使用 windows 自带的 计划任务 功能定时运行 Python 脚本。 1、打开界面: windows7 下 开始→控制面板→系统和安全→管理工具→任务计划 windows10 在左下角搜索栏直接输入 计划任务 ? 2、创建基本任务 在名称栏和描述栏简单填写一下信息即可 ? 3、设置触发器 如下图所示,在图中我们可以看到有 7 个选项,这里选择第一个 每天 作为讲解,其他选项读者可以根据自己的需要进行设置 ? 5、启动程序 这是计划任务中最关键的一步,设置的流程如下 ? 另外这里的 p1,p2 是命令行参数,根据实际情况设置。 6、点击完成按钮,结束设置 ?