系統管理者(sysadmins)負責日常維護生産系統和服務。其中一個關鍵任務就是保證功能性服務能24小時工作。為了這個,他們得很小心地計劃備份方式,災難管理政策,定時維護,安全審查,等等。和任意其他管理一樣,系統管理者也有他們的必備工具。在正确的時間正确的情況下使用合适的工具,可以幫助維護作業系統的健壯,達到最小的服務中斷時間和最大的運作時間。
這篇文章會介紹一些系統管理者日常活動中最常用和有效的指令行工具。如果你想推薦其他沒在這裡列出來的好用的工具,别忘了在評論區裡分享一下。
<a target="_blank"></a>
ping:通過icmp回應/回複封包來檢查遠端主機的端到端連接配接性(rtt延時,抖動,丢包)。用來檢查系統狀态和可連接配接性很不錯。
traceroute:通過ttl限定的icmp/udp/tcp偵測包來發現從本地主機到遠端目标主機之間的第三層轉發路徑。用來調試網絡連接配接性和路由問題。
mtr:traceroute的一個變種,能根據運作時統計資料整理出每一跳的包丢失/抖動。用來評估路由路徑延時很不錯。
dig:dns調試工具,可以生成正向查詢,反向查詢,搜尋域名伺服器,檢查cname,mx和其他dns記錄。可以在偵錯的時候查詢特定的dns伺服器。
nslookup:另外一個dns檢查/調試工具。支援所有dns查詢和記錄。可以查詢特定dns伺服器。
dnsyo:一個dns測試工具,通過對全世界1500個不同網絡中的大量開放解析器執行dns查詢來測試dns傳輸。
lsof:顯示程序打開的檔案資訊(例如,普通檔案,管道或套接字)。用來監視網絡連接配接很不錯。
iftop:一個基于ncurses的指令行界面應用,可以實時監視各個網絡實體接口上的網絡連接配接和帶寬占用。用來記錄霸占帶寬的應用、使用者、目的地和端口等很不錯。
netstat:一個網絡統計工具,可以顯示狀态以及統計資訊,目前網絡連接配接(tcp/udp端口,ip位址)、路由表、tx/rx traffic以及網絡協定。用來做網絡相關診斷和性能調試很不錯。
ip:一個多功能的指令行網絡工具,是iproute2包的一部分。可以檢查和修改路由表、網絡裝置狀态以及ip隧道設定。用來檢視路由表、增加/删除靜态路由、配置網絡接口、以及調試路由問題很有用。
ifup/ifdown:用來激活和關閉特定的網絡接口。經常用于重新開機整個網絡服務。
iperf:一個網絡測試工具,通過在發送自定義tcp/udp資料流來衡量主機間雙向最大吞吐量。
getfacl/setfacl:檢視和定制檔案和目錄的通路控制清單,作為傳統檔案權限的擴充。
cryptsetup:用于建立和管理luks加密磁盤分區。
lynis:一個指令行的漏洞掃描工具。可以掃描整個linux系統,并彙報潛在的漏洞以及相關可能解決方案。
maldet:一個惡意軟體掃描指令行工具,可以檢測和隔離潛在的感染檔案。可以在背景運作長期監視。
fdisk:一個磁盤分區編輯工具。用于檢視、建立和修改本地磁盤或可移動磁盤的分區。
sfdisk:fdisk的一個變種,能用一種非互動的方式通路或更新磁盤分區表。用來自動化備份和恢複過程中的磁盤分區很有用。
df:用來檢視不同分區或檔案路徑的已用/可用存儲空間和挂載點。還有一個更易用的變種dfc。
du:用來檢視不同檔案和目錄的目前磁盤占用情況(例如,du -sh *)。
mkfs:一個磁盤格式化指令,用來在獨立磁盤分區上建立檔案系統。有多個檔案系統相關的版本:ext2、ext3、ext4、bfs、ntfs、vfat/fat。
fsck:一個指令行工具,用來檢查檔案系統錯誤并嘗試可能的修複。通常在啟動時自動運作,但是在解除安裝一個分區後也可以根據需要手動運作。
mount:用來映射一個實體磁盤分區、網絡共享或遠端存儲到一個本地挂載點。任何對挂載點裡的讀/寫操作都是對應實際存儲的實際資料讀/寫。
mdadm:一個指令行工具,用來管理實體塊裝置上的軟體raid裝置。可以建立、構造、增長或監視raid陣列。
lvm:一套指令行工具集,用來管理卷分組和實體/邏輯卷,可以用最小的停機時間在多個實體磁盤上建立、調整大小、拆分和合并卷。
logrotate:一個指令行工具,可以在根據設定的時間段拆分、壓縮并通過郵件發送舊的/大的日志檔案。用來管理可能産生大量日志檔案的繁忙主機很有用。
grep/egrep:可以通過特定的模式或正規表達式過濾日志内容。變種包括使用者更友好的ack和速度更快的ag。
awk:一個多功能的文本掃描和處理工具。常用于從文本/日志檔案中找出特定的列或内容,并輸出給其他工具。
sed:一個文本流編輯工具,可以過濾和改變(例如,删除行/空格、替換/轉換單詞、增加計數)文本流并通過管道連接配接到stdout/stderr或者其他工具。
duplicity:一個加密的增量備份工具。使用gnupg加密備份,并通過ssh上傳到遠端伺服器。
top:一個指令行的程序檢視程式。可以監視系統負載、程序狀态、cpu和記憶體占用。有一個更易用的變種htop。
ps:顯示系統所有運作中程序的一個快照。輸出可以定制成顯示pid、ppid、使用者、負載、記憶體、積累的使用者/系統時間、啟動時間、以及更多。有一個變種pstree可以用樹結構顯示程序。
ngxtop:一個網頁伺服器通路日志解析和監視工具,界面受到了top指令啟發。它可以實時彙報整理過的頁面請求清單,包括頻率、大小、http傳回值、ip位址,等等。
vmstat:一個簡單的指令行工具,可以顯示多個實時系統特征,例如程序數、剩餘記憶體、分頁狀态、cpu占用、塊裝置i/o活動、中斷/上下文切換統計、等等。
iotop:一個基于ncurses的i/o監視工具,可以實時排序顯示所有運作中程序的磁盤i/o活動。
iostat:一個指令行工具,可以彙報目前cpu使用情況,以及裝置i/o使用情況,這裡的i/o使用情況(例如,塊傳輸速度、位元組讀/寫速度)是按裝置或分區來彙報的。
screen:用來把一個單一的終端拆分成多個持久的虛拟終端,也支援遠端使用者通路,類似teamviewer的螢幕分享功能。
tmux:另一個終端複用工具,可以支援多個長期會話,還可以橫向/縱向拆分終端。
cheat:一個簡單的指令行工具,可以讓你檢視多個常用linux指令的備忘錄,就在手邊非常友善。内建的備忘錄也可以完全定制。
apropos:用來在幫助手冊裡查找描述或關鍵字很有用。
apt:基于debian系統的事實上的包管理工具,例如debian、ubuntu或backtrack。一個救生圈。
apt-fast:apt-get的一個支撐應用,可以通過多個并行連接配接明顯提高apt-get的下載下傳速度。
apt-file:用來檢視某個特定檔案屬于哪個.deb包,或者顯示一個特定.deb包裡的所有檔案。已安裝和未安裝的包都能支援。
dpkg:一個用來手動安裝.deb包的指令行工具。強烈建議盡可能的使用apt。
yum:用于基于紅帽的系統的自動包管理工具,比如rhel、centos或fedora。這是另一個救生圈!
rpm:通常我都是使用 rpm 來配合 yum 使用。有很多有用的參數,比如-q、-f、-l可以分别用來查詢、指定檔案和路徑。
lspci:一個指令行工具,可以顯示已安裝的pci裝置的各種資訊,比如型号名稱、裝置驅動、裝置功能、記憶體位址、pci總線位址。
lshw:一個指令行工具,可以查詢和顯示不同分類下的硬體配置的詳細資訊(例如,處理器、記憶體、主機闆、網絡、存儲)。支援多重輸出格式:html、xml、json、text。
如果你希望推薦沒有列在這裡的好用的工具,不要客氣,在評論區裡分享一下。
原文釋出時間:2014-12-01
本文來自雲栖合作夥伴“linux中國”