任务控制
在后台运行进程
[root@fedora14 ~]# vim aa & [2] 1720 [root@fedora14 ~]#
临时暂停任务:ctrl+z
[root@fedora14 ~]# vim file ~ ~ ~ "file" [New File] 0,0-1 All ## 按 ctrl + z 后 [1] Killed vim aa [2]+ Stopped vim file [root@fedora14 ~]#
后台管理或挂起任务
jobs 查看挂起的进程
bg %jobsnum 恢复进程后台
fg %jobsmum 恢复进程前台
example: 查看当前挂起的进程,并用恢复前台
[1]- Stopped vim aa [2]+ Stopped vim file [root@fedora14 ~]# jobs [1]- Stopped vim aa [2]+ Stopped vim file [root@fedora14 ~]# fg %2 vim file ~ ~ ~
example:杀死jobs挂起的进程
[root@fedora14 ~]# jobs [1]+ Stopped vim aa [root@fedora14 ~]# kill -9 %1 [1]+ Stopped vim aa [root@fedora14 ~]# jobs [1]+ Killed vim aa [root@fedora14 ~]# jobs [root@fedora14 ~]#
计划任务
一次计划任务 at
at <time> 进入任务编排模式 ,在使用at前必须 service atd start,ctrl+d退出at任务编排
<time>的时间格式:
at now+2minutes
at 4pm +3days
at 10:00am 2012-03-29
at 10:00 tomorrow
at 10:00am
at 17:30 today
at now +5 hours
at -l 查看正在进行的任务
at -e 删除任务
at -f <filename> 17:50 today 或者
at < <filename> 17:50 today
<filename> 为文件名,可以将多个任务写到这个文件里面
example:
[root@fedora14 ~]# at -f at.file 14:48 job 11 at Tue Apr 10 14:48:00 2012 [root@fedora14 ~]# date Tue Apr 10 14:47:36 PDT 2012 [root@fedora14 ~]# hello af [root@fedora14 ~]# cat at.file echo "hello af" > /dev/pts/0 [root@fedora14 ~]#
周期性计划任务 crond进程
crond 搜索 crontab文件(/var/spool/cron/目录下以用户名命名的文件) 并载入内存,如果用户没有设置该文件 ,直接进入休眠状态,如果有,则每分钟醒来一次
crontab -e 编辑当前contab文件
crontab -l 列出文件 ,查看任务
crontab -r 删除文件
crontab 文件的格式,由6部分组成
00 07 25 12 * /bin/echo "111111111"
00 一小时中的哪一分钟 值为0-59
07 一天中的哪一小时 值为0-23
25 一个月中的一天 值为1-31
12 一年中的哪一个月 值为1-12
* 为星期,一周中的某一天 值为 0-7,0和7均为星期日
/bin/echo 为执行的命令,注意:命令必须写全路径
以上六项都不能为空,时间字段中不需要指定的项用用通配符 * 指定,表示任何时间,可以用<,>表示多个值,用<->表示一个范围,<*/5>表示和5相匹配的值
其它格式语法:
1,5,6 07 25 12 * /bin/echo "1111" 每年的12月25日上午7点的第1、5,6分钟 执行 echo "1111"
*/5 9-15 * * 3 /bin/echo "11" 每周三的9点到15点每5分钟执行一次echo
配置文件: (都是一行一个用户名)
/etc/cron.allow 如果此文件存在,则只有列在此文件中的用户才能使用at命令,如果不存在,则检查下面的文件
/etc/cron.deny 如果此文件存在,则列在此文件中的用户都不能使用at命令
如果两个文件都不存在,则只有root才能使用at
如果两个文件都存在 ,而且均为空,则所有用户都可以使用at
example:
在4月10日下午2点的每一分钟打印 hello 主机名 - 当前用户
[root@fedora14 ~]# crontab -e [root@fedora14 ~]# cat /var/spool/cron/root * 14 10 04 * /bin/echo "hello `hostname` - `whoami`" > /dev/pts/0 [root@fedora14 ~]# hello fedora14 - root hello fedora14 - root hello fedora14 - root
example: 每5分钟向pts/0打印一次消息
[root@fedora14 ~]# cat /var/spool/cron/root */5 15 10 04 * /bin/echo "hello `hostname` - `whoami` `date`" > /dev/pts/0 [root@fedora14 ~]# hello fedora14 - root Tue Apr 10 15:10:01 PDT 2012 hello fedora14 - root Tue Apr 10 15:15:01 PDT 2012