色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

35個常用一線運維shell腳本再整理(經典)

jf_HnAzBl9o ? 來源:CSDN ? 2023-08-03 16:40 ? 次閱讀

(1)用戶猜數字

#!/bin/bash


#腳本生成一個100以內的隨機數,提示用戶猜數字,根據用戶的輸入,提示用戶猜對了,
#猜小了或猜大了,直至用戶猜對腳本結束。

#RANDOM為系統自帶的系統變量,值為0‐32767的隨機數
#使用取余算法將隨機數變為1‐100的隨機數
num=$[RANDOM%100+1]
echo"$num"

#使用read提示用戶猜數字
#使用if判斷用戶猜數字的大小關系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),
#‐lt(小于),‐le(小于等于)
while:
do
read-p"計算機生成了一個1‐100的隨機數,你猜:"cai
if[$cai-eq$num]
then
echo"恭喜,猜對了"
exit
elif[$cai-gt$num]
then
echo"Oops,猜大了"
else
echo"Oops,猜小了"
fi
done

(2)查看有多少遠程的 IP 在連接本機

#!/bin/bash

#!/bin/bash
#查看有多少遠程的IP在連接本機(不管是通過ssh還是web還是ftp都統計)

#使用netstat‐atn可以查看本機所有連接的狀態,‐a查看所有,
#-t僅顯示tcp連接的信息,‐n數字格式顯示
#LocalAddress(第四列是本機的IP和端口信息)
#ForeignAddress(第五列是遠程主機的IP和端口信息)
#使用awk命令僅顯示第5列數據,再顯示第1列IP地址的信息
#sort可以按數字大小排序,最后使用uniq將多余重復的刪除,并統計重復的次數
netstat-atn|awk'
{print$5}'|awk'{print$1}'|sort-nr|uniq-c

(3)helloworld

#!/bin/bash

functionexample{
echo"Helloworld!"
}
example

(4)打印 tomcat 的pid

#!/bin/sh`

v1="Hello"
v2="world"
v3=${v1}${v2}
echo$v3

pidlist=`ps-ef|grepapache-tomcat-7.0.75|grep-v"grep"|awk'{print$2}'`
echo$pidlist
echo"tomcatIdlist:$pidlist"//顯示pid

(5)腳本編寫 剪刀 、 石頭、布游戲

#!/bin/bash

game=(石頭剪刀布)
num=$[RANDOM%3]
computer=${game[$sum]}


echo"請根據下列提示選擇您的出拳手勢"
echo"1.石頭"
echo"2.剪刀"
echo"3.布"

read-p"請選擇 1-3 :"person
case$personin
1)
if[$num-eq0]
then
echo"平局"
elif[$num-eq1]
then
echo"你贏"
else
echo"計算機贏"
fi;;
2)
if[$num-eq0]
then
echo"計算機贏"
elif[$num-eq1]
then
echo"平局"
else
echo"你贏"
fi;;
3)
if[$num-eq0]
then
echo"你贏"
elif[$num-eq1]
then
echo"計算機贏"
else
echo"平局"
fi;;
*)
echo"必須輸入1-3的數字"
esac

(6)九九乘法表

#!/bin/bash

foriin`seq9`
do
forjin`seq$i`
do
echo-n"$j*$i=$[i*j]"
done
echo
done

(7)腳本用源碼來安裝 memcached 服務器

#!/bin/bash
#一鍵部署memcached

#腳本用源碼來安裝memcached服務器
#注意:如果軟件的下載鏈接過期了,請更新memcached的下載鏈接
wgethttp://www.memcached.org/files/memcached-1.5.1.tar.gz
yum-yinstallgcc
tar-xfmemcached‐1.5.1.tar.gz
cdmemcached‐1.5.1
./configure
make
makeinstall

(8)檢測本機當前用戶是否為超級管理員

#!/bin/bash

