简介 作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据 Schedule one-time tasks with at. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向 (1)一次性调度执行 at 1)程序安装 在软件所在目录 rpm -ivh at.x86_64 //安装 systemctl teatime tomorrow (teatime is 16:00) noon +4 days 5pm august 3 2018 (3)循环调度执行 cron 1 )简介 # systemctl status crond.service **系统级** 1)简介 系统级任务计划作用: 1.临时文件的清理 /tmp /var/tmp 2.系统信息的采集 sar 3.
RHEL6系统中默认已安装了at、crontab软件包,通过atd和crond这两个系统服务实现一次性、周期性计划任务的功能,并分别通过at、crontab命令进行计划任务设置。 计划任务分为一次性和循环性的计划任务 一、一次调度执行-----at 作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据 一次性调度执行 at---实战 语法格式 at at.jobs useradd u99 useradd u00 touch /a.txt [root@linux-server ~]# at 20:33 < at.jobs 例3: //编辑当前用户的计划任务 管理员可以使用 -u username, 去管理其他用户的计划任务 语法格式 : Minutes Hours Day-of-Month Month [root@linux-server ~]# crontab -r #删除当前用户的计划任务 [root@linux-server ~]# crontab -u jack -r #删除jack用户的计划任务
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展开的。 每天的第几个小时执行该任务 Day 每月的第几天执行该任务 Month 每年的第几个月执行该任务 DayOfWeek 每周的第几天执行该任务,0表示周日 Command 指定要执行的程序 、脚本或命令 3、 etc/init.d/crond restart Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart} 3) 30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段] 25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段 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 例子 at now+10 minutes #10分钟任务 at 5pm+3 days #3天下午5点任务 at>命令行 at> ctrl +d (退出) at -l #查看列表 at -c 2 #查看详细任务 at -d 2 #删除条目2的计划任务
我们可以通过一个叫“ logwatch ”的程序分析日志信息,在启动邮件服务的前提下,你的 root 老是会收到标题为 logwatch 的信件 3、建立 locate 的数据库: 有时候我们会通过locate HH:MM[am|pm] + number [minutes|hours|days|weeks] ex> now + 5 minutes 五分钟之后 ex> 04am + 3 三、周期执行的计划任务 相对于 at 是仅执行一次的工作,周期执行的计划任务则是由 crond这个系统服务来控制的。 如3:00 与 6:00 时,就是:0 3,6 * * * -(减号) 代表一段时间范围内,如:8 点到 12 点之间的每小时的 20 分都进行一项工作:20 8-12 * * * /n(斜线) n 代表数字 RANDOM_DELAY=45 #最大随机延迟时间,单位是分钟 # the jobs will be started during the following hours only START_HOURS_RANGE=3-
计划任务 计划任务指的是需要定时自动执行或周期执行的工作任务 linux系统中,可以通过cron和at两种命令实现计划任务 at 单次计划任务 指的是定时执行一次的计划任务,可以使用 at 命令完成 image.png 最小执行时间为每分钟 例如执行定期备份数据的脚本: 0 1 * * * root cd /etc/data_rsync && /usr/local/Anaconda3/bin/python 重启network服务 */30 18-23 * * * /usr/bin/systemctl restart network 每天18:00至23:00之间每隔30分钟重启network服务 3,15 8-11 */2 * * /usr/sbin/reboot 每隔两天的上午8点到11点的第3和第15分钟执行一次重启 30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/ systemctl restart smb 一月一号的4点重启smb 0 23-0/1,1-7/1 * * * /usr/bin/systemctl restart smb 0 23,0,1,2,3,4,5,6,7
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率 -e 表示编辑当前的crontab命令 -l 表示显示当前 crontab -r删除当前用户的crontab -i表示删除crontab时的命令 每分钟执行命令 command 每小时的第3和第 15分钟执行命令 3,15 * * * * commend 在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * command 没两天执行一次 3,15 8-11 */2
SchedulerFactoryBean,这个FactoryBean大致拥有以下的功能: 1)以更具Bean风格的方式为Scheduler提供配置信息; 2)让Scheduler和Spring容器的生命周期建立关联,相生相息; 3)
计划任务的分类: 一次性计划任务:只执行一次 周期性计划任务:每隔一定的周期去做相同的事情 设置计划任务的工具:at、crontab at:专门处理一次性的计划任务 crontab:专门定义周期性计划任务 2.2 时间表示法 特定值:给定时间点有效取值范围内的值 *:给定时间点上有效取值范围内的所有值,表示“每…” 离散取值:#,#,# 如:1,3,5 连续取值:#-# 如:1-5 在指定时间范围上, 1 * @annually 0 0 1 1 * @monthly 0 0 1 * * @weekly 0 0 * * 0 @daily 0 0 * * * @hourly 0 * * * * 示例:每3小时 echo和wall命令 0 */3 * * * centos /bin/echo “hello”;/usr/bin/wall “welcome to Magedu!” 字段1:如果在这些日子里没有运行这些任务…… 字段2:在重新引导后等待这么多分钟后运行它 字段3:任务识别器,在日志文件中标识 字段4:要执行的任务 由/etc/cron.hourly/0anacron
关于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 才是王道。 <? ', 'a'); // 打开 3aj.txt fwrite($fp, '你好啊,我来自 http://3aj.cn/php/89.html'); // 往 3aj.txt 写入信息 fclose
Linux上还是在Windows上都是不可或缺的,它帮助了我们运维人员减少手动操作的工作量;计划任务:scheduled task Linux下的任务调度分为两类:系统任务调度和用户任务调度。 nohup /root/for.sh & ---- 0x02 计划任务 at 命令 描述:用于在指定时间执行命令,允许使用一套相当复杂的指定时间的方法,它主要是在centos6以下才预装;(建议采用crontab * * * * command #每小时的第3和第15分钟执行 3,15 8-11 */2 * * command #每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 ,具体任务为输出test字符 @reboot echo test #表示每小时执行一次计划任务,具体任务 为输出test字符 @hourly echo test WeiyiGeek.示例2 补充入坑 (及特殊情况使计划任务中断或者未被执行的) 所以 anacron 并不能指定何时执行某项任务, 而是以天为单位或者是在开机后立刻进行 anacron 的动作,他会去侦测停机期间应该进行但是并没有进行的
#计划任务存储的位置 [root@JX01 ~]# ls /var/spool/cron/ root jack alice #管理计划任务的命令 crontab: -l Displays touch /root/`date +%F-%X`.txt 2 编排任务计划 [root@localhost ~]# crontab -e * * 1 1 * bash /crontab.sh 3 修改日期时间为1月2日3点4分 date 01020304 修改时间为1点2分3秒 date -s 01:02:03 4 监控当前目录 watch -n 0.5 'ls /root/*.txt' 5 根据服务自身的检测机制,去检查配置文件的语法 3. //轮转保留3次 create 0777 root root } [root@JX02 ~]# /usr/sbin/logrotate -f /etc/logrotate.conf //强制轮转日志
(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列表示小时1~23(0表示0点) 第3列表示日期 1~31 第4列表示月份1~12 第5列标识号星期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:删除该用户的计划任务设置 15分钟执行1次command 3,15 * * * * command # 在上午8点到11点的第3和第15分钟执行1次command 3,15 8-11 * * * command # 每隔2天的上午 8点到11点的第3和第15分钟执行1次command 3,15 8-11 */2 * * command # 每月1、10、22日的4 : 45执行1次command 45 4 1,10,22 * *
一次性计划任务:今晚23:30重启网站服务 周期性计划任务:每周一凌晨3:25 把/home/wwwroot 目录打包备份为 backup.tar.gz。 at Sat Sep 24 23:00:00 2022 [root@servera ~]# at -l # at -l 查看设置的一次性计划任务 3 Sat Sep 24 23:00:00 : [root@servera ~]# atrm 4 [root@servera ~]# at -l 3 Sat Sep 24 23:00:00 2022 a root 把计划任务写入 Shell * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot 在 crond 服务中需要同时包含多条计划任务的命令语句,应每行仅写一条。 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot 0 1 * * 1-5 /usr/bin/rm /tmp/* 删除 crond 计划任务则非常简单
命令, [tu bi] 的, ['ɛksɪ,kjʊtɪd] 执行 # 分 时 日 月 周 命令 1 * * * * # 每小时的第一分钟,小时:1分 如:1:01 2:01 3: 01 为等效于每小时,是属于时钟 # 星号(*) 代表所有可能的值 # 逗号(,) 列表范围: 1,2,3,4 # 中杠(-) 整数范围1到4: 1 每月的4号与每周一到周三的11点 mon 星期1; wed 星期3 # */1 * * * * root reboot 每分钟重启服务器 systemctl restart crond # 重启服务,开始执行计划任务
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表常用命令#服务开启service crond start#编辑计划任务crontab -e -u 用户名#查看计划任务crontab -l -u 用户名#删除计划任务:crontab -r -u 用户名相关文件我们可以在以下文件夹内找到相关配置文件:/var/spool/cron 默认情况下,crontab中执行的日志写在/var/log下,如:ls /var/log/cron*时间格式#时间格式如下:f1 f2 f3 f4 f5 program* * +-------------------- 小时 (0 - 23)+------------------------- 分钟 (0 - 59)#解释:#其中 f1 是表示分钟,f2 表示小时,f3 个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置所有命令需要写成绝对路径形式,如: /usr/local/bin/docker使用者也可以将所有的计划任务设定先存放在文件中
计划任务的安排方式分两种: 一种是定时性的,也就是例行。 Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956 pts/0 S+ 17:52 0:00 grep –color=auto atd 3. d 保存 job 3 at Mon May 13 15:20:00 2019 [root@localhost ~]# atq #查看计划任务 3 Mon May 13 15:20:00 # at 17:00 tomorrow 明天下午5点执行 [root@ken ~]# at 6:00 pm +3 days 在3天以后的下午6点执行 crontab定时任务的使用 语法:#crontab -u -e 常用选项: -l:list,列出指定用户的计划任务列表 -e:edit,编辑指定用户的计划任务列表 -u:user,指定的用户名,如果不指定,则表示当前用户 -r:remove,删除指定用户的计划任务列表
等等 作为一名懒癌晚期患者,应该有坚决抵制重复的工作的觉悟,所以本周的编程课堂教大家使用 windows 自带的 计划任务 功能定时运行 Python 脚本。 1、打开界面: windows7 下 开始→控制面板→系统和安全→管理工具→任务计划 windows10 在左下角搜索栏直接输入 计划任务 ? 3、设置触发器 如下图所示,在图中我们可以看到有 7 个选项,这里选择第一个 每天 作为讲解,其他选项读者可以根据自己的需要进行设置 ? 然后设置详细的时间与间隔日 ? 5、启动程序 这是计划任务中最关键的一步,设置的流程如下 ? 根据以上几步,想必聪明的读者已经发现了,当两部分的参数连起来就是 C:\python3\python.exe D:\temp\example.py p1 p2 是不是跟在 CMD 中手动输入的运行代码差不多