運維一定要懂的Linux高階命令
一、實用的 xargs 命令
xargs 這個命令比較方便實用的。透過這個命令,將命令輸出的結果作為引數傳遞給另一個命令。例如,想找出某個路徑下以 .conf 結尾的檔案,並將這些檔案進行分類,普通的做法是先將以 .conf 結尾的檔案先找出來,然後輸出到一個檔案中,接著 cat 這個檔案,並使用 file 檔案分類命令去對輸出的檔案進行分類。這個普通的方法還的確是略顯麻煩,那麼這個時候 xargs 命令就派上用場了。例1:找出 / 目錄下以 .conf 結尾的檔案,並進行檔案分類
命令:# find / -name *.conf -type f -print | xargs file
輸出結果如下所示:
xargs 後面不僅僅可以加檔案分類的命令,你還可以加其他的很多命令,比如說實在一點的tar命令,你可以使用 find 命令配合 tar 命令,將指定路徑的特殊檔案使用 find 命令找出來,然後配合 tar 命令將找出的檔案直接打包,命令如下:
# find / -name *.conf -type f -print | xargs tar cjf test.tar.gz
二、命令或指令碼後臺執行
有時候我們進行一些操作的時候,不希望我們的操作在終端會話斷了之後就跟著斷了,特別是一些資料庫匯入匯出操作,如果涉及到大資料量的操作,我們不可能保證我們的網路在我們的操作期間不出問題,所以後臺執行指令碼或者命令對我們來說是一大保障。比如說我們想把資料庫的匯出操作後臺執行,並且將命令的操作輸出記錄到檔案,那麼我們可以這麼做:
nohup mysqldump -uroot -pxxxxx —all-databases > ./alldatabases.sql &(xxxxx是密碼)
當然如果你不想密碼明文,你還可以這麼做:
nohup mysqldump -uroot -pxxxxx —all-databases > ./alldatabases.sql (後面不加&符號)
執行了上述命令後,會提示叫你輸入密碼,輸入密碼後,該命令還在前臺執行,但是我們的目的是後天執行該命令,這個時候你可以按下 Ctrl+Z,然後在輸入bg就可以達到第一個命令的效果,讓該命令後臺執行,同時也可以讓密碼隱蔽輸入。命令後臺執行的結果會在命令執行的當前目錄下留下一個 nohup.out 檔案,檢視這個檔案就知道命令有沒有執行報錯等資訊。
三、找出當前系統記憶體使用量較高的程式
在很多運維的時候,我們發現記憶體耗用較為嚴重,那麼怎麼樣才能找出記憶體消耗的程式排序呢?
命令:# ps -aux | sort -rnk 4 | head -20
輸出的第4列就是記憶體的耗用百分比。最後一列就是相對應的程式。
四、找出當前系統CPU使用量較高的程式
在很多運維的時候,我們發現CPU耗用較為嚴重,那麼怎麼樣才能找出CPU消耗的程式排序呢?
命令:# ps -aux | sort -rnk 3 | head -20
輸出的第3列為 CPU 的耗用百分比,最後一列就是對應的程式。我想大家應該也發現了,sort 命令後的3、4其實就是代表著第3列進行排序、第4列進行排序。
五、同時檢視多個日誌或資料檔案
在日常工作中,我們檢視日誌檔案的方式可能是使用tail命令在一個個的終端檢視日誌檔案,一個終端就看一個日誌檔案。包括我在內也是,但是有時候也會覺得這種方式略顯麻煩,其實有個工具叫做 multitail 可以在同一個終端同時檢視多個日誌檔案。首先安裝 multitail:
# wget ftp://ftp.is.co.za/mirror/ftp.rpmforge.net/redhat/el6/en/x86_64/dag/RPMS/multitail-5.2.9-1.el6.rf.x86_64.rpm
multitail 工具支援文字的高亮顯示,內容過濾以及更多你可能需要的功能。
如下就來一個有用的例子:
此時我們既想檢視 secure 的日誌指定過濾關鍵字輸出,又想檢視實時的網路 ping 情況:
命令如下:
# multitail -e "Accepted" /var/log/secure -l "ping baidu.com"
不是很方便?如果平時我們想檢視兩個日誌之間的關聯性,可以觀察日誌輸出是否有觸發等。如果分開兩個終端可能來回進行切換有點浪費時間,這個multitail工具檢視未嘗不是一個好方法。
六、持續 ping 並將結果記錄到日誌
很多時候,運維總會聽到一個聲音,是不是網路出什麼問題了啊,導致業務出現怪異的症狀,肯定是伺服器網路出問題了。這個就是俗稱的背鍋,業務出了問題,第一時間相關人員找不到原因很多情況下就會把問題歸結於伺服器網路有問題。
這個時候你去 ping 幾個包把結果丟出來,人家會反駁你,剛剛那段時間有問題而已,現在業務都恢復正常了,網路肯定正常啊,這個時候估計你要氣死。
你要是再拿出zabbix等網路監控的資料,這個時候就不太妥當了,zabbix的採集資料間隔你不可能設定成1秒鐘1次吧?小編就遇到過這樣的問題,結果我透過以下的命令進行了ping監控採集。
然後再有人讓我背鍋的時候,我把出問題時間段的ping資料庫擷取出來,大家公開談,結果那次被我叼槓回去了,以後他們都不敢輕易甩鍋了,這個感覺好啊。
命令:
ping http:// api.jpush.cn | awk ‘{ print $0” “ strftime(“%Y-%m-%d %H:%M:%S”,systime()) } ‘ >> /tmp/jiguang.log &
輸出的結果會記錄到 /tmp/jiguang.log 中,每秒鐘新增一條 ping 記錄,如下:
七、檢視tcp連線狀態
指定檢視80埠的tcp連線狀態,有利於分析連線是否釋放,或者攻擊時進行狀態分析。
命令:
# netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
八、查詢80埠請求數最高的前20個IP
有時候業務的請求量突然上去了,那麼這個時候我們可以檢視下請求來源IP情況,如果是集中在少數IP上的,那麼可能是存在攻擊行為,我們使用防火牆就可以進行封禁。命令如下:
# netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
九、ssh實現埠轉發
可能很多的朋友都聽說過 ssh 是 linux 下的遠端登入安全協議,就是通俗的遠端登入管理伺服器。但是應該很少朋友會聽說過 ssh 還可以做埠轉發。其實 ssh 用來做埠轉發的功能還是很強大的,下面就來做示範。
例項背景:我們公司是有堡壘機的,任何操作均需要在堡壘機上進行,有些開發人員需要訪問 ELasticSearch 的 head 皮膚檢視叢集狀態,但是我們並不想將 ElasticSearch 的9200 埠對映出去,依然想透過堡壘機進行訪問。
所以才會將通往堡壘機(192.168.1.15)的請求轉發到伺服器 ElasticSearch(192.168.1.19)的 9200 上。
例子:
將發往本機(192.168.1.15)的 9200 埠訪問轉發到 192.168.1.19 的 9200 埠
ssh -p 22 -C -f -N -g -L 9200:192.168.1.19:9200 ihavecar@192.168.1.19
記住:前提是先進行秘鑰傳輸。
命令執行完後,訪問 192.168.1.15:9200 埠則真實是訪問 192.168.1.19:9200 埠
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013542/viewspace-2910195/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux高階命令Linux
- Docker 運維高階應用管理Docker運維
- Linux高階命令——cut命令用法Linux
- Linux運維命令重要嗎?運維入門Linux運維
- 做運維要懂雲端計算嗎?Linux運維學習運維Linux
- Linux運維進階之路Linux運維
- Linux運維一定要看的網際網路行業薪酬分析!!!Linux運維行業
- 【運維必看】Linux命令之lsblk命令運維Linux
- Linux日常運維管理命令Linux運維
- 高階Linux運維工程師日常涉及哪些工作?Linux學習Linux運維工程師
- 只有老運維人才能懂的運維乾貨運維
- 超實用的 Linux 高階命令!Linux
- 高階Linux運維工程師必備技能(掃盲篇)Linux運維工程師
- chattr命令如何使用?Linux運維核心命令Linux運維
- Linux 運維常用命令Linux運維
- linux運維常用命令Linux運維
- 《前端運維》一、Linux基礎--基礎命令(1)前端運維Linux
- Linux下more命令高階用法Linux
- Linux下mv命令高階用法Linux
- linux 運維 命令 + 運維需要掌握些什麼東西Linux運維
- 02 . Ansible高階用法(運維開發篇)運維
- Linux運維pwd命令有什麼用途?linux運維主要做什麼Linux運維
- 運維人員常用的Linux命令彙總運維Linux
- Linux運維常用的20個命令彙總!Linux運維
- linux高階工具命令 -- vmstat介紹Linux
- Linux下 ls 命令的高階用法8例Linux
- 這八個雲Mysql的要點,運維一定要了解MySql運維
- react高階元件的一些運用React元件
- Devops 開發運維高階篇之容器管理dev運維
- Linux運維-搭建高可用Redis快取Linux運維Redis快取
- 全新Linux+Python高階運維班第三次作業LinuxPython運維
- 【Linux入門】Linux運維必學的命令有哪些?Linux運維
- 【Linux運維教程】Linux命令面試的簡答題(三)!Linux運維面試
- 【分享篇】運維人員常用的一些Linux命令盤點!運維Linux
- IDEA一定要懂的32條快捷鍵Idea
- Linux 運維必備的 40 個命令總結Linux運維
- 推薦5個常用Linux運維命令Linux運維
- 工作中一定要掌握的六西格瑪高階流程圖(SIPOC)!流程圖