今天就跟大家聊聊有關(guān)PHP中常用的Shell腳本有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為七里河等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及七里河網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、七里河網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
1、通過(guò)位置變量創(chuàng)建linux系統(tǒng)賬戶及密碼
$1 是執(zhí)行腳本的第一個(gè)參數(shù),$2 是執(zhí)行腳本的第二個(gè)參數(shù)
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 19:19:45 # Name: userad.sh # Version: v1.0 # Description: This is a Script. `useradd $1` echo "$2" |passwd --stdin "$1"
2、每周5使用tar命令備份/var/log 下的所有日志文件,防止文件覆蓋
vim backup.sh tar zcfP /tmp/varlog_$(date +%F).tar.gz /var/log crontab -e * * * * 5 bin/bash /server/scripts/backup.sh
3、實(shí)時(shí)監(jiān)控本機(jī)內(nèi)存和硬盤(pán)剩余空間,剩余內(nèi)存小于500M,根分區(qū)剩余空間小于1000M的時(shí)候發(fā)送報(bào)警郵件
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 20:29:30 # Name: jiankong.sh # Version: v1.0 # Description: This is a Script. free=`free -m|awk 'NR==3 {print$4 }'` df=`df |awk 'NR==2{print $4}'` if [[ $free -lt 500 && $df -lt 1000000 ]];then mail -s "Warning~" 1227566276@qq.com echo 'send success!' else echo 'zhengchang!' exit 0 fi
4、腳本生成一個(gè) 100 以內(nèi)的隨機(jī)數(shù)值,提示用戶猜數(shù)字,更具用戶的輸入,提示用戶猜對(duì)了,猜打了或猜小了,直至用戶猜對(duì)腳本結(jié)束。
5、檢測(cè)本機(jī)當(dāng)前用戶是否為超級(jí)管理員,如果是管理員,使用 yum 安裝 vsftpd,如果不是,則提示您非管理員,使用字串對(duì)比版本。
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 20:43:03 # Name: root.sh # Version: v1.0 # Description: This is a Script. root=`id -u` if [ $root -eq 0 ];then yum install -y vsftpd else echo 'no super user~' fi
6、依次提示用戶輸入 3 個(gè)整數(shù),腳本根據(jù)數(shù)字大小依次排序輸出 3 個(gè)數(shù)字
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 20:45:50 # Name: 3geshu.sh # Version: v1.0 # Description: This is a Script. read -p "first:" a read -p "second:" b read -p "third:" c if [[ -z $a || -z $b || -z $c ]];then echo "please input num---" exit 1 fi if [[ -n "$(echo $a| sed -n "/^[0-9]\+$/p")" && -n "$(echo $b| sed -n "/^[0-9]\+$/p")" && -n "$(echo $c| sed -n "/^[0-9]\+$/p")" ]];then if [ $a -lt $b ];then t=$a;a=$b;b=$t; fi if [ $a -lt $c ];then t=$a;a=$c;c=$t; fi if [ $b -lt $c ];then t=$b;b=$c;c=$t; fi echo " big --- small:$a,$b,$c" else echo "dont abcd...." fi
7、編寫(xiě)腳本,實(shí)現(xiàn)人機(jī)《石頭,剪刀,布》游戲
8、編寫(xiě)腳本測(cè)試192.168.4.0/24整個(gè)網(wǎng)段中那些主機(jī)處于開(kāi)機(jī)狀態(tài),那些主機(jī)處于關(guān)機(jī)狀態(tài)(for 版本)
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 21:13:05 # Name: ping1.sh # Version: v1.0 # Description: This is a Script. for i in {1..254} do ping 192.168.4.$i -c 2 -w 1 2&>1 >/dev/null if [ $? -eq 0 ];then echo "192.168.4.$i active!!!" else echo "192.168.4.$i down..." fi done
9、編寫(xiě)腳本測(cè)試 192.168.4.0/24 整個(gè)網(wǎng)段中那些主機(jī)處于開(kāi)機(jī)狀態(tài),那些主機(jī)處于關(guān)機(jī)狀態(tài)(多進(jìn)程版),定義一個(gè)函數(shù)來(lái)實(shí)現(xiàn),ping 某一臺(tái)主機(jī),并檢測(cè)主機(jī)的存貨狀態(tài)
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 21:18:43 # Name: ping2.sh # Version: v1.0 # Description: This is a Script. fun_ping(){ ping 192.168.4.$i -c 1 -w 1 2&>1 >/dev/null if [ $? -eq 0 ] then echo "192.168.4.$i active!" else echo "192.168.4.$i down." fi } for i in {1..254} do fun_ping done
10、編寫(xiě)腳本,復(fù)制文件的時(shí)候,顯示進(jìn)度條
11、9*9 乘法表(編寫(xiě) shell 腳本,打印 9*9 乘法表)
12、使用死循環(huán)實(shí)時(shí)顯示 eth0 網(wǎng)卡發(fā)送的數(shù)據(jù)包流量
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 21:50:32 # Name: eth5.sh # Version: v1.0 # Description: This is a Script. while : do ifconfig eth5 |sed -n '5,6p' done
13、使用user.txt 文件中的人員名單,在計(jì)算機(jī)中自動(dòng)創(chuàng)建對(duì)應(yīng)的賬戶并配置初始密碼
腳本執(zhí)行,需要提前準(zhǔn)備一個(gè) user.txt 文件,該文件中包含有若干用戶信息
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 21:27:13 # Name: zidonguser.sh # Version: v1.0 # Description: This is a Script. user=`cat /server/scripts/user.txt` for i in $user do useradd $i echo "123456" |passwd --stdin "$i" done
14、編寫(xiě)批量修改擴(kuò)展名腳本,如批量將 txt 文件修改為doc文件
執(zhí)行腳本時(shí),需要給腳本添加位置參數(shù)
腳本名 txt doc (可以將 txt 的擴(kuò)展名修改為doc)
腳本名 doc jpg(可以將doc 的擴(kuò)展名修改為jpg)
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 18:58:14 # Name: rename.sh # Version: v1.0 # Description: This is a Script. read -p "input weizhi" $wz for i in `ls $wz` do mv $i `echo $i|sed s#txt#doc#g` done
15、查看有多少遠(yuǎn)程的 IP 在連接本機(jī)(不管是通過(guò) ssh 還是 web 還是 ftp 都統(tǒng)計(jì))
使用 netstat -atn 可以查看本機(jī)所有連接狀態(tài),-a 查看所有,
-t 僅顯示tcp連接信息, -n數(shù)字格式顯示
local address(第四列是本機(jī)的IP和端口信息)
Foreign address(第五烈是遠(yuǎn)程主機(jī)的IP和端口信息)
使用awk命令僅顯示第5列數(shù)據(jù),再顯示第1列IP地址的信息
sort 可以按數(shù)字的大小排序,最后使用 Uniq 將多余重復(fù)的刪除,并統(tǒng)計(jì)重復(fù)次數(shù)
#netstat -atn | awk -F"[: ]+" '{print $5}' 端口號(hào) netstat -atn |egrep ":80|:22|:21" | awk '{print $5}' |awk -F ":" '{print $1}' |sort -rn |uniq -c
16、對(duì)100 以內(nèi)的所有正整數(shù)相加求和(1+2+3.。。+100)
eq 100 可以快速自動(dòng)生成100個(gè)整數(shù)
#!/bin/bash # Author: Peter zh # Blog: https://home.cnblogs.com/zhangwduoduoj/ # Time: 2019-08-17 21:10:05 # Name: qiuhe.sh # Version: v1.0 # Description: This is a Script. sum=0 for i in `seq 100` do let sum+=i done echo $sum
看完上述內(nèi)容,你們對(duì)PHP中常用的Shell腳本有哪些有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。