淄博網(wǎng)站制作百度seo排名優(yōu)化軟件
開篇小貼士:為創(chuàng)建的sh(當(dāng)然可以是任何一個(gè)文件)文件添加開頭的注釋
1、進(jìn)入到家目錄,然后通過 ls -a 查看全部文件
2、找到并編輯一個(gè)名為 .vimrc?(Vim編輯器的核心配置文件)的配置文件,下圖是添加的一個(gè)示例(我目前的注釋)
在該配置文件中還可以修改字體、顏色主題、窗口布局等,具體文獻(xiàn)參考如下:
vim設(shè)置新建文件自動(dòng)填入的文件頭(作者信息等)、設(shè)置編輯時(shí)間、鼠標(biāo)直接定位_linux 創(chuàng)建文件時(shí)自動(dòng)填寫信息-CSDN博客
ping主機(jī)測試,查看主機(jī)是否存活
創(chuàng)建一個(gè)shell腳本以sh結(jié)尾即可,通過bash xx.sh來運(yùn)行(以下均相同,不再贅述)
注:這里直接通過bash xx.sh 來運(yùn)行的話必須要在當(dāng)前位置下有這個(gè)文件,不然后面應(yīng)該是路徑
#########################
#File name:1.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-24 19:07:06
#Description:
#########################
echo "ping主機(jī)測試,查看主機(jī)是否存活"
read -p "請(qǐng)輸入一個(gè)需要測試的ip地址:" ipadd
ping -c 1 "$ipadd" > /dev/null
if [ $? -eq 0 ]; thenecho "該ip地址目前存活......"
elseecho "該ip地址已斷開連接......"
fi
判斷一個(gè)用戶是否存在
#!/bin/bash
#########################
#File name:2.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-24 19:23:56
#Description:
#########################
echo "判斷一個(gè)用戶是否存在"
read -p "請(qǐng)輸入一個(gè)需要查看是否存在的用戶名:" username
if [ $username == "root" ]; thenecho "請(qǐng)輸入除root用戶外的用戶!!!" && exit
elsels /home | grep $username > /dev/nullif [ $? -eq 0 ]; thenecho "$username用戶是存在的"elseecho "$username用戶不存在的"fi
fi
判斷當(dāng)前內(nèi)核主版本是否為3,且次版本是否大于10
#!/bin/bash
#########################
#File name:3.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-24 19:35:35
#Description:
#########################
echo "判斷當(dāng)前內(nèi)核主版本是否為3,且次版本是否大于10"
main=$(uname -r | cut -d'.' -f1)
if [[ $main -eq 3 ]]; thenecho "當(dāng)前內(nèi)核主版本為3"
elseecho "當(dāng)前內(nèi)核版本不為3"
fisub=$(uname -r | cut -d'.' -f2)
if [[ $sub -gt 10 ]]; thenecho "當(dāng)前內(nèi)核次版本大于10"
elif [[ $sub -lt 10 ]]; thenecho "當(dāng)前內(nèi)核次版本小于10"
else echo "當(dāng)前內(nèi)核次版本等于10"
fi
判斷nginx是否運(yùn)行;如果沒有,則運(yùn)行它,并且開機(jī)啟動(dòng)
#!/bin/bash
#########################
#File name:4.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-24 19:52:15
#Description:
#########################
echo "判斷nginx是否運(yùn)行;如果沒有,則運(yùn)行它,并且開機(jī)啟動(dòng)"
read -p "請(qǐng)輸入想要查看的服務(wù)名:" service_name
is_open=$(systemctl is-active $service_name | grep n)
if ! [[ $is_open -eq 0 ]]; thenecho "$service_name服務(wù)是沒有啟動(dòng)的,下面我將進(jìn)行一個(gè)運(yùn)行并開啟開機(jī)啟動(dòng)的操作......"systemctl start $service_namesystemctl enable $service_nameelseecho "$service_name服務(wù)是開啟的......"auto_open=$(systemctl is-enabled $service_name)if [[ $auto_open -eq 0 ]]; thenread -p "當(dāng)前服務(wù)沒有開啟開機(jī)自動(dòng)開啟,是否需要開啟(請(qǐng)輸入y/n):" -n 1 is_auto_openechofor ((flag=1; flag<=3; flag++));doif [[ "$is_auto_open" == "y" || "$is_auto_open" == "n" ]]; thenbreakfiecho "請(qǐng)輸入y/n!!!"doneif [[ "$is_auto_open" == "y" ]]; thensystemctl enable $service_name > /dev/nullecho "當(dāng)前服務(wù)的開機(jī)自啟動(dòng)已開啟"elif [[ "$is_auto_open" != "n" ]]; then echo "不按照我的來就不讓你操作了!!!" fielseecho "當(dāng)前服務(wù)開啟了開機(jī)自動(dòng)開啟服務(wù)......"fi
fi
判斷指定的主機(jī)是否能ping通,必須使用$1變量
#!/bin/bash
#########################
#File name:5.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-24 20:57:48
#Description:
#########################
echo '判斷指定的主機(jī)是否能ping通,必須使用$1變量'
echoping -c 1 $1 > /dev/null
if [ $? -eq 0 ]; thenecho "該ip地址目前存活......"
elseecho "該ip地址已斷開連接......"
fi
完成一個(gè)報(bào)警腳本
要求如下:
????????根分區(qū)剩余空間小于20%
? ? ? ? 內(nèi)存已用空間大于80%
? ? ? ? 向郵箱發(fā)送告警郵件
? ? ? ? 配合crond每5分鐘檢查一次
#!/bin/bash
#########################
#File name:6.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-25 08:56:03
#Description:
#########################
echo "報(bào)警腳本,要求如下:根分區(qū)剩余空間小于20%內(nèi)存已用空間大于80%向郵箱發(fā)送告警郵件配合crond每5分鐘檢查一次"
echo
# 計(jì)算根分區(qū)的剩余空間百分比
root_ram=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
# 計(jì)算內(nèi)存已用百分比
ram=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}') if [[ $root_ram -gt 80 ]]; then echo "根分區(qū)剩余空間小于20%" if [[ $ram -gt 80 ]]; then echo "內(nèi)存已用空間大于80%" echo "目前根分區(qū)和內(nèi)存的容量都比較告急!!!,先發(fā)送郵箱提醒......" | mail -s "內(nèi)存警告" 2711279281@qq.com else echo "內(nèi)存也還比較充足" fi
else echo "目前根分區(qū)空間充足"
fi
??
判斷用戶輸入的是否是數(shù)字,如果是數(shù)字判斷該數(shù)字是否大于10
#!/bin/bash
#########################
#File name:7.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-25 19:49:01
#Description:
#########################
echo "判斷用戶輸入的是否是數(shù)字,如果是數(shù)字判斷該數(shù)字是否大于10"
echo
for ((n=3; n>0; n-- ))
doread -p "請(qǐng)輸入一個(gè)數(shù)字:" numif [[ $num =~ ^-?[0-9]+(\.[0-9]+)?$ ]]; thenif [[ $num -gt 10 ]]; thenecho "當(dāng)前數(shù)字大于10"elseecho "當(dāng)前數(shù)字不大于10"fibreakelseecho "請(qǐng)輸入數(shù)字,你還有$(($n -1))次機(jī)會(huì)"fi
done
對(duì)用戶輸入的任意兩個(gè)整數(shù)進(jìn)行算數(shù)運(yùn)算
????????要求的運(yùn)算有和、差、乘積、商、余數(shù),
? ? ? ? 判斷用戶輸入的參數(shù)是否是兩個(gè),如果不是,提示用法;
? ? ? ? 判斷用戶輸入的是否是整數(shù),如果不是,則給出提示終止運(yùn)行。
#!/bin/bash
#########################
#File name:8.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2024-11-25 20:30:31
#Description:
#########################
echo "計(jì)算用戶輸入的任意兩個(gè)整數(shù)的和、差、乘積、商、余數(shù),判斷用戶輸入的參數(shù)是否是兩個(gè),如果不是,提示用法;判斷用戶輸入的是否是整數(shù),如果不是,則給出提示終止運(yùn)行。"
echo
for ((n=3; n>0; n--))
doread -p "請(qǐng)輸入兩個(gè)整數(shù)(中間用空格隔開),我會(huì)對(duì)其進(jìn)行算術(shù)運(yùn)算:" num1 num2if [[ $num1 =~ ^[0-9]+$ ]] && [[ $num2 =~ ^[0-9]+$ ]]; thenif [[ $num2 -eq 0 ]]; thenecho "除數(shù)不能為0!!!"elseecho "兩數(shù)的和為$(($num1 + $num2))"echo "兩數(shù)的差為$(($num1 - $num2))"echo "兩數(shù)的乘積為$(($num1 * $num2))"echo "兩數(shù)的商為$(($num1 / $num2))"echo "兩數(shù)的余數(shù)為$(($num1 % $num2))"fibreakelseecho "請(qǐng)輸入兩個(gè)整數(shù),你還有$(($n - 1))次機(jī)會(huì)!!!"fi
done