#檢測本機當前用戶是否為超級管理員,如果是管理員,則使用yum安裝vsftpd,如果不
#是,則提示您非管理員(使用字串對比版本)
if[$USER=="root"]
then
yum-yinstallvsftpd
else
echo"您不是管理員,沒有權限安裝軟件"
fi

(9)if 運算表達式

#!/bin/bash-xv

if[$1-eq2];then
echo"woaiwenmin"
elif[$1-eq3];then
echo"woaiwenxing"
elif[$1-eq4];then
echo"wodexin"
elif[$1-eq5];then
echo"wodeai"
fi

(11)腳本 殺掉 tomcat 進程并重新啟動

#!/bin/bash

#killtomcatpid

pidlist=`ps-ef|grepapache-tomcat-7.0.75|grep-v"grep"|awk'{print$2}'`#找到tomcat的PID號

echo"tomcatIdlist:$pidlist"//顯示pid

kill-9$pidlist#殺掉改進程

echo"KILL$pidlist:"//提示進程以及被殺掉

echo"servicestopsuccess"

echo"starttomcat"

cd/opt/apache-tomcat-7.0.75

pwd

rm-rfwork/*

cdbin

./startup.sh#;tail-f../logs/catalina.out

(12)打印國際象棋棋盤

#!/bin/bash
#打印國際象棋棋盤
#設置兩個變量,i和j,一個代表行,一個代表列,國際象棋為8*8棋盤
#i=1是代表準備打印第一行棋盤,第1行棋盤有灰色和藍色間隔輸出,總共為8列
#i=1,j=1代表第1行的第1列;i=2,j=3代表第2行的第3列
#棋盤的規律是i+j如果是偶數,就打印藍色色塊,如果是奇數就打印灰色色塊
#使用echo‐ne打印色塊,并且打印完成色塊后不自動換行,在同一行繼續輸出其他色塊
foriin{1..8}
do
forjin{1..8}
do
sum=$[i+j]
if[$[sum%2]-eq0];then
echo-ne"33[46m33[0m"
else
echo-ne"33[47m33[0m"
fi
done
echo
done

(13)統計當前 Linux 系統中可以登錄計算機的賬戶有多少個

#!/bin/bash

#統計當前Linux系統中可以登錄計算機的賬戶有多少個
#方法1:
grep"bash$"/etc/passwd|wc-l
#方法 2:
awk-f:'/bash$/{x++}end{printx}'/etc/passwd

(14)備份mysql表數據

#!/bin/sh

source/etc/profile
dbName=mysql
tableName=db
echo[`date+'%Y-%m-%d%H:%M:%S'`]'startloadingdata...'
mysql-uroot-proot-P3306${dbName}-e"LOADDATALOCALINFILE'#/home/wenmin/wenxing.txt'INTOTABLE${tableName}FIELDSTERMINATEDBY';'"
echo[`date+'%Y-%m-%d%H:%M:%S'`]'endloadingdata...'
exit
EOF

(15)使用死循環實時顯示 eth0 網卡發送的數據包流量

#!/bin/bash

#使用死循環實時顯示 eth0網卡發送的數據包流量

while:
do
echo'本地網卡 ens33 流量信息如下:'
ifconfigens33|grep"RXpack"|awk'{print$5}'
ifconfigens33|grep"TXpack"|awk'{print$5}'
sleep1
done

(16)編寫腳本測試 192.168.4.0/24 整個網段中哪些主機處于開機狀態,哪些主機處于關機

#!/bin/bash

#編寫腳本測試192.168.4.0/24整個網段中哪些主機處于開機狀態,哪些主機處于關機
#狀態(for版本)
foriin{1..254}
do
#每隔0.3秒ping一次,一共ping2次,并以1毫秒為單位設置ping的超時時間
ping-c2-i0.3-W1192.168.1.$i&>/dev/null
if[$?-eq0];then
echo"192.168.1.$iisup"
else
echo"192.168.1.$iisdown"
fi
done

(17)編寫腳本:提示用戶輸入用戶名和密碼,腳本自動創建相應的賬戶及配置密碼。如果用戶

#!/bin/bash
#編寫腳本:提示用戶輸入用戶名和密碼,腳本自動創建相應的賬戶及配置密碼。如果用戶
#不輸入賬戶名,則提示必須輸入賬戶名并退出腳本;如果用戶不輸入密碼,則統一使用默
#認的 123456 作為默認密碼。

read-p"請輸入用戶名:"user
#使用‐z可以判斷一個變量是否為空,如果為空,提示用戶必須輸入賬戶名,并退出腳本,退出碼為2
#沒有輸入用戶名腳本退出后,使用$?查看的返回碼為2
if[-z$user];then
echo"您不需要輸入賬戶名"
exit2
fi
#使用stty‐echo關閉shell的回顯功能
#使用sttyecho打開shell的回顯功能
stty-echo
read-p"請輸入密碼:"pass
sttyecho
pass=${pass:-123456}
useradd"$user"
echo"$pass"|passwd--stdin"$user"

(18)使用腳本對輸入的三個整數進行排序

#!/bin/bash

#依次提示用戶輸入3個整數,腳本根據數字大小依次排序輸出3個數字
read-p"請輸入一個整數:"num1
read-p"請輸入一個整數:"num2
read-p"請輸入一個整數:"num3

#不管誰大誰小,最后都打印 echo "$num1,$num2,$num3"
#num1中永遠存最小的值,num2中永遠存中間值,num3永遠存最大值
#如果輸入的不是這樣的順序,則改變數的存儲順序,如:可以將num1和num2的值對調
tmp=0
#如果num1大于num2,就把num1和和num2的值對調,確保num1變量中存的是最小值
if[$num1-gt$num2];then
tmp=$num1
num1=$num2
num2=tmp
fi
#如果num1大于num3,就把num1和num3對調,確保num1變量中存的是最小值
if[$num1-gt$num3];then
tmp=$num1
num1=$num3
num3=$tmp
fi
#如果num2大于num3,就把num2和num3對調,確保num2變量中存的是最小值
if[$num2-gt$num3];then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo"排序后數據(從小到大)為:$num1,$num2,$num3"

(19)根據計算機當前時間,返回問候語,可以將該腳本設置為開機啟動

#!/bin/bash
#根據計算機當前時間,返回問候語,可以將該腳本設置為開機啟動

#00‐12點為早晨,12‐18點為下午,18‐24點為晚上
#使用date命令獲取時間后,if判斷時間的區間,確定問候語內容
tm=$(date+%H)
if[$tm-le12];then
msg="GoodMorning$USER"
elif[$tm-gt12-a$tm-le18];then
msg="GoodAfternoon$USER"
else
msg="GoodNight$USER"
fi
echo"當前時間是:$(date+"%Y‐%m‐%d%H:%M:%S")"
echo-e"33[34m$msg33[0m"

(20)將 I lov cls 寫入到 txt 文件中

#!/bin/bash

cd/home/wenmin/
touchwenxing.txt
echo"Ilovcls">>wenxing.txt

(21)腳本編寫 for 循環判斷

#!/bin/bash

s=0;
for((i=1;i<100;i++))
do
s=$[$s+$i]
done

echo$s

r=0;
a=0;
b=0;
for((x=1;x<9;x++))
do
a=$[$a+$x]
echo$x
done
for((y=1;y<9;y++))
do
b=$[$b+$y]
echo$y

done

echo$r=$[$a+$b]

(22)腳本編寫 for 循環判斷

#!/bin/bash

foriin"$*"
do
echo"wenminxihuan$i"
done

forjin"$@"
do
echo"wenminxihuan$j"
done

(23)腳本 每周 5 使用 tar 命令備份/var/log 下的所有日志文件

#!/bin/bash
#每周5使用tar命令備份/var/log下的所有日志文件
#vim/root/logbak.sh
#編寫備份腳本,備份后的文件名包含日期標簽,防止后面的備份將前面的備份數據覆蓋
#注意date命令需要使用反引號括起來,反引號在鍵盤鍵上面

tar-czflog-`date+%Y%m%d`.tar.gz/var/log

#crontab-e#編寫計劃任務,執行備份腳本
0003**5/home/wenmin/datas/logbak.sh

(24)腳本編寫 求和 函數運算 function xx()

#!/bin/bash

functionsum()
{
s=0;
s=$[$1+$2]
echo$s
}
read-p"inputyourparameter"p1
read-p"inputyourparameter"p2

sum$p1$p2


functionmulti()
{
r=0;
r=$[$1/$2]
echo$r
}
read-p"inputyourparameter"x1
read-p"inputyourparameter"x2

multi$x1$x2

v1=1
v2=2
letv3=$v1+$v2
echo$v3

(25)腳本編寫 case -- esac 分支結構表達式

#!/bin/bash

case$1in
1)
echo"wenmin"
;;
2)
echo"wenxing"
;;
3)
echo"wemchang"
;;
4)
echo"yijun"
;;
5)
echo"sinian"
;;
6)
echo"sikeng"
;;
7)
echo"yanna"
;;
*)
echo"danlian"
;;
esac

(26)# 定義要監控的頁面地址,對 tomcat 狀態進行重啟或維護

#!/bin/sh
#function:自動監控tomcat進程,掛了就執行重啟操作
#author:huanghong
#DEFINE

#獲取tomcatPPID
TomcatID=$(ps-ef|greptomcat|grep-w'apache-tomcat-7.0.75'|grep-v'grep'|awk'{print$2}')

#tomcat_startup
StartTomcat=/opt/apache-tomcat-7.0.75/bin/startup.sh


#TomcatCache=/usr/apache-tomcat-5.5.23/work

#定義要監控的頁面地址
WebUrl=http://192.168.254.118:8080/

#日志輸出
GetPageInfo=/dev/null
TomcatMonitorLog=/tmp/TomcatMonitor.log

Monitor()
{
echo"[info]開始監控tomcat...[$(date+'%F%H:%M:%S')]"
if[$TomcatID]
then
echo"[info]tomcat進程ID為:$TomcatID."
#獲取返回狀態碼
TomcatServiceCode=$(curl-s-o$GetPageInfo-m10--connect-timeout10$WebUrl-w%{http_code})
if[$TomcatServiceCode-eq200];then
echo"[info]返回碼為$TomcatServiceCode,tomcat啟動成功,頁面正常."
else
echo"[error]訪問出錯,狀態碼為$TomcatServiceCode,錯誤日志已輸出到$GetPageInfo"
echo"[error]開始重啟tomcat"
kill-9$TomcatID#殺掉原tomcat進程
sleep3
#rm-rf$TomcatCache#清理tomcat緩存
$StartTomcat
fi
else
echo"[error]進程不存在!tomcat自動重啟..."
echo"[info]$StartTomcat,請稍候......"
#rm-rf$TomcatCache
$StartTomcat
fi
echo"------------------------------"
}
Monitor>>$TomcatMonitorLog

(27)通過位置變量創建Linux 系統賬戶及密碼

#!/bin/bash

#通過位置變量創建Linux系統賬戶及密碼

#$1是執行腳本的第一個參數,$2是執行腳本的第二個參數

useradd"$1"
echo"$2"|passwd--stdin"$1"

(28)對變量的傳入與獲取個數及打印

#!/bin/bash
echo"$0$1$2$3"//傳入三個參數
echo$#//獲取傳入參數的數量
echo$@//打印獲取傳入參數
echo$*//打印獲取傳入參數

