逼格高又實用的Linux高級命令,開發運維都要懂!

在運維的坑里摸爬滾打好幾年了,我還記得我剛開始的時候,我只會使用一些簡單的命令,寫腳本的時候,也是要多簡單有多簡單,所以有時候寫出來的腳本又長又臭。

像一些高級點的命令,比如說 Xargs 命令、管道命令、自動應答命令等,如果當初我要是知道,那我也可能寫出簡潔高效的腳本。

不管出于任何原因,我都想對一些 Linux 使用的高級命令進行用法說明,利人利己,以后不記得的話,我也可以回頭翻來看看。

01

實用的 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

02

命令或腳本后臺運行

有時候我們進行一些操作的時候,不希望我們的操作在終端會話斷了之后就跟著斷了,特別是一些數據庫導入導出操作,如果涉及到大數據量的操作,我們不可能保證我們的網絡在我們的操作期間不出問題,所以后臺運行腳本或者命令對我們來說是一大保障。

比如說我們想把數據庫的導出操作后臺運行,并且將命令的操作輸出記錄到文件,那么我們可以這么做:

nohup mysqldump -uroot -pxxxxx —all-databases > ./alldatabases.sql &(xxxxx是密碼)

當然如果你不想密碼明文,你還可以這么做:

nohup mysqldump -uroot -pxxxxx —all-databases > ./alldatabases.sql (后面不加&符號)

執行了上述命令后,會提示叫你輸入密碼,輸入密碼后,該命令還在前臺運行,但是我們的目的是后天運行該命令,這個時候你可以按下Ctrl+Z,然后在輸入bg就可以達到第一個命令的效果,讓該命令后臺運行,同時也可以讓密碼隱蔽輸入。

命令后臺執行的結果會在命令執行的當前目錄下留下一個nohup.out文件,查看這個文件就知道命令有沒有執行報錯等信息。

03

找出當前系統內存使用量較高的進程

在很多運維的時候,我們發現內存耗用較為嚴重,那么怎么樣才能找出內存消耗的進程排序呢?

命令:# ps -aux | sort -rnk 4 | head -20

輸出的第4列就是內存的耗用百分比。最后一列就是相對應的進程。

04

找出當前系統CPU使用量較高的進程

在很多運維的時候,我們發現CPU耗用較為嚴重,那么怎么樣才能找出CPU消耗的進程排序呢?

命令:# ps -aux | sort -rnk 3 | head -20

輸出的第3列為CPU的耗用百分比,最后一列就是對應的進程。

我想大家應該也發現了,sort 命令后的3、4其實就是代表著第3列進行排序、第4列進行排序。

05

同時查看多個日志或數據文件

在日常工作中,我們查看日志文件的方式可能是使用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

# yum -y localinstall multitail-5.2.9-1.el6.rf.x86_64.rpm

multitail工具支持文本的高亮顯示,內容過濾以及更多你可能需要的功能。

如下就來一個有用的例子:

此時我們既想查看secure的日志指定過濾關鍵字輸出,又想查看實時的網絡ping情況:

命令如下:

# multitail -e "Accepted" /var/log/secure -l "ping baidu.com"

是不是很方便?如果平時我們想查看兩個日志之間的關聯性,可以觀察日志輸出是否有觸發等。如果分開兩個終端可能來回進行切換有點浪費時間,這個multitail工具查看未嘗不是一個好方法。

06

持續ping并將結果記錄到日志

很多時候,運維總會聽到一個聲音,是不是網絡出什么問題了啊,導致業務出現怪異的癥狀,肯定是服務器網絡出問題了。這個就是俗稱的背鍋,業務出了問題,第一時間相關人員找不到原因很多情況下就會把問題歸結于服務器網絡有問題。

這個時候你去ping幾個包把結果丟出來,人家會反駁你,剛剛那段時間有問題而已,現在業務都恢復正常了,網絡肯定正常啊,這個時候估計你要氣死。

你要是再拿出zabbix等網絡監控的數據,這個時候就不太妥當了,zabbix的采集數據間隔你不可能設置成1秒鐘1次吧?小編就遇到過這樣的問題,結果我通過以下的命令進行了ping監控采集。

然后再有人讓我背鍋的時候,我把出問題時間段的ping數據庫截取出來,大家公開談,結果那次被我叼杠回去了,以后他們都不敢輕易甩鍋了,這個感覺好啊。

命令:

ping api.jpush.cn | awk ‘{ print $0”??? “ strftime(“%Y-%m-%d %H:%M:%S”,systime()) } ‘ >> /tmp/jiguang.log &

輸出的結果會記錄到/tmp/jiguang.log 中,每秒鐘新增一條ping記錄,如下:

07

查看tcp連接狀態

指定查看80端口的tcp連接狀態,有利于分析連接是否釋放,或者攻擊時進行狀態分析。

命令:# netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn

08

查找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

09

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端口。

后續

這次就先記錄到這里,下次有時間再繼續進行整理和記錄。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • 0.遠程桌面連接mstsc1.打開服務列表 services.msc2.刪除服務 sc...
    請叫我四爺閱讀 827評論 0 1
  • 1.Linux下如何用命令查看實時日志(完整命令) tail -f 路徑.log查看前多少行 tai-200f 路...
    qianyewhy閱讀 2,310評論 0 11
  • 本人陸陸續續接觸了ELK的1.4,2.0,2.4,5.0,5.2版本,可以說前面使用當中一直沒有太多感觸,最近使用...
    三杯水Plus閱讀 4,117評論 0 12
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,202評論 2 33
  • 本文整理了在實踐過程中使用的Linux網絡工具,這些工具提供的功能非常強大,我們平時使用的只是冰山一角,比如lso...
    老夫劉某閱讀 3,558評論 0 7