有经验的系统运维工程师可以让Linux在指定时间内自动启用或停止某些服务或命令,无需人为干预,从而实现流畅的运维自动化。虽然我们现在有了一个强大的脚本程序来执行一些批处理工作,但是如果我们还需要每天凌晨2点敲键盘上的回车键来执行这个脚本程序,那简直太痛苦了(的当然,没有你的小猫可以训练半夜敲回车)。下面给大家讲解一下如何设置服务器的定时任务服务,将周期性、定时性的工作交给系统自动完成。计划任务分为一次性计划任务和长期计划任务,可以这样理解。一次性计划任务:今晚11:30开始网站服务。长期计划任务:每周一凌晨3点25分将/home/wwwroot目录打包备份为backup.tar.gz。顾名思义,一次性定时任务只执行一次,一般用于临时工作需要。我们可以使用at命令来实现这个功能,只需要写成“attime”的形式即可。如果要查看已经设置但还没有执行的一次性定时任务,可以使用“at-l”命令;如果你想删除它,你可以使用“atrmtasknumber”。使用at命令设置一次性定时任务时,默认使用交互方式。例如,使用如下命令设置系统在今晚23:30自动重启网站服务。[root@linuxprobe~]#at23:30at>systemctlrestarthttpdat>这里请同时按Ctrl+d结束写入计划任务job3atMonApr2723:30:002015[root@linuxprobe~]#at-l3MonApr2723:30:002016aroot<以上代码可复制粘贴,向左滑动>如果想挑战更难但更简单的方法,可以把管道符号(任意门)在两个命令之间,让at命令接收前一个echo命令的输出信息,从而达到以非交互的方式创建计划的一次性任务的目的。[root@linuxprobe~]#echo"systemctlrestarthttpd"|at23:30job4atMonApr2723:30:002015[root@linuxprobe~]#at-l3MonApr2723:30:002016aroot4MonApr2723:30:002016aroot<以上代码可以复制粘贴,可以向左滑动>如果我们不小心设置了两个一次性定时任务,我们可以使用下面的命令轻松删除其中一个:[root@linuxprobe~]#atrm3[root@linuxprobe~]#at-l4MonApr2723:30:002016aroot<以上代码可复制粘贴,向左滑动即可>如果我们想让Linux系统周期性的定时执行某些特定任务的高效,Linux系统默认开启的crond服务简直完美。创建和编辑定时任务的命令是“crontab-e”,查看当前定时任务的命令是“crontab-l”,删除定时任务的命令是“crontab-r”。另外,如果你以管理员身份登录系统,你可以在crontab命令中加上-u参数来编辑别人的定时任务。在正式部署计划任务之前,请阅读公式“分钟、小时、天、月和周的命令”。这是使用crond服务设置任务的参数格式。需要注意的是,如果有些字段没有设置,需要用星号(*)来放置。使用crond设置任务的参数格式使用crond设置任务的参数字段描述字段描述分钟是0到59的整数小时是0到23的任意整数日期是1到31的任意整数月是1的任意整数到12。week的值是0到7之间的任意整数,其中0和7是在Sunday命令上要执行的命令或程序脚本。假设每周一、三、五凌晨3点25分需要使用。tar命令将某个网站的数据目录打包为备份文件。我们可以使用crontab-e命令来创建定时任务。您不需要使用-u参数为自己创建计划任务。具体实现效果的参数见crontab-l命令的结果:[root@linuxprobe~]#crontab-enocrontabforroot-usinganemptyonecrontab:installingnewcrontab[root@linuxprobe~]#crontab-l253**1,3,5/usr/bin/tar-czvfbackup.tar.gz/home/wwwroot<以上代码可以复制粘贴,可以向左滑动>需要说明的是,除了用逗号(,)表示多个时间段外,例如“8,9,12”表示八月、九月和十二月。也可以使用减号(-)来表示连续的时间段(例如,如果“day”字段的值为“12-15”,则表示每个月的12日至15日)。并用除号(/)表示执行任务的间隔(例如“*/2”表示每2分钟执行一次任务)。如果cron服务需要同时包含多条定时任务的命令语句,每行只写一条命令语句。比如我们再添加一个定时任务,它的作用是每周一到周五凌晨1点自动清除/tmp目录下的所有文件。特别需要注意的是,在crond服务的定时任务参数中,所有的命令都要写成绝对路径的形式。如果不知道绝对路径,请使用whereis命令查询。rm命令的路径在下面部分的输出信息中是加粗的。[root@linuxprobe~]#whereisrmrm:/usr/bin/rm/usr/share/man/man1/rm.1.gz/usr/share/man/man1p/rm.1p.gz[root@linuxprobe~]#crontab-ecrontab:安装新的crontab[root@linuxprobe~]#crontab-l253**1,3,5/usr/bin/tar-czvfbackup.tar.gz/home/wwwroot01**1-5/usr/bin/rm-rf/tmp/*<以上代码可以复制粘贴,可以向左滑动>总结一下,说一下工作中使用规划服务的注意事项。在crond服务的配置参数中,可以像shell脚本一样写以#号开头的注释信息,方便以后查看这段命令代码时,可以快速了解其功能、需求以及重要信息如作者。定时任务中的“分钟”字段必须有值,不能为空或*,“日”和“周”字段不能同时使用,否则会发生冲突。以上就是良虚教程网为各位小伙伴分享的linux中at和crontab命令的使用方法。以上就是良序教程网为各位小伙伴们分享的Linux相关知识。