(29)實時監控本機內存和硬盤剩余空間,剩余內存小于500M、根分區剩余空間小于1000M時,發送報警郵件給root管理員

#!/bin/bash

#實時監控本機內存和硬盤剩余空間,剩余內存小于500M、根分區剩余空間小于1000M時,發送報警郵件給root管理員

#提取根分區剩余空間
disk_size=$(df/|awk'///{print$4}')

#提取內存剩余空空間
mem_size=$(free|awk'/Mem/{print$4}')
while:
do
#注意內存和磁盤提取的空間大小都是以Kb為單位
if[$disk_size-le512000-a$mem_size-le1024000]
then
mail‐s"Warning"root< Insufficientresources,資源不足
EOF
fi
done

(30)檢查指定目錄下是否存在 對應 文件

#!/bin/bash

if[-f/home/wenmin/datas]
then
echo"Fileexists"
fi

(31)腳本定義while循環語句

#!/bin/bash

if[-f/home/wenmin/datas]
then
echo"Fileexists"
fi

[root@richdatas]#catwhile.sh
#!/bin/bash

s=0
i=1
while[$i-le100]
do
s=$[$s+$i]
i=$[$i+1]
done

echo$s
echo$i

(32)一鍵部署 LNMP(RPM 包版本)

#!/bin/bash

