守护进程Daemon,在后台运行而又没有终端或登录shell 与之接合在一起的进程。
启动方式:
1引导系统时启动:系统启动script执行期间启动,这些script一般放在/etc/rc.d中
2手工从shell提示符启动
3由crond启动
4at命令启动
进程挂起 Ctrl+Z
后台执行 bg
前台执行 fg
常用命令
一、名称 : at
使用权限 : 所有使用者
使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME
说明 : at 可以让使用者指定在 TIME 这个特定时刻执行某个程序或指令,TIME 的格式是 HH:MM其中的 HH 为小时,MM 为分钟,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等口语词。
如果想要指定超过一天内的时间,则可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第几日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days, weeks。
另外,使用者也可指定 today 或 tomorrow 来表示今天或明天。当指定了时间并按下 enter 之后,at 会进入交谈模式并要求输入指令或程序,当你输入完后按下 ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。
参数 :
-V : 印出版本编号
-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个
-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已经完成但尚未删除的指定
例子 :
三天后的下午 5 点锺执行 /bin/ls :
at 5pm + 3 days /bin/ls
三个星期后的下午 5 点锺执行 /bin/ls :
at 5pm + 2 weeks /bin/ls
明天的 17:20 执行 /bin/date :
at 17:20 tomorrow /bin/date
1999 年的最后一天的最后一分钟印出 the end of world !
at 23:59 12/31/1999 echo the end of world
下面一部分 引自 http://blog.youkuaiyun.com/hondrif82q/archive/2006/12/23/1456841.aspx
当使用at命令提交脚本时,形式 如下
at [-f script] [-m -l -r] [time] [date]
例一:提示符方式
代码: |
# 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命令提交一个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运行。
(touch的作用如下──
1.创建空文件
2.更新访问修改时间戳)
与at很相似的一个命令,batch在资源空闲时执行
二、cron
建立crontab的步骤
1建立文件: vi job(新文件名,假设/root/job,用户是tian)
2安装文件: crontab job
这时,/var/spool/cron目录下就会 多了一个tian文件
三、ps
-e 显示所有进程信息
-f 显示进程所有信息
-aux 显示 所有终端所有用户的信息
四、top 和ps很像,但它是个动态显示过程
top -d 30(间隔秒数)
-n 10 更新次数
五、sleep命令 暂停 进程
sleep 100 ; ls
六、ICMP报文
1 ping查询 /usr/bin/
原理是用类型码为0的ICMP发请求,收到请求的主机则用类型码为8的ICMP回应。ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致的情况。
2 traceroute /usr/sbin/
它收到目的主机的IP后,首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题
一般的 防火墙 都是过滤了来自外部主机的回送请求(echo Request)报文,但为了是自己能够探测外部主机的当前状态, 防火墙 都不会过滤掉回送应答(echo Reply)数据报,而且ICMP报文可以在广域网上传送,