计划任务的意义

计划任务

  创建和管理在指定时间自动执行的任务

注意事项

  要使任务计划在指定时间自动运行,计划任务的服务必须是启动的

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 计划任务分类   使用at命令调用atd进程设置在某个特定的时间,执行一次性任务   使用crontab命令调用crond进程,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务    

一次性计划任务

at命令   在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务   系统服务的名称:/etc/init.d/atd   设置格式:at [HH:MM] [yyyy-mm-dd]   atq命令   用途:查询当前设置的at任务列表   同at -l atrm命令:   用途:删除指定任务编号的at任务   格式:atrm 编号   同at -d   启动atd系统服务,并按Ctrl+D键提交任务
[root@localhost ~]# service atd start
启动 atd:                                               [确定]
[root@localhost ~]# at 23:45
at> reboot
at> <EOT>
job 1 at 2009-09-14 23:45
[root@localhost ~]# atq
1       2009-09-14 23:45 a root

  

at -c 任务号   查看计划任务的具体内容   at命令常用时间格式:   at [HH:MM]   at [HH:MM] [yyyy-mm-dd]   at now + 数字 [minutes|hours|days|weeks]   at 时间 -f 文件   使用文件中的命令作为计划任务   at now + 5 minutes -f /root/test.sh   at计划任务文件位置   /var/spool/at/a开头的文件   任务执行完毕,文件消失 at计划任务文件位置   /etc/at.deny :只有该名单里面的人不可以使用   /etc/at.allow :只有该名单里面的人可以使用  

周期计划任务

crontab命令   按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务   服务名称:/etc/init.d/crond 主要设置文件   用户定义的设置,位于文件:/var/spool/cron/用户名   配置文件的通常包含三个部分   注释   环境变量   cron命令     cron服务配置文件   位于文件:/etc/crontab   系统cron就在该文件定义,是为了维护系统能够正常运行的,任务的格式也和用户cron有点不同,多了一个username   crond计划任务里面的命令有时候可能不会执行,因为cron的环境变量PATH跟系统PATH不太一样,它的PATH的默认值为PATH=/sbin:/bin:/usr/sbin:/usr/bin,所以这就造成很多命令不能使用,所以解决的办法有两个,可以自己设定cron的PATH环境变量,也可以用命令的绝对路径,比如ls 我们可以使用 : /bin/ls cron服务的日志文件   位于文件:/var/log/cron   每小时、每天、每星期、每月定期执行的任务脚本分别存放在这些目录中
[root@localhost ~]# cat /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计划任务   编辑计划任务:crontab -e [-u 用户名]   查看计划任务:crontab -l [-u 用户名]   删除计划任务:crontab -r [-u 用户名]                 ————root用户可以管理指定用户的计划任务                     普通用户只能管理自己的计划任务   时间数值的特殊表示方法   * 表示该范围内的任意时间   , 表示间隔的多个不连续时间点   - 表示一个连续的时间范围   /n 指定间隔的时间频率 应用示例   0 17 * * 1- 5 周一到周五每天17:00   30 8 * * 1,3,5 每周一、三、五的8点30分   0 8-18 * * * 8点到18点整   0 12 */3 * * 每隔3天的12点整     示例(root用户): 每天早上7:50自动开启sshd服务,22点50时关闭 每隔5天的12点整清空一次FTP服务器公共目录/var/ftp/pub 每周六的7:30时,重新启动httpd服务 每周一、三、五的17:30时,打包备份/etc/httpd目录
[root@localhost root]# crontab -l
50 7 * * *  /sbin/service sshd start
50 22 * * *  /sbin/service sshd stop
0 12 */5 * *  /bin/rm -rf /var/ftp/pub/*
30 7 * * 6  /sbin/service httpd restart
30 17 * * 1,3,5  /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
 

 

周期计划任务注意事项

  资源分配不均   多个计划任务同时运行   安全检查   防止有非法计划任务   周和日、月不可同时并存   容易导致计划任务时间混乱

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