大家好,我是良旭。生活中,我们有太多的场景需要用到闹钟,比如早上7点起床、下午4点开会、晚上8点逛街等等。在Linux系统中,我们也有类似的需求。比如我们想在凌晨1点上传一个文件到服务器,或者晚上10点查看系统状态等等。但是我们不能一直守在电脑前。毕竟我们也要下班/睡觉,还要陪闺蜜(新人也行)。而且即使是上班时间,如果时间到了,还需要人工操作,效率太低了。at命令就是为了这种需要而诞生的。使用at命令可以在特定的时间自动完成你设定的任务,还可以自动完成,非常方便快捷!安装at命令一般来说,大多数Linux发行版都已经安装了at命令。如果不确定,可以使用at-V命令查看。如果有版本返回,说明at命令可以正常使用。$at-Vat版本3.1.13您可能还需要启动名为atd的at守护程序。在大多数Linux系统上,您可以使用systemctl命令启用atd服务并将它们设置为从现在开始自动启动:$sudosystemctlenable--nowatdat命令基本用法语法at[option][datetime]option-f包含具体指令的任务文件-q:指定新任务的队列名称-l:显示要执行的任务列表-d:删除指定要执行的任务-m:发送邮件给用户taskisexecutedparameterdateandtime:指定任务执行的日期和时间使用at命令交互调度任务想一想,我们平时是如何使用闹钟这个工具的呢?首先我们在闹钟软件上点击加号,然后设置时间,然后在备注里输入闹钟的用途。使用at命令以交互方式调度任务也是如此。首先你输入at命令,然后跟上具体的时间。回车后会进入交互界面,可以输入具体要做的事情(命令),最后用结束输入,任务就设置好了。比如你想在上午11点20分在at-test.txt文件中写一句helloworld,你可以这样交互输入:$at11:20AMwarning:commandswillbeexecutedusing/bin/shat>??echo"helloworld">~/at-test.txtat>job3atMonJul2611:20:002021如上所示,at命令使用直观自然的时间格式。您不需要知道24小时制或将时间转换为UTC。通常直接用我们生活中常用的词就可以理解,比如noon,1:30PM,13:37等,11:20之后可以使用cat命令查看是否有写入的内容在at-test.txt文件中:$cat~/at-test.txtthelloworld使用at命令来调度任务如果你不想使用交互方式来at命令来安排任务,可以使用pipe来将echo或printf的值传递给at命令。例如,我想在一分钟后将helloagain语句写入at-test.txt文件:$echo"echo'helloagain'>>~/at-test.txt"|atnow+1minuteoneminutelater,验证新命令已经执行:$cat~/at-test.txtthelloworldhelloagaintimeexpression前面提到,at命令使用的是我们日常生活中使用的时间格式,这非常方便:YYMMDDhhmm[.ss](缩写年、月、日、小时、分钟[秒])CCYYMMDDhhmm[.ss](完整的年、月、日、小时、分钟和[秒])4pm)AMPM时间和日期可以是绝对时间,您也可以添加加号(+)使它们相对于现在。指定相对时间时可以使用以下日常用语:minuteshoursdaysweeksmonthsyears以下是at命令的一些有效表达式示例:$echo"rsync-av/home/tuxme@myserver:/home/tux/"|明天凌晨3:30$echo"/opt/batch.sh~/Pictures"|2022年1月8日凌晨3:30$echo"echohello"|atnow+3days随时查看at任务队列随着时间的推移,我们可以忘记at命令队列中设置了多少任务。如果要查看,可以使用atq命令:$atq10ThuJul2912:19:002021atux9TueJul2703:30:002021atux7TueJul2700:00:002021atux来去除队列中的任务,请使用带有任务编号的atrm命令。例如删除任务7:$atrm7$atq10ThuJul2912:19:002021atux9TueJul2703:30:002021atux如果要查看定时任务的具体内容,必须查看阀芯。只有root用户可以查看spool,所以必须使用sudo查看spool或cat任务的内容。总结at命令是避免忘记将来某个时间的任务或让计算机在您离开时为您运行任务的好方法。与cron命令不同,它不需要从现在开始循环执行任务,因此它的语法比cron的简单得多。下次你想在下班后要求系统为你做某事时,试试at命令吧。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以加入我的行列,把这本电子书做得更加完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员进阶架构师必备资源免费书单|程序员必读经典书籍清单(高清PDF版))