#一鍵部署LNMP(RPM包版本)
#使用yum安裝部署LNMP,需要提前配置好yum源,否則該腳本會失敗
#本腳本使用于centos7.2或RHEL7.2
yum-yinstallhttpd
yum-yinstallmariadbmariadb-develmariadb-server
yum-yinstallphpphp-mysql

systemctlstarthttpdmariadb
systemctlenablehttpdmariadb

(33)讀取控制臺傳入參數

#!/bin/bash
read-t7-p"inputyourname"NAME
echo$NAME

read-t11-p"inputyouage"AGE
echo$AGE

read-t15-p"inputyourfriend"FRIEND
echo$FRIEND

read-t16-p"inputyourlove"LOVE
echo$LOVE

(34)腳本實現 復制

#!/bin/bash

cp$1$2

(35)腳本實現文件存在與否的判斷

#!/bin/bash

if[-ffile.txt];then
echo"文件存在"
else
echo"文件不存在"
fi


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 源碼
    +關注

    關注

    8

    文章

    652

    瀏覽量

    29351
  • Shell
    +關注

    關注

    1

    文章

    366

    瀏覽量

    23430
  • 腳本
    +關注

    關注

    1

    文章

    391

    瀏覽量

    14916

原文標題:35個常用一線運維shell腳本再整理(經典)

