计划与前台进程命令(十四)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计划与前台进程命令(十四)相关的知识,希望对你有一定的参考价值。

计划命令:crontab,at,&

前台进程:job,fg,bg,nohup


14.1.crontab

功能:类似于windows计划任务的一个命令,功能非常强大

语法:crontab [-u user] file

          crontab [-u user] [-l | -r | -e] [-i] [-s]

常用选项:

-u:用户名,只有root用户才能进行任务,创建、修改、删除

-e:编辑crontab文件

-l:查看crontab文件内容

-r:删除crontab文件

crontab的域

下面就是这些域:

第1列分钟1~5 9

第2列小时1~2 3(0表示子夜)

第3列日1~3 1

第4列月1~1 2

第5列星期0~6(0表示星期天)

第6列要运行的命令

 

下面是c r o n t a b的格式:

 

分< >时< >日< >月< >星期< >要运行的命令

其中< >表示空格。


示例:

30 21* * * /apps/bin/cleanup.sh
说明:表示每晚的2 1 : 3 0运行/apps/bin/cleanup.sh
45 4 1,10,22 * * /apps/bin/backup.sh
说明:表示每月1、10、22日4:45运行/apps/bin/backup.sh
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
说明:表示每周六、周日的1 : 1 0运行一个find命令
0,30 18-23 * * * /apps/bin/dbcheck.sh
说明:表示在每天1 8 : 0 0至2 3 : 0 0之间每隔3 0分钟运行/apps/bin/dbcheck.sh
0 23 * * 6 /apps/bin/qtrend.sh
说明:表示每星期六的23点运行 /apps/bin/qtrend.sh



14.2.at

功能:crontab实现的是定时执行任务,特定任务运行一次,就需要用到at

语法: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这样的词。

示例:

1、提示符方式

# su sam
$ at 10:40
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
at> find /etc -name "passwd" -print
at> <EOT>
job 1 at 2004-11-02 10:40
 
说明:< E O T >就是< C T R L - D >。在10:40系统将执行一个简单的f i n d命令。提交的任务被分配了一个唯一标识job 1。该命令在完成以后会将全部结果以邮件的形式发送给我。
 
下面这些日期/时间格式都是a t命令可以接受的:
at 5.00am May23
at 11.20pm
at now +2 hour
at 9am tomorrow
at 15:00 May24
at now + 10 minutes

2、命令行方式

如果希望向a t命令提交一个s h e l l脚本,使用其命令行方式即可。在提交脚本时使用- f选项。

如:

$ touch db_table.sh
$ at 3:00pm tomorrow -f db_table.sh
warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
job 3 at 2004-11-02 15:00
 
d b _ t a b l e . s h的脚本将在2004-11-02 15:00运行


3、还可以使用e c h o命令向a t命令提交任务

$ echo find /etc -name "passwd" -print | at now +1 minute

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh

job 4 at 2004-11-01 19:07

 

列出所提交的任务

一个任务被提交后,可以使用at -l命令来列出所有的任务:

$ at -l

1       2004-11-02 10:40 a sam

3       2004-11-02 15:00 a sam

4       2004-11-01 19:07 a sam

 

其中,第一行是任务标识,后面是任务运行的日期/时间。最后一列a代表a t。

还可以使用a t q命令来完成同样的功能,它是a t命令的一个链接。

直接>atq,相当于>at -l

 

当提交一个任务后,它就被拷贝到/ v a r / s p o o l / a t目录中,准备在要求的时间运行。

# pwd

/var/spool/at

# ls -l

 

清除一个任务

 

清除任务的命令格式为:

atrm [job no] 或at -r [job no]

 

要清除某个任务,首先要执行at -l命令,以获取相应的任务标识,然后对该任务标识使用at -r 命令,清除该任务。

$ at -l

1       2004-11-02 10:40 a sam

3       2004-11-02 15:00 a sam

4       2004-11-01 19:07 a sam

$at -r 3

$at -l

1       2004-11-02 10:40 a sam

4       2004-11-01 19:07 a sam

 

有些系统使用at-r [job no]命令清除任务。

14.3.&

功能:放入后台执行

示例:

查找名为“httpd.conf”的文件,并把所有标准输出和错误输出重定向到f i n d . d t的文件中:

# find /etc/httpd/ -name "httpd.conf" -print >find.dt 2>&1 &

[2] 7832

[1]   Done                    find /etc/ -name "httpd.conf" -print >find.dt 2>&1 &

 

成功提交该命令之后,系统给出了它的进程号7832。

14.4.nohup命令

功能:把当前命令行运行的进程放到后台,以至于退出窗口进程不会退出。

语法: nohup command &

示例:

14.5.

功能:

A,Shell支持作用控制,有以下命令:

1. command& 让进程在后台运行

2. jobs 查看后台运行的进程

3. fg %n 让后台运行的进程n到前台来

4. bg %n 让进程n到后台去;  

PS:"n"为jobs查看到的进程编号.

 

总结: 

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的

一。& 最经常被用到

这个用在一个命令的最后,可以把这个命令放到后台执行

二。ctrl + z

可以将一个正在前台执行的命令放到后台,并且暂停

三。jobs

查看当前有多少在后台运行的命令

四。fg

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

五。bg

将一个在后台暂停的命令,变成继续执行

如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

 

#Linux下使用Shell命令控制任务Jobs执行

下列命令可以用来操纵进程任务:

ps 列出系统中正在运行的进程;

kill 发送信号给一个或多个进程(经常用来杀死一个进程);

jobs 列出当前shell环境中已启动的任务状态,若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell 从当前的shell环境已知的列表中删除任务的进程标识;

bg 将进程搬到后台运行(Background);

fg 将进程搬到前台运行(Foreground);

11.35 nohup

功能:运行命令,忽略所有挂起信号

常用选项:

示例:

后台运行程序,终端关闭不影响:

# nohup bash test.sh &>test.log &



本文出自 “烂笔头” 博客,请务必保留此出处http://lanbitou.blog.51cto.com/9921494/1940099

以上是关于计划与前台进程命令(十四)的主要内容,如果未能解决你的问题,请参考以下文章

Liunx中进程和计划任务管理

Linux系统管理10——进程和计划任务管理练习题

进程与计划任务管理

进程和计划任务管理!

Linux进程与计划任务

(十四)硅谷外卖-后台应用(上)