系統(tǒng)管理員(sysadmins)負(fù)責(zé)日常維護(hù)生產(chǎn)系統(tǒng)和服務(wù)。其中一個關(guān)鍵任務(wù)就是保證功能性服務(wù)能24小時工作。為了這個,他們得很小心地計劃備份方式,災(zāi)難管理策略,定時維護(hù),安全審查,等等。和任意其他管理一樣,系統(tǒng)管理員也有他們的必備工具。在正確的時間正確的情況下使用合適的工具,可以幫助維護(hù)操作系統(tǒng)的健壯,達(dá)到最小的服務(wù)中斷時間和最大的運行時間。
這篇文章會介紹一些系統(tǒng)管理員日常活動中最常用和有效的命令行工具。如果你想推薦其他沒在這里列出來的好用的工具,別忘了在評論區(qū)里分享一下。
網(wǎng)絡(luò)工具
ping:通過ICMP回應(yīng)/回復(fù)報文來檢查遠(yuǎn)端主機(jī)的端到端連接性(RTT延時,抖動,丟包)。用來檢查系統(tǒng)狀態(tài)和可連接性很不錯。
hping:網(wǎng)絡(luò)掃描和檢測工具,可以產(chǎn)生ICMP/TCP/UDP ping數(shù)據(jù)包。常常用于高級端口掃描,防火墻測試,手動MTU路徑發(fā)現(xiàn)和碎片測試。
traceroute:通過TTL限定的ICMP/UDP/TCP偵測包來發(fā)現(xiàn)從本地主機(jī)到遠(yuǎn)端目標(biāo)主機(jī)之間的第三層轉(zhuǎn)發(fā)路徑。用來調(diào)試網(wǎng)絡(luò)連接性和路由問題。
mtr:traceroute的一個變種,能根據(jù)運行時統(tǒng)計數(shù)據(jù)整理出每一跳的包丟失/抖動。用來評估路由路徑延時很不錯。
netcat/socat:TCP/IP網(wǎng)絡(luò)里的瑞士軍刀,可以讀/寫 TCP/UDP 協(xié)議字節(jié)流。用來調(diào)試防火墻策略和服務(wù)可用性很不錯。
dig:DNS調(diào)試工具,可以生成正向查詢,反向查詢,搜索域名服務(wù)器,檢查CNAME,MX和其他DNS記錄。可以在偵錯的時候查詢特定的DNS服務(wù)器。
nslookup:另外一個DNS檢查/調(diào)試工具。支持所有DNS查詢和記錄。可以查詢特定DNS服務(wù)器。
dnsyo:一個DNS測試工具,通過對全世界1500個不同網(wǎng)絡(luò)中的大量開放解析器執(zhí)行DNS查詢來測試DNS傳輸。
lsof:顯示進(jìn)程打開的文件信息(例如,普通文件,管道或套接字)。用來監(jiān)視網(wǎng)絡(luò)連接很不錯。
iftop:一個基于ncurses的命令行界面應(yīng)用,可以實時監(jiān)視各個網(wǎng)絡(luò)物理接口上的網(wǎng)絡(luò)連接和帶寬占用。用來記錄霸占帶寬的應(yīng)用、用戶、目的地和端口等很不錯。
netstat:一個網(wǎng)絡(luò)統(tǒng)計工具,可以顯示狀態(tài)以及統(tǒng)計信息,當(dāng)前網(wǎng)絡(luò)連接(TCP/UDP端口,IP地址)、路由表、TX/RX traffic以及網(wǎng)絡(luò)協(xié)議。用來做網(wǎng)絡(luò)相關(guān)診斷和性能調(diào)試很不錯。
tcpdump:一個常用的基于libpcap抓包庫的包偵測工具。可以按伯克利包過濾器格式定義抓包條件。
tshark:另一個命令行抓包工具,和它的GUI版本W(wǎng)ireshark完全兼容。支持1000種協(xié)議而且這個列表還在增加。用來調(diào)試、分析和保存實時網(wǎng)絡(luò)封包信息很不錯。
ip:一個多功能的命令行網(wǎng)絡(luò)工具,是iproute2包的一部分。可以檢查和修改路由表、網(wǎng)絡(luò)設(shè)備狀態(tài)以及IP隧道設(shè)置。用來查看路由表、增加/刪除靜態(tài)路由、配置網(wǎng)絡(luò)接口、以及調(diào)試路由問題很有用。
ifup/ifdown:用來激活和關(guān)閉特定的網(wǎng)絡(luò)接口。經(jīng)常用于重啟整個網(wǎng)絡(luò)服務(wù)。
autossh:一個能建立SSH連接并在斷線后自動重新連接的程序。用來創(chuàng)建長時間保持的穿越嚴(yán)格企業(yè)網(wǎng)絡(luò)的SSH隧道很有用。
iperf:一個網(wǎng)絡(luò)測試工具,通過在發(fā)送自定義TCP/UDP數(shù)據(jù)流來衡量主機(jī)間雙向最大吞吐量。
elinks/lynx:為基于命令行的服務(wù)器環(huán)境下使用的基于文字的網(wǎng)頁瀏覽器。
安全工具
iptables:一個用戶空間下的命令行工具,用于配置Linux內(nèi)核防火墻。可以創(chuàng)建和修改Linux內(nèi)核空間的網(wǎng)絡(luò)包接收、轉(zhuǎn)發(fā)和發(fā)送規(guī)則。
nmap:一個常用的為了安全審查目的的端口掃描和網(wǎng)絡(luò)發(fā)現(xiàn)工具。用來在本地網(wǎng)絡(luò)中找出哪些主機(jī)開機(jī)并運行起來了以及某臺特定主機(jī)打開了哪些端口很有用。
TCP Wrappers:一個主機(jī)端的網(wǎng)絡(luò)訪問控制列表工具,可以過濾進(jìn)入/出去的網(wǎng)絡(luò)請求/回復(fù)。經(jīng)常配合iptables一起使用,作為額外一層安全保護(hù)。
getfacl/setfacl:查看和定制文件和目錄的訪問控制列表,作為傳統(tǒng)文件權(quán)限的擴(kuò)展。
cryptsetup:用于創(chuàng)建和管理LUKS加密磁盤分區(qū)。
lynis:一個命令行的漏洞掃描工具。可以掃描整個Linux系統(tǒng),并匯報潛在的漏洞以及相關(guān)可能解決方案。
maldet:一個惡意軟件掃描命令行工具,可以檢測和隔離潛在的感染文件。可以在后臺運行長期監(jiān)視。
rkhunter/chkrootkit:一個命令行工具,可以掃描本地系統(tǒng)里的潛在木馬、隱藏后門和可疑利用,并禁用它們。
存儲工具
fdisk:一個磁盤分區(qū)編輯工具。用于查看、創(chuàng)建和修改本地磁盤或可移動磁盤的分區(qū)。
sfdisk:fdisk的一個變種,能用一種非交互的方式訪問或更新磁盤分區(qū)表。用來自動化備份和恢復(fù)過程中的磁盤分區(qū)很有用。
parted:另一個磁盤分區(qū)編輯器,支持超過2TB的磁盤的GPT(GUID分區(qū)表)格式。gparted是parted的一個前端GTK+圖形界面。
df:用來查看不同分區(qū)或文件路徑的已用/可用存儲空間和掛載點。還有一個更易用的變種dfc。
du:用來查看不同文件和目錄的當(dāng)前磁盤占用情況(例如,du -sh *)。
mkfs:一個磁盤格式化命令,用來在獨立磁盤分區(qū)上建立文件系統(tǒng)。有多個文件系統(tǒng)相關(guān)的版本:ext2、ext3、ext4、bfs、ntfs、vfat/fat。
fsck:一個命令行工具,用來檢查文件系統(tǒng)錯誤并嘗試可能的修復(fù)。通常在啟動時自動運行,但是在卸載一個分區(qū)后也可以根據(jù)需要手動運行。
mount:用來映射一個物理磁盤分區(qū)、網(wǎng)絡(luò)共享或遠(yuǎn)程存儲到一個本地掛載點。任何對掛載點里的讀/寫操作都是對應(yīng)實際存儲的實際數(shù)據(jù)讀/寫。
mdadm:一個命令行工具,用來管理物理塊設(shè)備上的軟件RAID設(shè)備。可以創(chuàng)建、構(gòu)造、增長或監(jiān)視RAID陣列。
lvm:一套命令行工具集,用來管理卷分組和物理/邏輯卷,可以用最小的停機(jī)時間在多個物理磁盤上創(chuàng)建、調(diào)整大小、拆分和合并卷。
日志訪問工具
tail:用來查看一個(增長中的)日志文件的尾部。有幾個變種,包括multitail(多窗口查看)和ztail(支持inotify和正則表達(dá)式過濾以及顏色)。
logrotate:一個命令行工具,可以在根據(jù)設(shè)定的時間段拆分、壓縮并通過郵件發(fā)送舊的/大的日志文件。用來管理可能產(chǎn)生大量日志文件的繁忙主機(jī)很有用。
grep/egrep:可以通過特定的模式或正則表達(dá)式過濾日志內(nèi)容。變種包括用戶更友好的ack和速度更快的ag。
awk:一個多功能的文本掃描和處理工具。常用于從文本/日志文件中找出特定的列或內(nèi)容,并輸出給其他工具。
sed:一個文本流編輯工具,可以過濾和改變(例如,刪除行/空格、替換/轉(zhuǎn)換單詞、增加計數(shù))文本流并通過管道連接到stdout/stderr或者其他工具。
備份工具
rsync:一個快速的單向增量備份和鏡像工具(LCTT 譯注:rsync 應(yīng)是雙向的)。常用于復(fù)制一個數(shù)據(jù)倉庫到線下存儲,可以選擇通過SSH或stunnel的加密連接。
rdiff-backup:另一個有效利用帶寬的增量備份工具。管理兩個連續(xù)快照之間的差分。
duplicity:一個加密的增量備份工具。使用GnuPG加密備份,并通過SSH上傳到遠(yuǎn)程服務(wù)器。
性能監(jiān)視工具
top:一個命令行的進(jìn)程查看程序。可以監(jiān)視系統(tǒng)負(fù)載、進(jìn)程狀態(tài)、CPU和內(nèi)存占用。有一個更易用的變種htop。
ps:顯示系統(tǒng)所有運行中進(jìn)程的一個快照。輸出可以定制成顯示PID、PPID、用戶、負(fù)載、內(nèi)存、積累的用戶/系統(tǒng)時間、啟動時間、以及更多。有一個變種pstree可以用樹結(jié)構(gòu)顯示進(jìn)程。
nethogs:一個帶寬監(jiān)視工具,按進(jìn)程來分組顯示活動網(wǎng)絡(luò)連接,實時匯報每個進(jìn)程占用的(上傳/下載)帶寬。
ngxtop:一個網(wǎng)頁服務(wù)器訪問日志解析和監(jiān)視工具,界面受到了top命令啟發(fā)。它可以實時匯報整理過的頁面請求列表,包括頻率、大小、HTTP返回值、IP地址,等等。
vmstat:一個簡單的命令行工具,可以顯示多個實時系統(tǒng)特征,例如進(jìn)程數(shù)、剩余內(nèi)存、分頁狀態(tài)、CPU占用、塊設(shè)備I/O活動、中斷/上下文切換統(tǒng)計、等等。
iotop:一個基于ncurses的I/O監(jiān)視工具,可以實時排序顯示所有運行中進(jìn)程的磁盤I/O活動。
iostat:一個命令行工具,可以匯報當(dāng)前CPU使用情況,以及設(shè)備I/O使用情況,這里的I/O使用情況(例如,塊傳輸速度、字節(jié)讀/寫速度)是按設(shè)備或分區(qū)來匯報的。
效率工具
screen:用來把一個單一的終端拆分成多個持久的虛擬終端,也支持遠(yuǎn)程用戶訪問,類似teamviewer的屏幕分享功能。
tmux:另一個終端復(fù)用工具,可以支持多個長期會話,還可以橫向/縱向拆分終端。
cheat:一個簡單的命令行工具,可以讓你查看多個常用Linux命令的備忘錄,就在手邊非常方便。內(nèi)建的備忘錄也可以完全定制。
apropos:用來在幫助手冊里查找描述或關(guān)鍵字很有用。
包管理工具
apt:基于Debian系統(tǒng)的事實上的包管理工具,例如Debian、Ubuntu或Backtrack。一個救生圈。
apt-fast:apt-get的一個支撐應(yīng)用,可以通過多個并行連接明顯提高apt-get的下載速度。
apt-file:用來查看某個特定文件屬于哪個.deb包,或者顯示一個特定.deb包里的所有文件。已安裝和未安裝的包都能支持。
dpkg:一個用來手動安裝.deb包的命令行工具。強(qiáng)烈建議盡可能的使用apt。
yum:用于基于紅帽的系統(tǒng)的自動包管理工具,比如RHEL、CentOS或Fedora。這是另一個救生圈!
rpm:通常我都是使用 rpm 來配合 yum 使用。有很多有用的參數(shù),比如-q、-f、-l可以分別用來查詢、指定文件和路徑。
硬件工具
lspci:一個命令行工具,可以顯示已安裝的PCI設(shè)備的各種信息,比如型號名稱、設(shè)備驅(qū)動、設(shè)備功能、內(nèi)存地址、PCI總線地址。
lshw:一個命令行工具,可以查詢和顯示不同分類下的硬件配置的詳細(xì)信息(例如,處理器、內(nèi)存、主板、網(wǎng)絡(luò)、存儲)。支持多重輸出格式:html、xml、json、text。
inxi:一個綜合硬件查看工具,可以提供不同硬件模塊的總覽,例如CPU,顯卡,聲卡,網(wǎng)卡,溫度/風(fēng)扇傳感器,等等。
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19158瀏覽量
306450 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
595瀏覽量
27451
發(fā)布評論請先 登錄
相關(guān)推薦
評論