at命令是一种Linux终端方法,用于在特定时间和日期安排一次性任务。计算机擅长自动化,但并不是每个人都知道如何让自动化发挥作用。尽管如此,能够在特定时间为计算机安排一项任务并且忘记它是一种真正的享受。也许你有一个文件要在特定时间上传或下载,或者你需要处理一批不存在但保证在特定时间存在的文件,或者需要一个监控设置,或者你只是需要一个友好的提醒,下班后在回家的路上买面包和黄油。这就是at命令的用途。Linuxat命令是什么?at命令是Linux终端中的一种方法,可让您在特定时间和日期安排一次性作业。这是一种自发的自动化,很容易在终端上实现。安装在Linux上,可能已经安装了at命令。您可以使用at-V命令验证它是否已安装。只要它返回一个版本号,你就知道你已经安装好了。$at-Vatversionx.y.z如果您尝试使用at但找不到该命令,大多数现代Linux发行版都会为您提供缺少的at包。您可能还需要启动名为atd的at守护进程。在大多数Linux系统上,您可以使用systemctl命令启用该服务并将它们设置为从现在开始自动启动:要运行,将打开交互式提示。您可以输入要在指定时间运行的命令。打个比方,您可以将此过程想象成一个日历应用程序,就像您在手机上使用的应用程序一样。首先,您在一天中的特定时间创建一个事件,然后指定您想要发生的事情。例如,尝试创建一个未来几分钟的任务,为自己计划一个提醒。这里运行一个简单的任务以减少失败的机会。要退出at提示,请按键盘上的Ctrl+D。$at11:20AMwarning:commandswillbeexecutedusing/bin/shat>echo"helloworld">~/at-test.txtat>job3atMonJul2611:20:002021如您所见,at使用了一个直观且自然的时间定义。您不需要使用24小时制,也不需要将时间转换为UTC或特定的ISO格式。通常,您可以使用自然想到的任何表示法,例如中午、下午1:30、13:37等,来描述您希望任务发生的时间。等待几分钟,然后在您创建的文件上运行cat或tac命令以验证您的任务是否已运行:$cat~/at-test.txtthelloworld使用at安排任务您不必使用at交互式提示安排任务。您可以使用echo或printf向它发送命令。在这个例子中,我使用现在表示法,我希望任务从现在开始延迟多少分钟:$echo"echo'helloagain'>>~/at-test.txt"|atnow+1minute一分钟后,验证new命令是否已经执行:$cat~/at-test.txtthelloworldhelloagaintimeexpressionat命令对时间的解释非常宽容。您可以在多种格式中进行选择,具体取决于哪种格式最适合您:YYMMDDhhmm[.ss](两位数的年、月、日、小时、分钟和可选的秒)CCYYMMDDhhmm[.ss](四位数的年份,month,day,hour,minute,andoptionalsecond)now(现在)midnight(午夜00:00)noon(中午12:00)teatime(下午16点)AM(上午)PMThe(下午)时间和日期可以是绝对的或带有加号(+)以使其相对于现在。指定相对时间时,可以使用您可能用过的词:minutes(分钟)hours(小时)days(天)weeks(周)months(月)years(年)time命令输入的时间和日期语法Lessforgivingthan日期。时间必须排在第一位,然后是日期,但日期默认为当前日期,并且仅当任务安排在未来某个日期时才需要。以下是一些有效表达式的示例:$echo"rsync-av/home/tuxme@myserver:/home/tux/"|at3:30AMtomorrow$echo"/opt/batch.sh~/Pictures"|at3:30AM08/01/2022$echo"echohello"|atnow+3days检查你的at队列当你喜欢at并且正在安排任务而不是在办公桌上的废纸上乱涂乱画时,你可能想检查你是否还有任务在队列中.要查看您的at队列,请使用atq命令:$atq10ThuJul2912:19:002021atux9TueJul2703:30:002021atux7TueJul2700:00:002021atux要从队列中删除任务,请使用atrm命令和任务编号。例如,要删除任务7:$atrm7$atq10ThuJul2912:19:002021atux9TueJul2703:30:002021atux要查看计划任务的实际内容,您需要查看/var/spool/at。只有root用户可以查看该目录的内容,因此您必须使用sudo来查看或cat任何任务的内容。在系统中使用Linux安排任务是避免忘记在当天晚些时候运行作业或在您离开时让计算机为您运行作业的好方法。与cron不同,它不需要任务从现在开始永远按计划运行,因此它的语法比cron简单得多。下次当你有一个小任务要让计算机记住和管理时,试试at命令。