要使用单一工作调度时, 我们的 Linux 系统上面必须要有负责这个调度的服务, 那就是 atd 这个玩意儿。 不过并非所有的 Linux distributions 都默认会把他打开的, 所以呢, 某些时刻我们必须要手动将他启用才行。 启用的方法很简单, 就是这样:
[root@study ~]# systemctl restart atd # 重新启动 atd 这个服务
[root@study ~]# systemctl enable atd # 让这个服务开机就自动启动
[root@study ~]# systemctl status atd # 查阅一下 atd 目前的状态
atd.service - Job spooling tools
Loaded: loaded ( /usr/lib/systemd/system/atd.service; enabled) # 是否开机启动
Active: active ( running) since Thu 2015-07-30 19:21:21 CST; 23s ago # 是否正在运行中
Main PID: 26503 ( atd)
CGroup: /system.slice/atd.service
└─26503 /usr/sbin/atd -f
Jul 30 19:21:21 study.centos.vbird systemd[1]: Starting Job spooling tools...
Jul 30 19:21:21 study.centos.vbird systemd[1]: Started Job spooling tools.
重点就是要看到上表中的特殊字体, 包括“ enabled ”以及“ running ”时, 这才是 atd 真的有在运行的意思喔! 这部份我们在第十七章会谈及。
at 的运行方式
既然是工作调度, 那么应该会有产生工作的方式, 并且将这些工作排进行程表中啰! OK! 那么产生工作的方式是怎么进行的? 事实上, 我们使用 at 这个指令来产生所要运行的工作, 并将这个工作以文本文件的方式写入 /var/spool/at/ 目录内, 该工作便能等待 atd 这个服务的取用与执行了。 就这么简单。
不过, 并不是所有的人都可以进行 at 工作调度喔! 为什么? 因为安全的理由啊~ 很多主机被所谓的“绑架”后, 最常发现的就是他们的系统当中多了很多的怪客程序 ( cracker program) , 这些程序非常可能运用工作调度来执行或蒐集系统信息, 并定时的回报给怪客团体! 所以啰, 除非是你认可的帐号, 否则先不要让他们使用 at 吧! 那怎么达到使用 at 的列管呢?
我们可以利用 /etc/at.allow 与 /etc/at.deny 这两个文件来进行 at 的使用限制呢! 加上这两个文件后, at 的工作情况其实是这样的:
1. 先找寻 /etc/at.allow 这个文件, 写在这个文件中的使用者才能使用 at , 没有在这个文件中的使用者则不能使用 at ( 即使没有写在 at.deny 当中) ;
2. 如果 /etc/at.allow 不存在, 就寻找 /etc/at.deny 这个文件, 若写在这个 at.deny 的使用者则不能使用 at , 而没有在这个 at.deny 文件中的使用者, 就可以使用 at 咯;
3. 如果两个文件都不存在, 那么只有 root 可以使用 at 这个指令。
通过这个说明, 我们知道 /etc/at.allow 是管理较为严格的方式, 而 /etc/at.deny 则较为松散( 因为帐号没有在该文件中, 就能够执行 at 了) 。 在一般的 distributions 当中, 由于假设系统上的所有用户都是可信任的, 因此系统通常会保留一个空的 /etc/at.deny 文件, 意思是允许所有人使用 at 指令的意思 ( 您可以自行检查一下该文件) 。 不过, 万一你不希望有某些使用者使用 at 的话, 将那个使用者的帐号写入 /etc/at.deny 即可! 一个帐号写一行。