前言
大家好,這里是浩道linux,主要給大家分享linux、python、網絡通信相關的IT知識平臺。
今天浩道跟大家分享這兩天對實習生階段考核時給他布置的5道shell腳本題目,雖然花了兩天時間調試完成,但是質量還是不錯的,決定加雞腿,順便分享給大家看看!
1、檢測兩臺服務器指定目錄下的文件一致性
#!/bin/bash ###################################### 檢測兩臺服務器指定目錄下的文件一致性 ##################################### #通過對比兩臺服務器上文件的md5值,達到檢測一致性的目的 dir=/data/web b_ip=192.168.88.10 #將指定目錄下的文件全部遍歷出來并作為md5sum命令的參數,進而得到所有文件的md5值,并寫入到指定文件中 finddir-typef|xargsmd5sum>/tmp/md5_a.txt sshb_ip"finddir-typef|xargsmd5sum>/tmp/md5_b.txt" scpb_ip:/tmp/md5_b.txt/tmp #將文件名作為遍歷對象進行一一比對 forfin`awk'{print2}/tmp/md5_a.txt'`do #以a機器為標準,當b機器不存在遍歷對象中的文件時直接輸出不存在的結果 ifgrep-qw"f"/tmp/md5_b.txt then md5_a=`grep-w"f"/tmp/md5_a.txt|awk'{print1}'` md5_b=`grep-w"f"/tmp/md5_b.txt|awk'{print1}'` #當文件存在時,如果md5值不一致則輸出文件改變的結果 if[md5_a!=md5_b]then echo"fchanged." fi else echo"$fdeleted." fi done
2、定時清空文件內容,定時記錄文件大小
#!/bin/bash ################################################################# 每小時執行一次腳本(任務計劃),當時間為0點或12點時,將目標目錄下的所有文件內#容清空,但不刪除文件,其他時間則只統計各個文件的大小,一個文件一行,輸出到以時#間和日期命名的文件中,需要考慮目標目錄下二級、三級等子目錄的文件 ################################################################ logfile=/tmp/`date+%H-%F`.log n=`date+%H` if[n-eq00]||[n-eq12] then #通過for循環,以find命令作為遍歷條件,將目標目錄下的所有文件進行遍歷并做相應操作 foriin`find/data/log/-typef` do true>i done else foriin`find/data/log/-typef` do du-shi>>$logfile done fi
3、檢測網卡流量,并按規定格式記錄在日志中
#!/bin/bash ####################################################### #檢測網卡流量,并按規定格式記錄在日志中#規定一分鐘記錄一次 #日志格式如下所示: #2019-08-1220:40 #ens33input:1234bps #ens33output:1235bps ######################################################3 while: do #設置語言為英文,保障輸出結果是英文,否則會出現bug LANG=en logfile=/tmp/`date+%d`.log #將下面執行的命令結果輸出重定向到logfile日志中 exec>>$logfile date+"%F%H:%M" #sar命令統計的流量單位為kb/s,日志格式為bps,因此要*1000*8 sar-nDEV159|grepAverage|grepens33|awk'{print$2," ","input:"," ",$5*1000*8,"bps"," ",$2," ","output:"," ",$6*1000*8,"bps"}' echo"####################" #因為執行sar命令需要59秒,因此不需要sleep done
4、計算文檔每行出現的數字個數,并計算整個文檔的數字總數
#!/bin/bash ######################################################### #計算文檔每行出現的數字個數,并計算整個文檔的數字總數 ######################################################## #使用awk只輸出文檔行數(截取第一段) n=`wc-la.txt|awk'{print$1}'` sum=0 #文檔中每一行可能存在空格,因此不能直接用文檔內容進行遍歷 foriin`seq1$n`do #輸出的行用變量表示時,需要用雙引號 line=`sed-n"$i"pa.txt`#wc-L選項,統計最長行的長度 n_n=`echo$line|seds'/[^0-9]//'g|wc-L` echo$n_nsum=$[$sum+$n_n] done echo"sum:$sum" 殺死所有腳本 #!/bin/bash ################################################################ #有一些腳本加入到了cron之中,存在腳本尚未運行完畢又有新任務需要執行的情況, #導致系統負載升高,因此可通過編寫腳本,篩選出影響負載的進程一次性全部殺死。 ################################################################ psaux|grep指定進程名|grep-vgrep|awk'{print$2}'|xargskill-9
5、從 FTP 服務器下載文件
#!/bin/bash if[$#-ne1];then echo"Usage:$0filename" fi dir=$(dirname$1) file=$(basename$1) ftp-n-v<
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Linux
+關注
關注
87文章
11306瀏覽量
209572 -
服務器
+關注
關注
12文章
9176瀏覽量
85461 -
Shell
+關注
關注
1文章
365瀏覽量
23385 -
腳本
+關注
關注
1文章
390瀏覽量
14867
原文標題:看一看!實習生兩天時間寫出的5個shell腳本?。。?/p>
文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
100個Linux Shell腳本總結
不知道大家有沒有發現,會編寫shell腳本的運維,工資不會低,并且他的工作會很輕松!今天浩道跟大家分享每一個Linux運維應知必會的100個shel
嵌入式和物聯網的shell腳本學習指南之shell腳本入門免費下載
本文檔的主要內容詳細技術的是嵌入式和物聯網的shell腳本學習指南之shell腳本入門免費下載。
發表于 09-11 17:15
?20次下載
如何創建和執行一個簡單的Linux shell腳本
如果您愿意要嘗試更長的shell腳本,請將下面的shell腳本(并附加為PDF和ODT文件)復制到文本編輯器中,保存,使其可執行并運行。當您了解更多Linux命令時,您可以創建更復雜
shell腳本基礎知識匯總4
Shell 編程跟 JavaScript、php 編程一樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就可以了。
Linux 的
Linux Shell腳本經典案例分享
? 作為一名 Linux 運維工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網上沖浪的時候,發現大家對Shell腳本都有“心結”,要么覺得自己寫出來不好看,要么根本無從下手。 下面分享249
發表于 06-16 14:03
?651次閱讀
評論