文章出處:【微信號:網絡工程師筆記,微信公眾號:網絡工程師筆記】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    shell腳本進階】幾個常用shell進階腳本

    shell腳本進階】幾個常用shell進階腳本
    的頭像 發表于 09-19 08:59 ?1942次閱讀
    【<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>進階】幾個<b class='flag-5'>常用</b>的<b class='flag-5'>shell</b>進階<b class='flag-5'>腳本</b>

    Linux shell腳本分享

    今天浩道跟大家分享幾個Linux常用到的shell腳本
    發表于 07-18 09:53 ?571次閱讀
    Linux <b class='flag-5'>shell</b><b class='flag-5'>腳本</b>分享

    Linux中常用的MySQL腳本

    在Linux中,使用MySQL進行常見的任務時,可以編寫腳本來簡化操作。以下是常用
    發表于 09-07 09:49 ?768次閱讀

    Linux中常用Shell腳本示例

    當談論一線工作中的常用 Shell 腳本時,以下是
    發表于 09-08 09:42 ?636次閱讀

    100Linux Shell腳本總結

    不知道大家有沒有發現,會編寫shell腳本,工資不會低,并且他的工作會很輕松!今天浩道跟大家分享每一個Linux
    的頭像 發表于 12-05 09:28 ?1295次閱讀

    【PDF】經典教材--高級Shell腳本編程

    `Advanced Bash-Scripting GuideAn in-depth exploration of the art of shell scriptingMendel Cooper全英文文檔,學習Shell腳本
    發表于 03-09 09:09

    Linux常用腳本整理

    在日常工作過程中,經常要對服務器進行些操作,整理常用句話shell命令,使
    發表于 10-02 21:51

    Linux都要會哪些shell技能

    門更適合處理復雜的業務邏輯,以及開發復雜的軟件工具,實現通過web訪問等。Shell命令解釋器,解釋執行用戶所輸入的命令和程序。
    發表于 11-30 17:38

    shell腳本的相關資料分享

    腳本提供數組、循環、條件判斷的等功能shell腳本般是Linux或者系統管理員要掌握的,作
    發表于 12-23 06:17

    shell腳本常用的調試方法介紹

    shell 是用戶和操作系統交互的程序,經常用于執行些自動化或者重復繁瑣的任務,現在所有的 Linux 系統基本都自帶了該程序,我們只
    的頭像 發表于 09-01 10:43 ?3314次閱讀

    109實用shell腳本分享

    Shell腳本,就是利用Shell的命令解釋的功能,對純文本的文件進行解析,然后執行這些功能,也可以說
    的頭像 發表于 03-16 08:58 ?2665次閱讀

    常用的34Linux Shell腳本

    Shell 腳本編程是在 Linux 下學習或練習編程的最簡單的方式。尤其對工程師處理著自動化任務,且要開發新的簡單的實用程序或工具等(這里只是僅舉幾例)更是必備技能。
    的頭像 發表于 05-09 15:26 ?1554次閱讀

    100Shell腳本經典案例解析

    今天浩道跟大家分享100Linux Shell腳本經典案例,讓你次擼夠。
    的頭像 發表于 02-10 13:51 ?2726次閱讀

    shell腳本基礎知識

    shell腳本文件,里面存放的是特定格式的指令,系統可以使用腳本解析器翻譯或解析指令并執行(無需編譯),
    的頭像 發表于 04-17 15:00 ?1120次閱讀

    Linux Shell腳本經典案例分享

    ? 作為名 Linux 工程師,會寫好的腳本不僅能提高工作效率,還能有更多的時間做自己的事。最近在網上沖浪的時候,發現大家對Shell
    發表于 06-16 14:03 ?667次閱讀
    Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b><b class='flag-5'>經典</b>案例分享
    主站蜘蛛池模板: 肉小说高h| 国产亚洲精品黑人粗大精选| 10分钟免费观看视频| 青青草国产精品久久| 污文乖不疼的| 99精品国产福利在线观看| 国产精品夜夜春夜夜爽久久小| 国产精品99久久久久久动态图| yellow在线观看免费高清的日本| 在线成年av动漫电影| 伊人色综合久久天天| 钉钉女老师| 乱码国产丰满人妻WWW| 学校女性奴sm训练调教| 夜夜躁婷婷AV蜜桃视频| 一本色道久久综合一区| 一区二区三区国产亚洲网站| 国产扒开美女双腿屁股流白浆| 男女肉大捧进出全过程免费| 亚婷婷洲AV久久蜜臀无码| 草莓视频app深夜福利| 国产精品九九久久精品视| 欧美精品中文字幕亚洲专区| 最新日本免费一区| 久久这里只有精品国产99| 青青草原在线免费| 无遮挡h肉3d动漫在线观看| 亚洲男人天堂网| 99精品国产自在自线| 俄罗斯呦呦| 久久99精品久久久久久园产越南 | 俄罗斯破处| 国产精品久久久久久久久99热| 国产欧美精品国产国产专区| 欧洲内射VIDEOXXX3D| 99精品热视频30在线热视频| 美女乱草鲍高清照片| 涩涩游戏盒| 纯肉无码AV在线看免费看| 日本亚洲中文字幕无码区| 草民电影网午夜伦理电影网|