Shell学习3-后台执行命令
时间:2010-07-12 来源:soqsoq
Shell学习3-后台执行命令
2010.06
名词解释:
cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。
At at命令。使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时间段或高峰负荷时间段运行。
& 使用它在后台运行一个占用时间不长的进程。
Nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响。
1. crontab的域
c r o n t a b文件每个条目中各个域的意义和格式.
下面是c r o n t a b的格式:
分< >时< >日< >月< >星期< >要运行的命令
2. crontab条目举例
这里有c r o n t a b文件条目的一些例子:
30 21* * * /apps/bin/cleanup.sh
上面的例子表示每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h。
45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、1 0、2 2日的4 : 4 5运行/ a p p s / b i n目录下的b a c k u p . s h。
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
上面的例子表示每周六、周日的1 : 1 0运行一个f i n d命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh
上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/ a p p s / b i n目录下的d b c h e c k . s h。
3.crontab命令
crontab命令选项
c r o n t a b命令的一般形式为:
Crontab [-u user] -e -l -r
其中:
-u 用户名。
-e 编辑c r o n t a b文件。
-l 列出c r o n t a b文件中的内容。
-r 删除c r o n t a b文件。
4.创建一个新的crontab文件
在考虑向c r o n进程提交一个 c r o n t a b文件之前,首先要做的一件事情就是设置环境变量E D I TO R。c r o n进程根据它来确定使用哪个编辑器编辑 c r o n t a b文件。9 9 %的U N I X和L I N U X用户都使用v i,如果你也是这样,那么你就编辑 $ H O M E目录下的. p r o f i l e文件,在其中加入这样一行:
EDITOR=vi; export EDITOR
然后保存并退出。
不妨创建一个名为< u s e r > c r o n的文件,其中< u s e r >是用户名,例如,d a v e c r o n。在该文件中加入如下的内容。
0,15,30,45 18-06 * * * /bin/echo `data` > /dev/console
为了提交你刚刚创建的c r o n t a b文件,可以把这个新创建的文件作为c r o n命令的参数
$ crontab davecron
5. 列出crontab文件
Crontab –l
6. 编辑crontab文件
crontab –e
7. 删除crontab文件
crontab –r
8. at命令
a t命令的基本形式为:
at [-f script] [-m -l -r] [time] [date]
其中,
-f script 是所要提交的脚本或命令。
-l 列出当前所有等待运行的作业。a t q命令具有相同的作用。
-r 清除作业。为了清除某个作业,还要提供相应的作业标识( I D);有些U N I X变体只接受a t r m作为清除命令。
-m 作业完成后给用户发邮件。
time at命令的时间格式非常灵活;可以是 H、H H . H H M M、H H : M M或H : M,其中H和M
分别是小时和分钟。还可以使用a . m .或p . m .。
date 日期格式可以是月份数或日期数,而且a t命令还能够识别诸如t o d a y、t o m o r r o w这样的词。
9. 使用at命令提交命令或脚本
如果你想提交若干行的命令,可以在a t命令后面跟上日期/时间并回车。然后就进入了a t命令提示符,这时只需逐条输入相应的命令,然后按‘ < C T R L - D >’退出。下面给出一个例子:
$at 21:10
at> find / -name “passwd” –print
at> <EOT>
< E O T >就是< C T R L - D >。在2 1 : 1 0系统将执行一个简单的 f i n d命令。
下面这些日期/时间格式都是a t命令可以接受的:
At 6.46am May12
At 11.10pm
At now +1 hour
At 9am tomorrow
At 15:00 May 24
At now + 10 minutes
例如:
$at 3.00pm torrow –f /apps/bin/db_table.sh
10. 列出所提交的作业
$at –l
11. 清除一个作业
Atrm [job no] 或者 at –r [job no]
例如:at –r job 3
12. &命令
该命令的一般形式为:
命令 &
例如:command > out.file 2>&1 &
13. nohup命令
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用n o h u p命令。该命令可以在你退出帐户之后继续运行相应的进程。 N o h u p就是不挂起的意思( n ohang up)。
该命令的一般形式为:
nohup command &
14. 使用nohup命令提交作业
如果使用n o h u p命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为n o h u p . o u t的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1