`
sharp2wing
  • 浏览: 267526 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Linux命令 Linux后台运行命令大全

阅读更多
Linux后台运行命令最简的就是使用快捷键来完成,但是还是会有些其他的Linux后台运行命令例如cron和crontab这两个命令,这两个命令可以设置一些定时的任务,涉及进程调度,这里加以详细介绍。

cron and 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文件。

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列要运行的命令

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

分《 》时《 》日《 》月《 》星期《 》要运行的命令

其中《 》表示空格。

c r o n t a b文件的一个条目是从左边读起的,第一列是分,最后一列是要运行的命令,它位于星期的后面。

可以用横杠-来表示一个时间范围,例如你希望星期一至星期五运行某个作业,那么可以在星期域使用1 - 5来表示。

还可以在这些域中使用逗号“,”,例如你希望星期一和星期四运行某个作业,只需要使用1 , 4来表示。

可以用星号*来表示连续的时间段。如果你对某个表示时间的域没有特别的限定,也应该在该域填入*。该文件的每一个条目必须含有5个时间域,而且每个域之间要用空格分隔。

该文件中所有的注释行要在行首用#来表示。

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。

0 23 * * 6 /apps/bin/qtrend.sh

上面的例子表示每星期六的11 : 0 0 p m运行/ a p p s / b i n目录下的q t r e n d 。 s h。

你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用c r o n t a b运行s h e l l脚本时,要由用户来给出脚本的绝对路径,设置相应的环境变量。记住,既然是用户向c r o n提交了这些作业,就要向c r o n提供所需的全部环境。不要假定c r o n知道所需要的特殊环境,它其实并不知道。所以你要保证在s h e l l脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。

如果c r o n不能运行相应的脚本,用户将会收到一个邮件说明其中的原因。

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文件。

如果使用自己的名字登录,就不用使用- u选项,因为在执行c r o n t a b命令时,该命令能够知道当前的用户。

创建一个新的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文件。大部份的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 》是用户名,例如, samcron。在该文件中加入如下的内容。

#(put your own initials here) echo the date to the console every

#15 minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo ‘date’ 》 /dev/console

保存并退出。确信前面5个域用空格分隔。

在上面的例子中,系统将每隔1 5分钟向控制台输出一次当前时间。如果系统崩溃或挂起,从最后所显示的时间就可以一眼看出系统是什么时间停止工作的。在有些系统中,用t t y 1来表示控制台,可以根据实际情况对上面的例子进行相应的修改。

为了提交你刚刚创建的c r o n t a b文件,可以把这个新创建的文件作为c r o n命令的参数:

$su sam

crontab samcron

为了方便演示,切换到sam用户环境下,然后用crontab samcron提交给c r o n进程,它将每隔1 5分钟运行一次。

同时,新创建文件的一个副本已经被放在/ v a r / s p o o l / c r o n目录中,文件名就是用户名(即sam)。

#su

# cat /var/spool/cron/sam

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (samcron installed on Wed Nov 10 21:41:55 2004)

# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

#(put your own initials here) echo the date to the console every

#15 minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo ‘date’ 》 /dev/console

回到root下,查看/var/spool/cron/sam

列出crontab文件

为了列出c r o n t a b文件,可以用:

$ crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (samcron installed on Wed Nov 10 21:41:55 2004)

# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

#(put your own initials here) echo the date to the console every

#15 minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo ‘date’ 》 /dev/console

你将会看到和上面类似的内容。可以使用这种方法在$ H O M E目录中对c r o n t a b文件做一备份:

$ crontab -l 》 $HOME/mycron

这样,一旦不小心误删了c r o n t a b文件,可以用上一节所讲述的方法迅速恢复。

编辑crontab文件

如果希望添加、删除或编辑c r o n t a b文件中的条目,而E D I TO R环境变量又设置为v i,那么就可以用v i来编辑c r o n t a b文件,相应的命令为:

$ crontab -e

可以像使用v i编辑其他任何文件那样修改c r o n t a b文件并退出。如果修改了某些条目或添加了新的条目,那么在保存该文件时, c r o n会对其进行必要的完整性检查。如果其中的某个域出现了超出允许范围的值,它会提示你。

例如,加入下面的一条:

#DT:delete core files,at 3:30am on 1,7,14,21,26 days of each month

30 3 1,7,14,21,26 * * /bin/find -name “core” -exec rm {} \;

现在保存并退出。最好在c r o n t a b文件的每一个条目之上加入一条注释,这样就可以知道它的功能、运行时间,更为重要的是,知道这是哪位用户的作业。

现在让我们使用前面讲过的crontab -l命令列出它的全部信息:

#(put your own initials here) echo the date to the console every

#15 minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo ‘date’ 》 /dev/console

#DT:delete core files,at 3:30am on 1,7,14,21,26 days of each month

30 3 1,7,14,21,26 * * /bin/find -name “core” -exec rm {} \;

删除crontab文件

为了删除c r o n t a b文件,可以用:

$ crontab -r

恢复丢失的crontab文件

如果不小心误删了c r o n t a b文件,假设你在自己的$ H O M E目录下还有一个备份,那么可以将其拷贝到/ v a r / s p o o l / c r o n / 《 u s e r n a m e 》,其中《 u s e r n a m e 》是用户名。如果由于权限问题无法完成拷贝,可以用:

$ crontab

其中,《 f i l e n a m e 》是你在$ H O M E目录中副本的文件名。

建议在自己的$ H O M E目录中保存一个该文件的副本。编辑副本,然后重新提交新的文件。

有些c r o n t a b的变体有些怪异,所以在使用c r o n t a b命令时要格外小心。如果遗漏了任何选项,c r o n t a b可能会打开一个空文件,或者看起来像是个空文件。这时敲d e l e t e键退出,不要按《 C t r l - D 》,否则你将丢失c r o n t a b文件。Linux后台运行命令后面将介绍at。
分享到:
评论

相关推荐

    linux命令在后台运行

    linux命令如何在后台运行,这个文档给的命令和详细

    Linux后台运行命令

    Linux后台运行命令最简的就是使用快捷键来完成,但是还是会有些其他的Linux后台运行命令例如cron和crontab这两个命令,这两个命令可以设置一些定时的任务,涉及进程调度,这里加以详细介绍。

    在后台运行Linux命令的方法

    另外一个选项,就是在后台运行命令。 一个后台进程就是说一个进程/命令在终端启动后,运行在后台,并且不会和用户发生任何交互。 在这篇文章中,我们将会讨论在 Linux 中的后台进程。我们将会为你演示如何在后台启动

    在Linux中查看及终止正在运行的后台程序方法

    linux 任务管理-后台运行与终止 fg、bg、jobs、&、ctrl + z命令 一、 & 加在一个命令的最后,可以把这个命令放到后台执行 ,如gftp &, 二、ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可...

    【jupyter notebook】linux关闭端口不停止的命令集合

    【jupyter notebook】linux关闭端口不停止的命令集合

    Linux nohup实现后台运行程序及查看(nohup与&)

    一般运行linux上的程序都是执行 .sh 文件(./sh文件),那如果不影响当前CMD窗口的操作,需要后台运行怎么办呢? 这时就需要借助 nohup 和 & 命令来实现。 nohup java -server -Xms128M -Xmx512M -XX:MetaspaceSize...

    cmd操作命令和linux命令大全收集

    命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在 ...

    详解linux后台运行和关闭、查看后台任务

    查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。也就是...

    Redis在Linux上的安装及配置后台运行的方法

    1.Redis在Linux上安装配置 2.为了在使用Redis时能够方便合理,将Redis配置为后台启动 3.便于使用Redis时能够实现后台运行,无需每次手动启动 4.使用命令+截图的方式介绍方法,供大家分享学习讨论

    linux__jobs命令_bg_fg

    查看当前有多少在后台运行的命令 四。fg 将后台中的命令调至前台继续运行 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

    Linux后台运行py服务程序1

    &符号这两天要在服务器端一直运行一个Python脚本,当然就想到了在命令后面加&符号$ python /data/python/server.py >pytho

    linux 常用命令大全(简版)

    linux常用命令大全 - & &命令可用在其他任何命令的后面,它用来通知计算机在后台运行某一命令.通过把作业放在后台,用户可以继 续使用当前的 shell 来处理其他命...

    Linux中进程在后台可靠运行的方法总结

    这篇文章主要给大家在讲述了在Linux中让一个进程在后台稳定运行的技巧和方法,总结如下: 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定...

    Linux命令学习 shell pdf格式

    第三章 后台执行命令 第四章 文件名置换 第五章 shell输入与输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 grep家族 第九章 AWK介绍 第十章 sed用法介绍 第十一章 合并与分割 第十二章...

    C语言实现Linux内核Shell程序

    (2)对用户编写的Shell增加后台运行功能。即用户可以使用“&”作为一个命令,表示该命令在后台启动。前台还可以处理其他命令。 (3)修改程序,增加I/O重定向功能。即用户可以使用“>”,“<”和“|”符号改变程或...

    Linux常用命令

    Linux常用命令,linux后台运行和关闭、查看后台任务 fg、bg、jobs、&、nohup、ctrl+z、ctrl+c 命令

    jar畅游Linux后台

    目录jar通常方式jar后台运行方式方式一方式二查看后台运行任务查看某端口占用的线程的pidlinux 进程查看及杀死进程附录:各种信号及其用途 Linux系统运行jar包 jar通常方式 java -jar xxx.jar 特点:当前ssh窗口被...

    Linux后台运行Python程序的几种方法讲解

    1.第一种方法是直接用unhup命令来让程序在后台运行,命令格式如下: unhup python 文件名.py (> ***.log )& 在这个命令中,python指定我们要执行的文件为python文件,后面的文件名.py即是我们要执行的文件。括号...

Global site tag (gtag.js) - Google Analytics