1.判斷/tmp/run目錄是否存在,如果不存在就建立,如果存在就刪除目錄里所有文件
#!/bin/bash dir=/tmp/run [-f$dir]&&mv$dir$dir.bak [-d$dir]&&rm-rf$dir/*||mkdir$dir
2.輸入一個(gè)文件的絕對(duì)路徑,判斷路徑是否存在,而且輸出是文件還是目錄,如果是字符連接,還得輸出是有效的連接還是無效的連接
#!/bin/bash read-p"Inputapath:"path if[-L$path-a-e$path];then echo"thisiseffectivelink" elif[-L$path-a!-e$path];then echo"thisisnoteffectivelink" elif[-d$path];then echo"thisisadirector" elif[-f$path];then echo"thisisfile" elif[-e$path];then echo"thisisaothertypefile" else echo"thefileisnotexist" fi
3.交互模式要求輸入一個(gè)ip,然后腳本判斷這個(gè)IP 對(duì)應(yīng)的主機(jī)是否 能ping 通,輸出結(jié)果類似于:
Server10.1.1.20isDown!最后要求把結(jié)果郵件到本地管理員root@localhost和mail01@localhost
方法一:
#!/bin/bash read-p"輸入IP地址:"ip ping-c2$ip>/dev/null2>&1 if[$?-eq0];then echo"Server$ipisOK."|mail-s'checkserver'root@localhost else echo"Server$ipisDown!"|mail-s'checkserver'root@localhost fi
方法二:
#!/bin/bash read-p"Inputyourip:"ip ping-c1$ip&>/dev/null [$?-eq0]&&echo"server$ipisok"|mail-s"checkserver"root@localhost||echo"server$ipisdown"|mail-s"checkserver"root@localhost
方法三:
#!/bin/bash tmpfile=`mktemp` mailaddr="root@localhostmail@localhost" read-p"輸入IP地址:"ip ping-c2$ip>/dev/null2>&1 if[$?-eq0];then echo"Server$ipisUp!">>$tmpfile else echo"Server$ipisDown!">>$tmpfile fi cat$tmpfile mail-s"pingserver"$mailaddr$tmpfile rm?-rf?$tmpfile
方法四:
#!/bin/bash rootmail="root@localhost" tmpfile=`mktemp` read-p"Inputaip:"ip ping-c1"$ip"&>/dev/null retval=$? if[$retval-eq0];then echo"Server$ipisup">$tmpfile else echo"Server$ipisdown">$tmpfile fi cat$tmpfile mail-s"pingresult"$rootmail$tmpfile rm?-rf?$tmpfile
4.寫一個(gè)腳本,局域網(wǎng)內(nèi),把能ping通的IP和不能ping通的IP分類,并保存到兩個(gè)文本文件里(如果例舉整個(gè)網(wǎng)段的254個(gè)IP花的時(shí)間比較長,可以只分類10個(gè)ip10.1.1.1~10) 這只是一個(gè)局域網(wǎng)內(nèi)機(jī)器檢查通訊的一個(gè)思路。
#!/bin/bash #清空原來ip文件里的列表 >/tmp/ip_ok >/tmp/ip_down ip=10.1.1 #循環(huán)去ping局域網(wǎng)內(nèi)的主機(jī) for((i=1;i<=10;i++)) do ping?-c1?$ip.$i?&>/dev/null test$?-eq0&&echo"$ip.$i"|tee-a/tmp/ip_ok||echo"$ip.$i"|tee-a/tmp/ip_down done 思考:以上方法可以實(shí)現(xiàn),但是速度很慢,希望并行執(zhí)行 #!/bin/bash #清空原來ip文件里的列表 >/tmp/ip_ok >/tmp/ip_down ip=10.1.1 #循環(huán)去ping局域網(wǎng)內(nèi)的主機(jī) for((i=1;i<=10;i++)) do { ping?-c1?$ip.$i?&>/dev/null test$?-eq0&&echo"$ip.$i"|tee-a/tmp/ip_ok||echo"$ip.$i"|tee-a/tmp/ip_down }& done wait echo"ipisok..."
5.寫一個(gè)腳本/home/hello.sh,要求當(dāng)給腳本輸入參數(shù)hello時(shí),腳本返回world,給腳本輸入?yún)?shù)world時(shí),腳本返回hello。而腳本沒有參數(shù)或者參數(shù)錯(cuò)誤時(shí),屏幕上輸出“usage:/home/hello.sh hello or world”
#!/bin/bash #read-p"Inputastring:"a if[$#-eq0-o$#-gt1];then echo"usage:/home/program/test4.shworld|hello" #echo"usage:`basename$0`world|hello"#更常用的報(bào)錯(cuò)寫法 elif["$1"="hello"];then echo"world" elif["$1"="world"];then echo"hello" else echo"usage:/home/program/test4.shworld|hello" fi
6.自動(dòng)搭建nfs服務(wù)
#!/bin/bash #關(guān)閉防火墻和selinux serviceiptablesstop chkconfigiptablesoff setenforce0&>/dev/null echo"########防火墻和selinux已經(jīng)關(guān)閉########" #測(cè)試網(wǎng)絡(luò),配置內(nèi)網(wǎng)yum源 ping-c1192.168.1.10&>/dev/null if[$?-eq0];then echo"########網(wǎng)絡(luò)ok########" else echo"########請(qǐng)檢查你的網(wǎng)絡(luò)########" exit fi wget-P/etc/yum.repos.d/ftp://192.168.1.10/demo.repo&>/dev/null #安裝相關(guān)軟件 yum-yinstall'nfs*'rpcbind&>/dev/null&&echo"########軟件安裝ok#######" #發(fā)布共享目錄并授權(quán) read-p"Inputyoursharedir:"dir [!-d$dir]&&mkdir$dir-p #授權(quán) chmod1777$dir read-p"Inputyoursharehost(192.168.0.0/24(ro)):"host cat>>/etc/exports</dev/null&&echo"##########rpcbind服務(wù)啟動(dòng)成功#############" servicenfsrestart&>/dev/null&&echo"############nfs服務(wù)啟動(dòng)成功#############" chkconfigrpcbindon chkconfignfson #測(cè)試驗(yàn)證 mkdir/u01&>/dev/null mount.nfslocalhost:$dir/u01 [$?-eq0]&&echo"nfs服務(wù)測(cè)試ok,可以正常使用!" umount/u01
7.將/etc/passwd里的用戶名分類,分為管理員用戶,系統(tǒng)用戶,普通用戶。
分析: 1.根據(jù)用戶的uid來判斷用戶種類 2.用戶的信息保存在/etc/passwd文件中,需要在該文件中獲取UID 3.根據(jù)用戶的uid去判斷 管理員:root0 系統(tǒng)用戶:1-499ftpapache...65534nfsnobody 普通用戶:500-60000
#!/bin/bash foriin`cat/etc/passwd|cut-d:-f1,3` do uid=`echo$i|cut-d:-f2` name=`echo$i|cut-d:-f1` [$uid-eq0]&&echo$name>>/tmp/adminuser [$uid-gt0-a$uid-lt500-o$uid-eq65534]&&echo$name>>/tmp/systemuser [$uid-ge500-a$uid-ne65534]&&echo$name>>/tmp/normaluser done
8.寫一個(gè)倒計(jì)時(shí)腳本,要求顯示離2018年1月1日(元旦節(jié))的凌晨0點(diǎn),還有多少天,多少時(shí),多少分,多少秒。
分析: 1.該腳本應(yīng)該是一個(gè)死循環(huán),除非當(dāng)前系統(tǒng)時(shí)間等于1月1日的凌晨0點(diǎn),要退出循環(huán),并且打印元旦快樂break 2.計(jì)算未來時(shí)間(1月1日的凌晨0點(diǎn))和當(dāng)前系統(tǒng)時(shí)間的時(shí)間差時(shí)間單位相同并且以相同的時(shí)間為一個(gè)基準(zhǔn) 需要定義2個(gè)變量: 現(xiàn)在時(shí)間和未來時(shí)間 date命令-d%s 3.計(jì)算 假如1月1日和現(xiàn)在時(shí)間相差100000s 1天=86400s 1小時(shí)=3600s 1分鐘=60 $[100000/86400]=天 $[$[100000%86400]/3600]=小時(shí) $[$[100000%3600]/60]=分鐘
#!/bin/bash goal=`date+%s-d20181001` whiletrue或者untilfalse do now=`date+%s` if[$[$goal-$now]-eq0];then break fi day=$[($goal-$now)/86400] hour=$[($goal-$now)%86400/3600] minute=$[($goal-$now)%3600/60] second=$[($goal-$now)%60] clear echo"離2018年1月1日還有$day天:$hour時(shí):$minute分:$second秒" sleep1 done echo"元旦節(jié)快樂!!!"
9.寫一個(gè)腳本把一個(gè)目錄內(nèi)的所有空文件都刪除,最后輸出刪除的文件的個(gè)數(shù)。
分析: 1.如何判斷文件是空文件-s判斷文件內(nèi)容為非空;判斷空文件則!-seg:[!-sfile] 2.定義一個(gè)變量count=0來保存刪除文件的個(gè)數(shù),掌握四則運(yùn)算letcount++ 3.交互式定義變量讓用戶自己決定清理哪個(gè)目錄/data/logs/10個(gè)文件循環(huán)次數(shù)由目錄里的文件個(gè)數(shù)決定find命令
#!/bin/bash read-p"輸入一個(gè)你要?jiǎng)h除空文件的目錄:"dir count=0 foriin`find$dir-typef` do [!-s$i]&&rm-rf$i&&letcount++##-s表示非空 done echo"刪除的個(gè)數(shù)為:"$count
10.寫一個(gè)腳本,將跳板機(jī)上yunwei用戶的公鑰推送到局域網(wǎng)內(nèi)可以ping通的所有機(jī)器上 10.1.1.1~10.1.1.254
分析: 環(huán)境: jumper-server有yunwei用戶 app1-appn局域網(wǎng)內(nèi)所有可以ping通的機(jī)器 1.在跳板上創(chuàng)建yunwei用戶,并且生成一對(duì)秘鑰 2.檢測(cè)當(dāng)前局域網(wǎng)中哪些ip是能ping通哪些是不能ping通循環(huán)語句并發(fā)的去檢查 3.在腳本中所有的交互動(dòng)作需要用到expect實(shí)現(xiàn) yunwei用戶sudo授權(quán): visudo ##Allowroottorunanycommandsanywhere rootALL=(ALL)ALL yunweiALL=(root)NOPASSWD:ALL,!/sbin/shutdown,!/sbin/init,!/bin/rm-rf/
#!/bin/bash #檢查局域網(wǎng)中哪些ip是可以ping通,并保存到一個(gè)文件 ip1=10.1.1 for((i=1;i<=10;i++)) do ?{ ??????ping?-c1?$ip1.$i?&>/dev/null [$?-eq0]&&echo"$ip1.$i">>ip_up.txt }& done wait #yunwei用戶生成一對(duì)秘鑰(有交互) [!-f~/.ssh/id_rsa]&&ssh-keygen-P''-f~/.ssh/id_rsa #將yunwe用戶的公鑰遠(yuǎn)程拷貝到指定的服務(wù)器100循環(huán) ##判斷expect程序是否安裝 { rpm-qexpect [$?-ne0]&&sudoyum-yinstallexpect whilereadip2 do /usr/bin/expect<<-EOF ?spawn?ssh-copy-id??root@$ip2 ?expect?{ ??????"yes/no"?{send?"yes ";exp_continue} ??????"password:"?{send?"123 "} ??????} ?expect?eof ?EOF done/dev/null #測(cè)試驗(yàn)證 remote_ip=`tail-1ip_up.txt` sshroot@$remote_iphostname [$?-eq0]&&echo"公鑰推送完畢...."
#!/bin/bash #pushpublickeytoaap-servers #將局域網(wǎng)內(nèi)可以ping通的主機(jī)ip保存到一個(gè)文件 >ip_up.txt foriin{2..10} do { ip=10.1.1.$i ping-c1$ip&>/dev/null [$?-eq0]&&echo$ip|tee-aip_up.txt }&//并行放到后臺(tái)運(yùn)行 done wait//等待進(jìn)程結(jié)束 #將yunwei用戶目錄下的公鑰推送到可以ping的服務(wù)器上 #1.判斷yunwei用戶下有沒有公鑰 [!-f~/.ssh/id_rsa.pub]&&ssh-keygen-P""-f~/.ssh/id_rsa #2.將id_rsa.pub公鑰遠(yuǎn)程推送到指定服務(wù)器 #2.1判斷expect程序是否安裝,沒安裝則安裝它 { rpm-qexpect [$?-ne0]&&sudoyum-yinstallexpect forremote_ipin`catip_up.txt` do /usr/bin/expect<<-EOF ?spawn?ssh-copy-id?root@$remote_ip ?expect?{ ???????"yes/no"?{?send?"yes ";exp_continue?} ???????"password:"?{?send?"123 "?} ?} ??expect?eof ?EOF done }?&>/dev/null #測(cè)試驗(yàn)證 test_ip=`tail-1ip_up.txt` sshroot@$test_iphostname test$?-eq0&&echo"公鑰推送成功。"
#!/bin/bash [!-f~/.ssh/id_rsa.pub]&&ssh-keygen-P""-f~/.ssh/id_rsa rpm-qexpect [$?-ne0]&&sudoyum-yinstallexpect foriin{130..140} do ip=192.168.44.$i ping-c1$ip [$?-ne0]&&continue echo$ip>>ip_up.txt /usr/bin/expect<<-EOF ????????spawn?ssh-copy-id?root@$ip ????????expect?{ ????????"yes/no"?{?send?"yes ";exp_continue?} ????????"password:"?{?send?"123456 "?} ????????} ????????expect?eof ????????EOF done #測(cè)試驗(yàn)證 test_ip=`tail?-1?ip_up.txt` ssh?root@$test_ip?hostname test?$??-eq?0?&&?echo?"公鑰推送成功。"
11.
任務(wù)/背景:
現(xiàn)有的跳板機(jī)雖然實(shí)現(xiàn)了統(tǒng)一入口來訪問生產(chǎn)服務(wù)器,yunwei用戶權(quán)限太大可以操作跳板機(jī)上的所有目錄文件,存在數(shù)據(jù)被誤刪的安全隱患,所以希望你做一些安全策略來保證跳板機(jī)的正常使用。
具體要求:
只允許yunwei用戶通過跳板機(jī)遠(yuǎn)程連接后臺(tái)的應(yīng)用服務(wù)器做一些維護(hù)操作
公司運(yùn)維人員遠(yuǎn)程通過yunwei用戶連接跳板機(jī)時(shí),跳出以下菜單供選擇:
歡迎使用Jumper-server,請(qǐng)選擇你要操作的主機(jī): 1.DB1-Master 2.DB2-Slave 3.Web1 4.Web2 q.exit
當(dāng)用戶選擇相應(yīng)主機(jī)后,直接免密碼登錄成功
如果用戶不輸入一直提示用戶輸入,直到用戶選擇退出
思路:
需要當(dāng)yunwei用戶登錄時(shí)執(zhí)行一個(gè)腳本(該腳本放到哪里?)yunwei用戶的家目錄里的.bashrc
腳本中需要打印一個(gè)菜單供用戶選擇(case…esac)
免密碼登錄(上面第10個(gè)腳本推公鑰的腳本)
#!/bin/bash #公鑰推送成功 trap''12319 #打印菜單用戶選擇 menu(){ cat<<-EOF 歡迎使用Jumper-server,請(qǐng)選擇你要操作的主機(jī): 1.?DB1-Master 2.?DB2-Slave 3.?Web1 4.?Web2 h.?help q.?exit EOF } #調(diào)用函數(shù)來打印菜單 menu while?true do read?-p?"請(qǐng)輸入你要選擇的主機(jī)[h?for?help]:"?host #通過case語句來匹配用戶所輸入的主機(jī) case?$host?in ?1|DB1) ?ssh?root@10.1.1.1 ?;; ?2|DB2) ?ssh?root@10.1.1.2 ?;; ?3|web1) ?ssh?root@10.1.1.250 ?;; ?h|help) ?clear;menu ?;; ?q|quit) ?exit ?;; esac done #!/bin/bash #jumper-server #菜單打印 trap?''?1?2?3? while?true do cat?<<-END 歡迎使用Jumper-server,請(qǐng)選擇你要操作的主機(jī): 1.?DB1-Master 2.?DB2-Slave 3.?Web1 4.?Web2 5.?exit END #讓用戶選擇相應(yīng)的操作 read?-p?"請(qǐng)輸入你要操作的主機(jī):"?host case?$host?in ?1) ?ssh?root@10.1.1.2 ?;; ?2) ?ssh?root@10.1.1.3 ?;; ?3) ?ssh?root@10.1.1.4 ?;; ?5) ?exit ?;; ?*) ?clear ?echo?"輸入錯(cuò)誤,請(qǐng)重新輸入..." ?;; esac done
12.寫一個(gè)腳本,統(tǒng)計(jì)web服務(wù)的不同連接狀態(tài)個(gè)數(shù)
#!/bin/bash #count_http_80_state #統(tǒng)計(jì)每個(gè)狀態(tài)的個(gè)數(shù) declare-ASTATE states=`ss-ant|grep80|cut-d''-f1` foriin$states do letSTATE[$i]++ done #通過遍歷數(shù)組里的索引和元素打印出來 forjin${!STATE[@]} do echo$j:${STATE[$j]} done
13.寫一個(gè)自動(dòng)搭建apache服務(wù)的腳本,要求如下:
1、用戶輸入web服務(wù)器的IP、域名以及數(shù)據(jù)根目錄 2、如果用戶不輸入則一直提示輸入,直到輸入為止 3、當(dāng)訪問www.test.cc時(shí)可以訪問到數(shù)據(jù)根目錄里的首頁文件“thisistestpage”
#!/bin/bash #定義函數(shù)實(shí)現(xiàn)用戶不輸入則一直提示輸入,直到輸入為止 input_fun(){ input_var='' while[-z$input_var] do read-p"$1"input_var done echo$input_var } #調(diào)用函數(shù)并且獲取用戶輸入web服務(wù)器的IP、域名以及數(shù)據(jù)根目錄 IP=`input_fun請(qǐng)輸入你的IP地址:` name=`input_fun請(qǐng)輸入你的域名:` dir=`input_fun請(qǐng)輸入你的數(shù)據(jù)根目錄:` #將ip與主機(jī)名輸入到hosts文件里 cat>>/etc/hosts<$dir/index.html #yum安裝apache yum-yinstallhttpd&>/dev/null #發(fā)布虛擬主機(jī) cat>>/etc/httpd/conf/httpd.conf<<-EOF NameVirtualHost?*:80 ServerAdminwebmaster@dummy-host.example.com DocumentRoot$dir ServerName$name ErrorLoglogs/dummy-host.example.com-error_log CustomLoglogs/dummy-host.example.com-access_logcommon EOF #啟動(dòng) servicehttpdrestart&>/dev/null echo"====apache啟動(dòng)成功====" #測(cè)試驗(yàn)證 curlhttp://$name
14.需求:寫一個(gè)腳本讓用戶輸入基本信息(姓名,性別,年齡),如不輸入一直提示輸入,最后根據(jù)用戶的信息輸出相對(duì)應(yīng)的內(nèi)容
思路:
循環(huán)直到輸入字符串不為空 -z -n
根據(jù)用戶輸入信息做出匹配判斷
#!/bin/bash #該函數(shù)實(shí)現(xiàn)用戶如果不輸入內(nèi)容則一直循環(huán)直到用戶輸入為止,并且將用戶輸入的內(nèi)容打印出來 input_fun() { input_var="" output_var=$1 while[-z$input_var] do read-p"$output_var"input_var done echo$input_var } 或者 fun(){ read-p"請(qǐng)輸入您的姓名:"name if[-z$name];then fun else echo"你好,$name!" fi } fun #調(diào)用函數(shù)并且獲取用戶的姓名、性別、年齡分別賦值給name、sex、age變量 name=$(input_fun請(qǐng)輸入你的姓名:) sex=$(input_fun請(qǐng)輸入你的性別:) age=$(input_fun請(qǐng)輸入你的年齡:) #根據(jù)用戶輸入的性別進(jìn)行匹配判斷 #根據(jù)用戶所輸入的內(nèi)容進(jìn)行判斷輸入 case$sexin man|男) if[$age-ge18-a$age-le25];then echo"哥們,娶媳婦了嗎" elif[$age-gt25-a$age-le35];then echo"要擔(dān)起家庭的責(zé)任" elif[$age-lt18];then echo"小伙子不錯(cuò)" else echo"$name先生,你油膩了嗎?" fi ;; woman|女) echo"$name小姐姐你好漂亮" ;; *) echo"你是泰國來的嗎?" ;; esac
15.寫一個(gè)初始化系統(tǒng)的腳本
1)自動(dòng)修改主機(jī)名(如:ip是192.168.0.88,則主機(jī)名改為server88.itcast.cc) a.更改文件非交互式sed /etc/sysconfig/network b.將本主機(jī)的IP截取出來賦值給一個(gè)變量ip;再然后將ip變量里以.分割的最后一位賦值給另一個(gè)變量ip1 2)自動(dòng)配置可用的yum源 3)自動(dòng)關(guān)閉防火墻和selinux
#!/bin/bash ip=`ifconfigeth1|sed-n'2p'|sed's/.*addr:(.*)Bcast.*/1/g'` ip1=`echo$ip|cut-d.-f4` #修改主機(jī)名 sed-i"/HOSTNAME=/cHOSTNAME=server$ip1.itcast.cc"/etc/sysconfig/network echo"$ipserver$ip1.itcast.cc">>/etc/hosts #配置yum源 mount/dev/sr0/mnt/&>/dev/null cat>/etc/yum.repos.d/local.repo<<-EOF [local] name=local?yum baseurl=file:///mnt enabled=1 gpgcheck=0 EOF #關(guān)閉防火墻和selinux service?iptables?stop?&>/dev/null setenforce0&>/dev/null #sed-i'/SELINUX=/cSELINUX=disabled'/etc/selinux/config
16.寫一個(gè)搭建ftp服務(wù)的腳本,要求如下:
1)不支持本地用戶登錄 2)匿名用戶可以上傳新建刪除 3)匿名用戶限速500KBps
#!/bin/bash #安裝軟件 read-p"請(qǐng)輸入需要安裝的軟件:"s yum-yinstall$s&>/dev/null #備份配置文件 c=/etc/vsftpd/vsftpd.conf cp$c$c.bak #修改配置文件 sed-i'/local_enable/clocal_enable=NO'$c sed-i'$aanon_upload_enable=YES'$c sed-i'$aanon_mkdir_write_enable=YES'$c sed-i'$aanon_other_write_enable=YES'$c sed-i'$aanon_max_rate=512000'$c #啟動(dòng)服務(wù) servicevsftpdrestart&>/dev/null echo'vsftpd啟動(dòng)成功' #測(cè)試驗(yàn)證 chmod777/var/ftp/pub touch/var/ftp/pub/1.txt ip=`ifconfigeth1|sed-n'2p'|sed's/.*addr:(.*)Bcast.*/1/g'` cd/tmp lftp$ip<
17.寫一個(gè)自動(dòng)檢測(cè)磁盤使用率的腳本,當(dāng)磁盤使用空間達(dá)到90%以上時(shí),需要發(fā)送郵件給相關(guān)人員
#!/bin/bash #Name:check_space.sh #Desc:checkdiskspace /bin/df-h>df.txt use=`catdf.txt|awk'{print$5}'|grep-o'[0-9]+'` foriin$use do [$i-ge90]&&echonoticediskspace:`grep$idf.txt`|mailtom done rm-fdf.txt
18.寫一個(gè)腳本監(jiān)控系統(tǒng)內(nèi)存和交換分區(qū)使用情況
#!/bin/bash OIFS=$IFS初始化默認(rèn)分隔符 IFS=" "定義默認(rèn)分隔符 file=`free-m|sed-nr'/Mem|Swap/p'|awk'{print$4,$2}'` mem=`echo$file|head-1` swap=`echo$file|tail-1` echo$mem|awk'{if(($1/$2)*100<=50)?print?"物理內(nèi)存空間需要留意,剩余"$1"M";else?print?"物理內(nèi)存在正常范圍"}' ??echo?$swap?|awk?'{if(($1/$2)*100<=50)?print?"交換空間需要留意,剩余"$1"M";else?print?"交換空間在正常范圍"}'#!/bin/bash #監(jiān)控系統(tǒng)內(nèi)存和交換分區(qū)使用情況 #/shell05/free.sh #取當(dāng)前時(shí)間 date>>/tmp/date.txt #取物理內(nèi)存free值 echo"Mem-free:`free-m|grepMem|awk'{print$4}'`M">>/tmp/mem-free.txt #取緩沖區(qū)free值 echo"buffers/cache-free:`free-m|grep-|awk'{print$4}'`M">>/tmp/buffers-free.txt #取Swap區(qū)free值 echo"Swap-free:`free-m|grepSwap|awk'{print$4}'`M">>/tmp/swap-free.txt #將時(shí)間與相關(guān)數(shù)據(jù)重新寫入新文件 paste/tmp/date.txt/tmp/mem-free.txt/tmp/buffers-free.txt/tmp/swap-free.txt>/tmp/free.txt #發(fā)送監(jiān)控郵件 mail-s"內(nèi)存監(jiān)控報(bào)告"root@localhost/tmp/free.txt
19.輸入一個(gè)IP地址,使用腳本判斷其合法性:必須符合ip地址規(guī)范,第1、4位不能以0開頭,不能大于255不能小于0
#!/bin/bash #ValidIP #/shell05/valid.sh read-p"請(qǐng)輸入要檢查的IP:"IP ifecho$IP|grep-E"^([0-9]{1,3}.){3}[0-9]{1,3}$"&>/dev/null;then a1=`echo$IP|cut-d.-f1` a2=`echo$IP|cut-d.-f2` a3=`echo$IP|cut-d.-f3` a4=`echo$IP|cut-d.-f4` if[$a1-gt0-a$a1-le255-a$a2-le255-a$a3-le255-a$a4-gt0-a$a4-le255];then echo"$IPavailable!" else echo"$IPnotavailable!" fi else echo"IPformaterror!" fi
審核編輯:劉清
-
局域網(wǎng)
+關(guān)注
關(guān)注
5文章
762瀏覽量
46424 -
TMP
+關(guān)注
關(guān)注
0文章
15瀏覽量
31888 -
NFS
+關(guān)注
關(guān)注
1文章
53瀏覽量
26186 -
Shell
+關(guān)注
關(guān)注
1文章
366瀏覽量
23482
原文標(biāo)題:這19個(gè)Shell腳本值得收藏!
文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
嵌入式Linux入門(五、Shell腳本編程上:認(rèn)識(shí)Shell腳本)
![嵌入式Linux入門(五、<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>編程上:認(rèn)識(shí)<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>)](https://file1.elecfans.com/web2/M00/8C/AA/wKgZomSvsD6AcCrKAADOrjmkYE0206.png)
100個(gè)Linux Shell腳本總結(jié)
小編科普一下RK3288安卓主板的優(yōu)勢(shì)特點(diǎn)有哪些呢
如何做才能學(xué)好Shell腳本的經(jīng)驗(yàn)總結(jié)
![如何做才能學(xué)好<b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>的經(jīng)驗(yàn)總結(jié)](https://file1.elecfans.com//web2/M00/A7/25/wKgZomUMQqeABWFIAAA8WnGMIg8762.png)
如何創(chuàng)建和執(zhí)行一個(gè)簡(jiǎn)單的Linux shell腳本
109個(gè)實(shí)用shell腳本分享
100個(gè)Shell腳本經(jīng)典案例解析
shell腳本基礎(chǔ)知識(shí)
Linux Shell腳本經(jīng)典案例分享
![Linux <b class='flag-5'>Shell</b><b class='flag-5'>腳本</b>經(jīng)典案例分享](https://file1.elecfans.com/web2/M00/89/DD/wKgZomSL-7eAcRBVAAA0YQQcU5I277.png)
分享249個(gè)拿來即用的shell腳本
![分享249<b class='flag-5'>個(gè)</b>拿來即用的<b class='flag-5'>shell</b><b class='flag-5'>腳本</b>](https://file1.elecfans.com/web2/M00/8C/31/wKgaomSnfgCAfb0vAAA0YQQcU5I769.png)
評(píng)論