cron 系统调度进程,使用它在每天的某时间或一周、一月的不同时间运行
at 使用它在一个特点的时间允许一些特殊的作业
& 使用它在后台允许一个占用时间不长的进程
Nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响
1,每一个用户都可以有自己的crontab文件,但是在较大系统中,管理员一般会禁止这些文件,在整个系统中只保留一下这样的文件,系统管理员通过cron.deny和cron.allow这两个文件来禁止和运行用户有自己的crontab文件
2,crontab格式 * * * * * commond
分(1-59) 时(1-23) 日(1-31) 月(1-12) 星期(0-6,0表示周日) command
在这些域中,可以用 - 来表示时间范围(1-5 周一到周五),使用 , 来表示和(1,4表示周一和周四),使用 * 表示连续的时间,该文件每一个条目必须包含5个时间域,且每个域之间使用空格分隔,所有注释在行首使用#
30 21 * * * /apps/bin/cleanup.sh 每晚21:30执行指定目录下文件
45 4 1,10 * * * /apps/bin/cleanup.sh 每月1,10日执行指定目录下文件
10 1 * * 6,0 /bin/find -name "core" -exec rm {} ; 每周六日1:10运行一个find命令
0,30 18-23 * * * /apps/bin/dbcheck.sh 每天18:00到23:00直接每隔30分钟运行指定目录文件
3,crontab命令形式:crontab [-u user] -e -l -r
-u 用户名,如果使用自己的名字登录,则不需要使用-u
-e 编辑crontab文件
-l 列出crontab文件中的内容
-r 删除crontab文件
4,在考虑向cron进程提交一个crontab文件之前,首先要设置环境编辑EDITOR,cron进程根据它来确定使用哪个编辑器来编辑crontab文件,如果使用vi,则编辑$HOME目录下.profile文件,在其中加入一行
EDITOR=vi;export EDITOR
然后保存退出
crontab -e 编辑
crontab -l 列出crontab文件内容
crontab -r 删除crontab文件
5,at命令允许用户向cron守护进程提交作业,使其在稍后的时间运行。管理员可以通过/etc目录下的at.allow和at.deny来控制哪些用户可以使用at命令,哪些不可以。
命令形式:at [-f script] [-m -l -r] [time] [date]
-f script 是所以提交的脚本或命令
-l 列出 当前所有等待运行的作业
-r 清除作业
-m 作业完成后给用户发邮件
time at的命令格式非常灵活,可以是H HH HHMM HH:MM H:M H是小时,M是分钟,还可以使用a.m p.m
date 日期格式,可以是月份或日期,而且at还识别today,tomorrow等词
6,at提交若干行命令,在at命令后跟上日期/时间并回车,进入at命令提示符,然后就可以逐条输入命令,最后按CTRL+D退出
7,清除作业命令:atrm [job no] 或者 at -r [job no]
要清除某个作业,需要先执行at -l 命令,以获取相应的作业标识,然后对它执行 at -r 命令,清除该作业
8,后台执行命令:&
命令格式:commod &
作业后台运行一样会将结果输出到屏幕,所以需要重定向到某个文件 command >out.file 2>&1 &
9,可以使用ps查询系统的进程,但是不能确定是运行在前台还是后台
ps -ef|grep 28305 或者 ps x|grep 2888 查询指定进程号的进程
10,使用kill 杀死进程 ,命令格式 kill -signal [process_number]
kill 28305或者kill -9 28305
11,使用nohup命令,使账户退出时,进程继续运行。
命令格式 nohup command &
如果使用了nohup命令提交作业,那么在缺省情况下,该作业的所有输出都被重定向到了nohup.out文件中,出发另外值得了输出文件。例如 nohup comman > myout.file 2>&1