banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Tính tổng dung lượng các file được tiến trình mở ra ?  XML
  [Question]   Tính tổng dung lượng các file được tiến trình mở ra ? 21/03/2012 15:57:03 (+0700) | #1 | 259489
pmquang
Member

[Minus]    0    [Plus]
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
[Profile] [PM]
Hi mọi người,

Mình có một lệnh như sau :
lsof -c httpd

Code:
COMMAND   PID   USER   FD   TYPE             DEVICE      SIZE      NODE NAME
httpd    7617 nobody  644w   REG               0,53         0  10949472 /usr/local/apache/domlogs/test.xx
httpd    7617 nobody  645w   REG               0,53         0  10950052 /usr/local/apache/domlogs/test.xxx
httpd    7617 nobody  646w   REG               0,53         0  10949870 /usr/local/apache/domlogs/qbraxxx
httpd    7617 nobody  647w   REG               0,53         0  10949185 /usr/local/apache/domlogs/qbrandxxxxxx

...


Bây giờ mình muốn tính tổng ở cột size thì làm thế nào nhỉ. Mong mọi người giúp đỡ
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 19:26:39 (+0700) | #2 | 259508
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Bạn tìm cuốn sed & awk của O'Reilly mà đọc:

Code:
# lsof -s -c httpd | awk '{ size += $7 } END { print size }'
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 21:23:40 (+0700) | #3 | 259528
pmquang
Member

[Minus]    0    [Plus]
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
[Profile] [PM]

quanta wrote:
Bạn tìm cuốn sed & awk của O'Reilly mà đọc:

Code:
# lsof -s -c httpd | awk '{ size += $7 } END { print size }'
 


Cái trên thì mình cũng biết quanta oi. Nhưng nó hoàn toàn sai rồi.
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 21:27:39 (+0700) | #4 | 259529
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

pmquang wrote:

quanta wrote:
Bạn tìm cuốn sed & awk của O'Reilly mà đọc:

Code:
# lsof -s -c httpd | awk '{ size += $7 } END { print size }'
 


Cái trên thì mình cũng biết quanta oi. Nhưng nó hoàn toàn sai rồi. 

Sai ở chỗ nào vậy bạn?
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 21:47:31 (+0700) | #5 | 259532
pmquang
Member

[Minus]    0    [Plus]
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
[Profile] [PM]

quanta wrote:

pmquang wrote:

quanta wrote:
Bạn tìm cuốn sed & awk của O'Reilly mà đọc:

Code:
# lsof -s -c httpd | awk '{ size += $7 } END { print size }'
 


Cái trên thì mình cũng biết quanta oi. Nhưng nó hoàn toàn sai rồi. 

Sai ở chỗ nào vậy bạn? 


À mình xin lỗi vì không đưa rõ cái output ra, cụ thể trong cái lệnh trên còn có những dòng như sau:
Code:
httpd    3640   root  mem    REG                9,1             29000181 /lib/libz.so.1.2.3 (path dev=0,25)
httpd    3640   root  mem    REG                9,1              4366361 (deleted) /lib/libcrypto.so.0.9.8e (stat: No such file or directory)
httpd    3640   root  mem    REG                9,1             29000105 (deleted) /lib/libssl.so.0.9.8e (stat: No such file or directory)
httpd    3640   root  mem    REG                9,1             11512775 /usr/local/apache/modules/mod_bwlimited.so (path dev=0,25)
httpd    3640   root  mem    REG                9,1             11512774 /usr/local/apache/modules/mod_auth_passthrough.so (path dev=0,25)
httpd    3640   root  mem    REG                9,1              4366365 (deleted) /lib/ld-2.5.so (stat: No such file or directory)

như cái này thì $7 ở đây là NODE chứ không phải là size và cũng có thể có nhiều dòng không hợp chuẩn như thế nữa chẳng hạn như lâu lâu nó có thêm cái này
Code:
httpd   28322 nobody 1038u  IPv4         3917352894                  TCP xx.xxxxx.vn:http->baiduspider-180-76-5-97.crawl.xxxx.com:15792 (ESTABLISHED)
httpd   28322 nobody 1039u  IPv4         3917353012                  TCP xx.xxxxx.vn:http->110.172.xxx.xxx:59698 (ESTABLISHED)

quanta xem thử nhé.
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 22:29:37 (+0700) | #6 | 259535
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
À, OK, đã có cách:
Code:
# lsof -s -c httpd | awk 'NF >= 9 { size += $7 } END { print size }'
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 22:53:57 (+0700) | #7 | 259537
pmquang
Member

[Minus]    0    [Plus]
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
[Profile] [PM]

quanta wrote:
À, OK, đã có cách:
Code:
# lsof -s -c httpd | awk 'NF >= 9 { size += $7 } END { print size }'
 

NF ở đây là number field nên nó phải bằng 9 mới đúng chứ nhỉ. Mặc dù không phải tổng quát lắm nhưng lệnh trên cũng khá hữu ích với mình.

Ps: công nhận quanta siêu command linux thật ^^
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 22:53:59 (+0700) | #8 | 259538
pmquang
Member

[Minus]    0    [Plus]
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
[Profile] [PM]

quanta wrote:
À, OK, đã có cách:
Code:
# lsof -s -c httpd | awk 'NF >= 9 { size += $7 } END { print size }'
 

NF ở đây là number field nên nó phải bằng 9 mới đúng chứ nhỉ. Mặc dù không phải tổng quát lắm nhưng lệnh trên cũng khá hữu ích với mình.
Code:
httpd    3633 nobody  cwd    DIR               0,25      4096    3647702 /
httpd    3633 nobody  rtd    DIR               0,25      4096    3647702 /


Ps: công nhận quanta siêu command linux thật ^^
[Up] [Print Copy]
  [Question]   Tính tổng các file được tiến trình mở ra ? 21/03/2012 23:00:06 (+0700) | #9 | 259539
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

pmquang wrote:

quanta wrote:
À, OK, đã có cách:
Code:
# lsof -s -c httpd | awk 'NF >= 9 { size += $7 } END { print size }'
 

NF ở đây là number field nên nó phải bằng 9 mới đúng chứ nhỉ.
 

Code:
# lsof -s -c httpd | awk 'NF >= 10 { print $0 }'
httpd   17244 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   17245 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   17349 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   17350 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   17351 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   17393 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   17394 apache    4u  sock     0,5           4637231 can't identify protocol
httpd   18760   root    4u  sock     0,5           4637231 can't identify protocol


Ồ, như vậy là lệnh trên vẫn chưa đúng. Hy vọng là cái này đã chặn được hết các trường hợp:
Code:
# lsof -s -c httpd | awk '$8 ~ "[0-9]+" { size += $7 } END { print size }'
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|