- at :at 是个可以处理仅运行一次就结束排程的命令,不过要运行 at 时, 必须要有 atd 这个服务 (第十八章) 的支持才行。在某些新版的 distributions 中,atd 可能默认并没有启动,那么 at 这个命令就会失效呢!
- crontab :crontab 这个命令所配置的工作将会循环的一直进行下去! 可循环的时间为分钟、小时、每周、每月或每年等。crontab 除了可以使用命令运行外,亦可编辑 /etc/crontab 来支持。 至於让 crontab 可以生效的服务则是 crond 这个服务喔!
[root@www ~]# /etc/init.d/atd restart 正在停止 atd: [ 确定 ] 正在启动 atd: [ 确定 ] # 再配置一下启动时就启动这个服务,免得每次重新启动都得再来一次! [root@www ~]# chkconfig atd on
- 我们使用 at 这个命令来产生所要运行的工作,并将这个工作以文字档的方式写入 /var/spool/at/ 目录内,该工作便能等待 atd 这个服务的取用与运行了
- at 的工作情况其实是这样的:
- 先找寻 /etc/at.allow 这个文件,写在这个文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在 at.deny 当中);
- 如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 这个文件,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 文件中的使用者,就可以使用 at 咯;
- 如果两个文件都不存在,那么只有 root 可以使用 at 这个命令。
[root@www ~]# at [-mldv] TIME [root@www ~]# at -c 工作号码 选项与参数: -m :当 at 的工作完成后,即使没有输出信息,亦以 email 通知使用者该工作已完成。 -l :at -l 相当於 atq,列出目前系统上面的所有该使用者的 at 排程; -d :at -d 相当於 atrm ,可以取消一个在 at 排程中的工作; -v :可以使用较明显的时间格式列出 at 排程中的工作列表; -c :可以列出后面接的该项工作的实际命令内容。 TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,格式有: HH:MM ex> 04:00 在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。 HH:MM YYYY-MM-DD ex> 04:00 2009-03-17 强制规定在某年某月的某一天的特殊时刻进行该工作! HH:MM[am|pm] [Month] [Date] ex> 04pm March 17 也是一样,强制在某年某月某日的某时刻进行! HH:MM[am|pm] + number [minutes|hours|days|weeks] ex> now + 5 minutes ex> 04pm + 3 days
- 先找寻 /etc/at.allow 这个文件,写在这个文件中的使用者才能使用 at ,没有在这个文件中的使用者则不能使用 at (即使没有写在 at.deny 当中);
-
-
-
-
-
就是说,在某个时间点『再加几个时间后』才进行。
范例一:再过五分钟后,将 /root/.bashrc 寄给 root 自己 [root@www ~]# at now + 5 minutes <==记得单位要加 s 喔! at> /bin/mail root -s "testing at job" < /root/.bashrc at> <EOT> <==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束! job 4 at 2009-03-14 15:38 # 上面这行资讯在说明,第 4 个 at 工作将在 2009/03/14 的 15:38 进行! # 而运行 at 会进入所谓的 at shell 环境,让你下达多重命令等待运行! 范例二:将上述的第 4 项工作内容列出来查阅 [root@www ~]# at -c 4 #!/bin/sh <==就是透过 bash shell 的啦! # atrun uid=0 gid=0 # mail root 0 umask 22 ....(中间省略许多的环境变量项目).... cd /root || { <==可以看出,会到下达 at 时的工作目录去运行命令 echo 'Execution directory inaccessible' >&2 exit 1 } /bin/mail root -s "testing at job" < /root/.bashrc # 你可以看到命令运行的目录 (/root),还有多个环境变量与实际的命令内容啦! 范例三:由於机房预计於 2009/03/18 停电,我想要在 2009/03/17 23:00 关机? [root@www ~]# at 23:00 2009-03-17 at> /bin/sync at> /bin/sync at> /sbin/shutdown -h now at> <EOT> job 5 at 2009-03-17 23:00 # 您瞧瞧! at 还可以在一个工作内输入多个命令呢!不错吧!
- atrm 5 用来删除atq查询出来的第5个任务
- 他会在 CPU 工作负载小於 0.8 的时候,才进行你所下达的工作任务啦!
at命令
最新推荐文章于 2025-09-11 20:22:26 发布
