Linux 在shell脚本中使用at命令调度命令

Linux 在shell脚本中使用at命令调度命令,linux,shell,unix,Linux,Shell,Unix,我正在尝试使用“at”命令的特性来计划在某个用户定义的时间执行任何特定命令。想知道是否可以使用“at”命令。我希望“at”可以帮助我,因为我没有安排cron任务的特权 我尝试过的事情: user>touch testfile |at 03:00 job 30 at 2014-12-31 03:00 user>ls -lrt testfile -rw-rw-r-- 1 user group 0 Dec 31 02:59 testfile <-----file cr

我正在尝试使用“at”命令的特性来计划在某个用户定义的时间执行任何特定命令。想知道是否可以使用“at”命令。我希望“at”可以帮助我,因为我没有安排cron任务的特权

我尝试过的事情:

user>touch testfile |at 03:00  
job 30 at 2014-12-31 03:00  
user>ls -lrt testfile  
-rw-rw-r--  1 user group 0 Dec 31 02:59 testfile  <-----file created with command execution  
user>  

user> touch testfile1 | at -f 03:01
Garbled time
user>ls -lrt testfile*
-rw-rw-r--  1 user group 0 Dec 31 02:59 testfile
-rw-rw-r--  1 user group 0 Dec 31 02:59 testfile1
user>在03:00触摸测试文件|
2014年12月31日03:00第30次作业
用户>ls-lrt测试文件
-rw-rw-r--1用户组0 Dec 31 02:59测试文件
用户>触摸测试文件1 | at-f 03:01
乱码时间
用户>ls-lrt测试文件*
-rw-rw-r--1用户组0 Dec 31 02:59测试文件
-rw-rw-r--1用户组0 Dec 31 02:59 testfile1
使用:

您正在立即运行
触摸testfile
,并将其输出传送到
at
。在处输入的
应该是要运行的命令,而不是命令的输出

如果要运行多个命令,请使用here doc:

at 03:00 <<EOF
touch testfile
touch testfile1
EOF

03:00将
at
命令设置为在指定时间运行后,可以使用
atq
命令检查队列中计划运行的内容。这允许少量确认系统至少打算运行您的命令。当您没有cron权限时,您也不应该有“at”权限。在使用at制定解决方案之前,请询问您的系统管理员有关安全策略的信息:他们将来是否会撤销您对“at”的权限?我更喜欢为cron授予权限,因为这使sysop的事情变得清晰(否则您可能会编写自己的cron进程,其中包含sleeps…)感谢您的警告,我将获得sysop对此的看法。
at 03:00 <<EOF
touch testfile
touch testfile1
EOF