读书人

每天一搬(2):程序管理

发布时间: 2012-07-23 09:42:19 作者: rapoo

每日一搬(2):程序管理

?

程序观察:ps? top? pstree

?

ps : 观察程序的执行情况,特别zombile程序

?

SIGHUP的发音是“sig-hup”,是signal hangup的缩写,含义是“中止信号”。你如何发送一个SIGHUP信号呢?这里有几种方式:

#

# kill -1 [pid]

# killall -1 [process-name]

?

?

?

系统资源的观察:free uname? uptime? netstat? dmesg dar

?

?

--------------------------------------------
free
[root@linux ~]# free [-b|-k|-m|-g] [-t]

-b??:直接入 free ,示的位是 Kbytes,我可以使用 b(bytes), m(Mbytes)
? ?? ?k(Kbytes), 及 g(Gbytes) 示位喔!
-t??:在出的最果,示 swap 的量。
例:
例一:示目前系的容量
[root@linux ~]# free -m
? ?? ?? ?? ? total? ?? ? used? ?? ? free? ???shared? ? buffers? ???cached
Mem:? ?? ?? ???376? ?? ???366? ?? ?? ?10? ?? ?? ? 0? ?? ???129? ?? ?? ?94
-/+ buffers/cache:? ?? ???141? ?? ???235
Swap:? ?? ?? ? 996? ?? ?? ? 0? ?? ???995
仔看看,我的系中有 384 MB 左右的,我的 swap 有 1GB 左右, 那我使用 free -m
以 MBytes 示,就出上面的。Mem 那一行示的是的量, Swap 是
的量。 total 是量, used 是已被使用的量, free 是剩可用的量。 後面的
shared/buffers/cached 是在已被使用的量中,用作及快取的量。
仔的看到例一的出喔,我的 Linux 主是很平凡的,根本有什工作, 但是,我的
是乎被用光光的情呢!不,至少有 129 MB 用在工作, 94 MB 用在快取工作,也就
是,系是『很有效率的所有的用光光』, 目的是了系的存取效能加速啦!
很多朋友都到『我的系明明很,何被用光光?』 在了吧?有!
被用光是正常的!而需要注意的反而是 swap 的量。一般, swap 最好不要被使用,尤其 swap 最
好不要被使用超 20% 以上, 如果您 swap 的用量超 20% ,那,最好是插
吧! 因, Swap 的效能跟在差很多,而系使用到 swap , 是因
不足了才做的!如此,解吧!

--------------------------------------------
uname
[root@linux ~]# uname [-asrmpi]

-a??:所有系相的;
-s??:系核心名
-r??:核心的版本
-m??:本系的硬名
-p??:CPU 的型
-i??:硬的平台 (ix86)
例:
例一:出系的基本
[root@linux ~]# uname -a
Linux linux.site 2.6.12-1.1398_FC4 #1 Fri Jul 15 00:52:32 EDT 2005
i686 i686 i386 GNU/Linux
咚咚我前面使用很多次了喔!uname 可以列出目前系的核心版本、 主要硬平台以及 CPU
型等等的。以上面例一的,我的 Linux 主使用的核心名 Linux,而主名
linux.site,核心的版本 2.6.12-1.1398_FC4,核心版本建立的日期 2005/07/15, 用的硬
平台 i386 以上等的硬平台喔。

--------------------------------------------
uptime
指令很呢!就是示出目前系已多久的,以及 1, 5, 15 分的平均就是了
。得 top 吧?啦! uptime 可以示出 top 面的最上面一行!
[root@linux ~]# uptime
18:06:30 up 52 days,??6:40,??1 user,??load average: 0.00, 0.00, 0.00
# 上面表示,目前是 18:06 ,本系已 52 天又 6:40 ,有 1 使用者在上,
# 平均很低,所以都是 0 啊!


--------------------------------------------
netstat
netstat 也是挺好玩的,其,指令比常被用在路的控方面, 不,在程序管理方面
也是需要解的啦!指令的行如下所示:基本上, netstat 的出分大部分,上面是路介
面相的,下方是 unix 程序有的目。
[root@linux ~]# netstat -[atunlp]

