運維常用的linux命令

1、vmstat  報告虛擬內存統計信息

      vmstat [-V] [-n] [delay [count]]         delay是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。         例如:  vmstat -n 3       (每個3秒刷新一次) 

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---

r b       swpd   free   buff cache        si  so         bi   bo        in  cs      us sy id wa

1 0    144 186164 105252 2386848    0    0    18   166   83     2     48 21 31 0 

2 0    144 189620 105252 2386848    0    0     0   177  1039 1210   34 10 56 0 

0 0    144 214324 105252 2386848    0    0     0    10   1071   670    32 5 63 0 

Procs 

r: 等待運行的進程數 b: 處在非中斷睡眠狀態的進程數 w: 被交換出去的可運行的進程數。此數由 linux 計算得出,但 linux 並不耗盡交換空間 

Memory 

 swpd: 虛擬內存使用情況,單位:KB

 free: 空閒的內存,單位KB

buff: 被用來做爲緩存的內存數,單位:KB  

Swap 

si: 從磁盤交換到內存的交換頁數量,單位:KB/秒

so: 從內存交換到磁盤的交換頁數量,單位:KB/秒

IO 

bi: 發送到塊設備的塊數,單位:塊/秒

bo: 從塊設備接收到的塊數,單位:塊/秒

System 

in: 每秒的中斷數,包括時鐘中斷

cs: 每秒的環境(上下文)切換次數

CPU 

按 CPU 的總使用百分比來顯示 

us: CPU 使用時間

sy: CPU 系統使用時間

id: 閒置時間

如果在多用戶環境中us+sys》80,進程就會在運行隊列中花費等待時間,響應時間和吞吐量就會下降。wa>40表明磁盤io沒有也許存在不合理的平衡,或者對磁盤操作比較頻繁

 

2、lsmod  查看linux系統中已經加載的模塊數

比如說我們可以查看系統中是否已經加載ip_vs的模塊 ipvsadm  :lsmod | grep ip_vs

 

3、lsof(list open files)是一個列出當前系統打開文件的工具

lsof 常見的用法是查找應用程序打開的文件的名稱和數目。可用於查找出某個特定應用程序將日誌數據記錄到何處,或者正在跟蹤某個問題。

lsof -c string 顯示COMMAND列中包含指定字符的進程所有打開的文件

lsof -u username 顯示所屬user進程打開的文件 

lsof -g gid 顯示歸屬gid的進程情況 

lsof +d /DIR/ 顯示目錄下被進程打開的文件 

lsof +D /DIR/ 同上,但是會搜索目錄下的所有目錄,時間相對較長 

lsof -d FD 顯示指定文件描述符的進程 

lsof -n 不將IP轉換爲hostname,缺省是不加上-n參數 

lsof -i 用以顯示符合條件的進程情況

例如:查看22端口現在運行的情況

# lsof -i :22

查看所屬root用戶進程所打開的文件類型爲txt的文件:

# lsof -a -u root -d txt

在卸載文件系統時,如果該文件系統中有任何打開的文件,操作通常將會失敗。那麼通過lsof可以找出那些進程在使用當前要卸載的文件系統,如下:

# lsof /GTES11/

當系統中的某個文件被意外地刪除了,只要這個時候系統中還有進程正在訪問該文件,那麼我們就可以通過lsof從/proc目錄下恢復該文件的內容。 假如由於誤操作將/var/log/messages文件刪除掉了,那麼這時要將/var/log/messages文件恢復的方法如下:

首先使用lsof來查看當前是否有進程打開/var/logmessages文件,如下:

# lsof |grep /var/log/messages 

syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)

從上面的信息可以看到 PID 1283(syslogd)打開文件的文件描述符爲 2。同時還可以看到/var/log/messages已經標記被刪除了。因此我們可以在 /proc/1283/fd/2 (fd下的每個以數字命名的文件表示進程對應的文件描述符)中查看相應的信息,如下:

# head -n 10 /proc/1283/fd/2 

從上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢復的數據。如果可以通過文件描述符查看相應的數據,那麼就可以使用 I/O 重定向將其複製到文件中,如:

cat /proc/1283/fd/2 > /var/log/messages

4、dmidecode  幫助收集電腦系統信息的管理系統

    dmidecode -s system-serial-number   //顯示系統序列號   -s, --string KEYWORD Only display the value of the given DMI string   只顯示指定DMI字符串的信息

    dmidecode -t memory      //顯示內存信息  -t, --type TYPE       Only display the entries of given type  #只顯示指定條目的信息

    dmidecode -t 11       #顯示OEM信息

5、mii-tool 這是Linux下專門設置網卡工作模式的命令

    (1) 查看網卡的工作模式,輸入命令:#mii-tool -v        “100BaseTx-FD”意爲100M Full Duplex。

    (2) 更改網卡的工作模式,輸入命令:#mii-tool -F media [interface]    

例如,設置網卡工作在10M半雙工模式下,輸入命令:#mii-tool -F 10baseT-HD eth0

    (3)恢復網卡的自適應工作模式,輸入命令:#mii-tool -r eth0

6、sort ~/.bash_history | uniq -c | sort -nr | head      //可以查看系統用戶最常使用的幾個命令,其中uniq -c 即打印每一重複行出現的次數。sort -n是按數值排序 -r是指逆序顯示。

7、uptime 查看系統負載值  1,5,15分鐘

     /proc/loadavg  也顯示了系統的負載值

8、顯示消耗內存/CPU最多的10個進程

ps aux | sort -nk +4 | tail

ps aux | sort -nk +3 | tail

9、查看apache的併發請求數及其TCP連接狀態

netstat -n|awk '/^tcp/{++S[$NF]} END {for (a in S) print a,S[a]}'

10、把當前目錄下*.sh文件改名爲*.SH

find . -name "*.sh" | sed 's/(.*).sh/mv ? 1 .SH/ ' |sh

find . -name "*.sh" | sed 's/(.*).sh/mv & 1 .SH/ ' |sh

11、ssh執行遠程的程序,並在本地顯示

ssh -n -l root 10.48.30.197 "ls -l /root"

12、以http方式共享當前文件夾的文件

python -m SimpleHTTPServer

在瀏覽器中輸入:http://IP:8000/ 即可下載當前目錄下的文件。

13、locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。

locate -n 100 a.out : 尋找所有叫 a.out 的檔案,但最多隻顯示 100 個

locate chdrv : 尋找所有叫 chdrv 的檔案

find / -name "*chdrv*" -print   同上,區別:find只查找具體的文件和目錄,顯示數目要比上述命令小。

14、which  取得程序名列表。命令位置的具體路徑。

root@svn-30-194:~# which top

/usr/bin/top

 15、Linux 禁ping和開啓ping操作

 # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

如果要恢復,只要:

# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章