下载
第3章 后台执行命令
当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还
有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,你可能希望它能够在
每天的非负荷高峰时间段运行。为了使这些进程能够在后台运行,也就是说不在终端屏幕上
运行,有几种选择方法可供使用。
在本章中我们将讨论:
• 设置c r o n t a b文件,并用它来提交作业。
• 使用a t命令来提交作业。
• 在后台提交作业。
• 使用n o h u p命令提交作业。
名词解释:
cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月
中的不同时段运行。
At at命令。使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时
间段或高峰负荷时间段运行。
& 使用它在后台运行一个占用时间不长的进程。
Nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响。
3.1 cron和crontab
c r o n 是系统主要的调度进程,可以在无需人工干预的情况下运行作业。有一个叫做
c r o n t a b 的命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个 c r o n t a b文件
来保存调度信息。可以使用它运行任意一个 s h e l l 脚本或某个命令,每小时运行一次,或一周
三次,这完全取决于你。每一个用户都可以有自己的 c r o n t a b 文件,但在一个较大的系统中,
系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过
c r o n . d e n y和c r o n . a l l o w 这两个文件来禁止或允许用户拥有自己的 c r o n t a b文件。
3.1.1 crontab的域
为了能够在特定的时间运行作业,需要了解 c r o n t a b文件每个条目中各个域的意义和格式。
下面就是这些域:
第1列 分钟1~5 9
第2列 小时1~2 3 (0表示子夜)
第3列 日1~3 1
第4列 月1~1 2
第5列 星期0~6(0表示星期天)
第6列 要运行的命令