crontab、at和nohup
cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月
中的不同时段运行。
At at命令。使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时
间段或高峰负荷时间段运行。
& 使用它在后台运行一个占用时间不长的进程。
Nohup 使用它在后台运行一个命令,即使在用户退出时也不受影响。
cron和crontab
可以在cron.allow和cron.deny 设置用户使用crontab
crontab的域: 分<>时<>日<>月<>周<>命令
crontab 命令选项
crontab [-u user] -e -l -r
-u 用户名
-e 编辑
-l 查看
-r 删除
crontab -l > $HOME/mycron 来进行备份,一旦误删了crontab,可以使用crontab <filename>来恢复,filename就是在home中的副本文件,也可以直接拷贝到/var/spool/cron/<filename>
at
和cron一样 at命令一样可以在at.allow和at.deny中设置用户使用该命令
at的基本形式:
at [-f script] [-m -l -r] [time] [date]
-f script 所要提交的命令或脚本
-l 列出当前所有等待运行的作业,atq一样的作用
-r 清除作业,需要提供相应的作业ID号,在unix变体中或许使用到atrm
-m 完成后发送邮件
time at命令的时间格式比较灵活,可以使用HH/HH.MM/H.M,甚至可以使用am和pm
date 日期模式 可以使用today tomorrow
举个例子:
at 21:00
find / -name "passwd" -print
<EOT>
这里的EOT 就相当于ctrl-d
下面的命令日期at命令是可以接受的:
at 6.45am May12
at 11.10pm
at now + 1 hour
at 9am tomorrow
at now + 10 minutes
如果希望at提交一个脚本的话:
at 10:00am tomorrow -f /apps/bin/db_table.sh
还可以使用echo 来向at提交命令
echo find /etc -name "passwd" -print | at now + 1 mintue
at -l 来显示所有作业
当被提交的作业时候,at会拷贝到/var/spool/at 来准备执行
at -r [job no]
atrm [job no]
&符号
后台执行
command > out.file 2>&1 &
比如:find /etc -name "srm.conf" -print > find.dt 2>&1 &
ps -ef | grep 进程名
kill -signal 进程号 杀死进程
nohup 命令提交
nohup command > myout.file 2>&1 &
脚本提交
nohup ./quarterend.sh > qur.out 2>&1 &