1、通過位置變數創建linux系統賬戶及密碼$1 是執行腳本的第一個參數,$2 是執行腳本的第二個參數 2、每周5使用tar命令備份/var/log 下的所有日誌文件,防止文件覆蓋 3、實時監控本機記憶體和硬碟剩餘空間,剩餘記憶體小於500M,根分區剩餘空間小於1000M的時候發送報警郵件 4、腳本生成 ...
1、通過位置變數創建linux系統賬戶及密碼
$1 是執行腳本的第一個參數,$2 是執行腳本的第二個參數
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 19:19:45 5 # Name: userad.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 9 `useradd $1` 10 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、實時監控本機記憶體和硬碟剩餘空間,剩餘記憶體小於500M,根分區剩餘空間小於1000M的時候發送報警郵件
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 20:29:30 5 # Name: jiankong.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 9 free=`free -m|awk 'NR==3 {print$4 }'` 10 df=`df |awk 'NR==2{print $4}'` 11 12 if [[ $free -lt 500 && $df -lt 1000000 ]];then 13 mail -s "Warning~" 1227566276@qq.com 14 echo 'send success!' 15 else 16 echo 'zhengchang!' 17 exit 0 18 fi
4、腳本生成一個 100 以內的隨機數值,提示用戶猜數字,更具用戶的輸入,提示用戶猜對了,猜打了或猜小了,直至用戶猜對腳本結束。
5、檢測本機當前用戶是否為超級管理員,如果是管理員,使用 yum 安裝 vsftpd,如果不是,則提示您非管理員,使用字串對比版本
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 20:43:03 5 # Name: root.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 9 root=`id -u` 10 if [ $root -eq 0 ];then 11 yum install -y vsftpd 12 else 13 echo 'no super user~' 14 fi
6、依次提示用戶輸入 3 個整數,腳本根據數字大小依次排序輸出 3 個數字
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 20:45:50 5 # Name: 3geshu.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 read -p "first:" a 9 read -p "second:" b 10 read -p "third:" c 11 12 if [[ -z $a || -z $b || -z $c ]];then 13 echo "please input num---" 14 exit 1 15 fi 16 17 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 18 19 if [ $a -lt $b ];then 20 t=$a;a=$b;b=$t; 21 fi 22 if [ $a -lt $c ];then 23 t=$a;a=$c;c=$t; 24 fi 25 if [ $b -lt $c ];then 26 t=$b;b=$c;c=$t; 27 fi 28 echo " big --- small:$a,$b,$c" 29 30 else 31 echo "dont abcd...." 32 fi
7、編寫腳本,實現人機《石頭,剪刀,布》游戲
8、編寫腳本測試192.168.4.0/24整個網段中那些主機處於開機狀態,那些主機處於關機狀態(for 版本)
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 21:13:05 5 # Name: ping1.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 for i in {1..254} 9 do 10 ping 192.168.4.$i -c 2 -w 1 2&>1 >/dev/null 11 if [ $? -eq 0 ];then 12 echo "192.168.4.$i active!!!" 13 else 14 echo "192.168.4.$i down..." 15 fi 16 done
9、編寫腳本測試 192.168.4.0/24 整個網段中那些主機處於開機狀態,那些主機處於關機狀態(多進程版),定義一個函數來實現,ping 某一臺主機,並檢測主機的存貨狀態
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 21:18:43 5 # Name: ping2.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 fun_ping(){ 9 10 ping 192.168.4.$i -c 1 -w 1 2&>1 >/dev/null 11 if [ $? -eq 0 ] 12 then 13 echo "192.168.4.$i active!" 14 else 15 echo "192.168.4.$i down." 16 fi 17 } 18 for i in {1..254} 19 do 20 fun_ping 21 done
10、編寫腳本,複製文件的時候,顯示進度條
11、9*9 乘法表(編寫 shell 腳本,列印 9*9 乘法表)
12、使用死迴圈實時顯示 eth0 網卡發送的數據包流量
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 21:50:32 5 # Name: eth4.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 while : 9 do 10 ifconfig eth4 |sed -n '5,6p' 11 done
13、使用user.txt 文件中的人員名單,在電腦中自動創建對應的賬戶並配置初始密碼
腳本執行,需要提前準備一個 user.txt 文件,該文件中包含有若幹用戶信息
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 21:27:13 5 # Name: zidonguser.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 user=`cat /server/scripts/user.txt` 9 for i in $user 10 do 11 useradd $i 12 echo "123456" |passwd --stdin "$i" 13 done
14、編寫批量修改擴展名腳本,如批量將 txt 文件修改為doc文件
執行腳本時,需要給腳本添加位置參數
腳本名 txt doc (可以將 txt 的擴展名修改為doc)
腳本名 doc jpg(可以將doc 的擴展名修改為jpg)
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 18:58:14 5 # Name: rename.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 read -p "input weizhi" $wz 9 for i in `ls $wz` 10 do 11 mv $i `echo $i|sed s#txt#doc#g` 12 13 done
15、查看有多少遠程的 IP 在連接本機(不管是通過 ssh 還是 web 還是 ftp 都統計)
使用 netstat -atn 可以查看本機所有連接狀態,-a 查看所有,
-t 僅顯示tcp連接信息, -n數字格式顯示
local address(第四列是本機的IP和埠信息)
Foreign address(第五烈是遠程主機的IP和埠信息)
使用awk命令僅顯示第5列數據,再顯示第1列IP地址的信息
sort 可以按數字的大小排序,最後使用 Uniq 將多餘重覆的刪除,並統計重覆次數
#netstat -atn | awk -F"[: ]+" '{print $5}' 埠號 netstat -atn |egrep ":80|:22|:21" | awk '{print $5}' |awk -F ":" '{print $1}' |sort -rn |uniq -c
16、對100 以內的所有正整數相加求和(1+2+3.。。+100)
eq 100 可以快速自動生成100個整數
1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 21:10:05 5 # Name: qiuhe.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 9 sum=0 10 for i in `seq 100` 11 do 12 let sum+=i 13 done 14 echo $sum 15