-a??:目前系上所有的、、Socket 料都列出
-t??:列出 tcp 路封包的料
-u??:列出 udp 路封包的料
-n??:不已程序的服名,以埠 (port number) 示;
-l??:列出目前正在路 (listen) 的服;
-p??:列出路服的程序 PID
例:
例一:列出目前系已建立的路 unix socket
[root@linux ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address? ?? ???Foreign Address? ?? ? State
tcp? ?? ???0? ? 256 59-125-83-224.ad:ssh linux.test.s:52679? ? ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags? ?? ? Type? ?? ? State? ?? ?? ?I-Node Path
unix??16? ???[ ]? ?? ?? ?DGRAM? ?? ?? ?? ?? ?? ???4870? ?/dev/log
unix??2? ?? ?[ ]? ?? ?? ?DGRAM? ?? ?? ?? ?? ?? ???3561? ?@udevd
unix??3? ?? ?[ ]? ?? ?? ?STREAM? ???CONNECTED? ???509237
# 在上面的果中,示了部分,分是路的以及 linux 上面的 socket
# 。在路的部分主要容:
# Proto :路的封包定,主要分 TCP UDP 封包,相料考伺服器篇;
# Recv-Q:非由使用者程式到此 socket 的的 bytes ;
# Send-Q:非由端主送的 acknowledged bytes ;
# Local Address??:本地端的 IP
# Foreign Address:端主的 IP;
# State :,主要有建立(ESTABLISED)及(LISTEN);
# 至於 unix 的 socket 接是:
# Proto :一般就是 unix 啦;
# RefCnt:接到此 socket 的程序量;
# Flags :的旗;
# Type??:socket 存取的型。主要有的 STREM 不需的 DGRAM ;
# State :CONNECTED 表示已建立。
# Path??:接到此 socket 的相程式的路!或者是相料出的路。
例二:找出目前系上已在的路及其 PID
[root@linux ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address? ?Foreign Address??State? ?PID/Program name
tcp? ?? ???0? ?? ?0 0.0.0.0:21? ?? ?0.0.0.0:*? ?? ???LISTEN??1598/vsftpd
tcp? ?? ???0? ?? ?0 127.0.0.1:25? ? 0.0.0.0:*? ?? ???LISTEN??1666/master
tcp? ?? ???0? ?? ?0 :::22? ?? ?? ???:::*? ?? ?? ?? ? LISTEN??5281/sshd
udp? ?? ???0? ?? ?0 0.0.0.0:68? ?? ?0.0.0.0:*? ?? ?? ?? ?? ? 21339/dhclient
# 看到了?最後面一位就是埠被 PID 或程式所的!
例三:上述的本地端 0.0.0.0:21 那路服的?
[root@linux ~]# kill 1598
[root@linux ~]# killall vsftpd
很多朋友常常有疑,那就是,我的主目前到底了(ports), 呵呵!其,不主提供什
的服,一定必要有相的 program 在主上面行才行啊! 例,我的 Linux
主提供的就是 WWW 服,那我的主然有一程式在提供 WWW 的服啊!呵呵!那就是 Apache
套件所提供的啦! ^_^。 所以,我行了程式之後,我的系自然就可以提供 WWW 的服
了。那如何啊? 就掉程式所的那程序就好了!例如上面的例三所提供的例子啊! ^_^

--------------------------------------------
dmesg
在的候你有很多的息出吧,例如 CPU 的形式、硬碟、 光碟型及硬碟分割表等等,
些的生都是核心 (kernel) 在行硬的啦。 但是息都是『刷』的一就跑去
了!完全不及看!筋~
些息有候於系管理是很重要的,因他提供了系的呀! 要看些息你可以用
dmesg 指令看! 因息在太多了,所以可以加入管指令『 | more 』使面停

例一:出所有的核心的
[root@linux ~]# dmesg | more
例二:搜的候,硬碟的相何?
[root@linux ~]# dmesg | grep -i hd
? ? ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:DMA
? ? ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
hda: ST320430A, ATA DISK drive
hdb: Maxtor 5T030H3, ATA DISK drive
hdc: CD-540E, ATAPI CD/DVD-ROM drive
.....底下省略.....
由例二就知道我部主的硬碟是怎了吧?!啦! 可以查能不能找到路卡喔!路卡的
代是 eth ,所以,直接入 dmesg | grep -i eth 看看呢!

--------------------------------------------
sar
sar 不是系的安套件,如果您不是全部安的,套件是不的。 不
,如果您是全部安,嘿嘿!那就可以玩 sar 了。 sar 的功能倒是可以玩一玩的,因
他可以在您想要主主的源, 然後成表,相好用的一工具喔!
[root@linux ~]# sar [-ru] [秒] [次]

-u??:行 CPU 源的;
-r??:行主目前的分析
例:
例一:目前主 CPU ,每秒一次,共三次!
[root@linux ~]# sar -u 1 3
Linux 2.6.12-1.1398_FC4 (vbird.vbird.idv.tw)? ? 09/16/05
14:16:17? ?? ?? ? CPU? ???%user? ???%nice? ?%system? ?%iowait? ???%idle
14:16:18? ?? ?? ? all? ?? ?0.00? ?? ?0.00? ?? ?0.00? ?? ?0.00? ? 100.00
14:16:19? ?? ?? ? all? ?? ?0.00? ?? ?0.00? ?? ?0.00? ?? ?0.00? ? 100.00
14:16:20? ?? ?? ? all? ?? ?0.00? ?? ?0.00? ?? ?0.00? ?? ?0.00? ? 100.00
Average:? ?? ?? ? all? ?? ?0.00? ?? ?0.00? ?? ?0.00? ?? ?0.00? ? 100.00
# 我部主用在家的,所以有什路服,看的出,嘿嘿!很安!
例二:目前主的使用情
[root@linux ~]# sar -r 1 3
Linux 2.6.12-1.1398_FC4 (vbird.vbird.idv.tw)? ? 09/16/05
14:17:40? ? kbmemfree kbmemused??%memused kbbuffers??kbcached kbswpfree
14:17:41? ?? ???26004? ? 359672? ???93.26? ? 127528? ???83996? ?1019236
14:17:42? ?? ???26004? ? 359672? ???93.26? ? 127528? ???83996? ?1019236
14:17:43? ?? ???26004? ? 359672? ???93.26? ? 127528? ???83996? ?1019236
Average:? ?? ???26004? ? 359672? ???93.26? ? 127528? ???83996? ?1019236
# 其 free 的出果也差不了太多啦!
哥倒是很喜使用 sar 做背景主系 CPU 的作!
--------------------------------------------


部分信息出处

?

?

我正好用到一个取某个月的月份命令:

?

?

**前一个天的日期**date -d"1 day ago" +"%y%m%d"date -d "yesterday" +"%y%m%d"**前一个月的日期**date -d"1 month ago" +"%y%m%d"类似的还有date -d"-1 day ago 1 month ago" +"%y%m%d"date -d"1 day ago -1 year ago 1 month ago" +"%y%m%d"

读书人网 >操作系统

热点推荐