1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信 息,包括主機名,IPv4地址,操作系統版本,內核版本, CPU型號,內存大小,硬盤大小。
#!/bin/bash ##編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信 息,包括主機名,IPv4地址,操作系統版本,內>核版本, CPU型號,內存大小,硬盤大小。 echo "主機名;`hostname`" echo "ip地址:`ifconfig | tr -s " " ":" | cut -d : -f4 | head -n 2 | tail -n 1`" echo "內核版本:`uname -r`" echo "CPU信息:`lscpu | grep -i "model name"`" echo "操作系統版本:`cat /etc/redhat-release`" echo "內存剩余量: `free -m | grep Mem | tr -s " " ":" | cut -d : -f4`" echo "磁盤使用量:`df -h | grep "/dev/sd" | tr -s " " ":" | cut -d : -f5 | tr -d "%"`"
2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄 備份到/root/etcYYYY-mm-dd中
#!/bin/bash ##編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄 備份到/root/etcYYYY-mm-dd中 echo "正在備份..." cp -a /etc /root/etc$(date +%F) && echo "備份完成" ~
3、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利 用率最大的值
#!/bin/bash ##編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利 用率最大的值 maxdisk=`df | grep "/dev/sd" | tr -s " " ":" | cut -d : -f5 | sort -nr | head -n1` maxuse=`df | grep "/dev/sd" | tr -s " " ":" | cut -d : -f1 | sort -nr | head -n1` echo "磁盤"$maxuse"使用量為:"$maxdisk
4、編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠 程主機的IPv4地址和連接數,并按連接數從大到小排序
#!/bin/bash ##編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠 程主機的IPv4地址和連接數,并按連接數從大到小排序 echo -e "遠程主機連接統計為:\n\t連接數\t遠程主機IP" netstat -nt | tr -s " " | cut -d " " -f5 | cut -d : -f1 | sort -n | uniq -c |tr -s " " "\t"| egrep '([0-9]+.){3}[0-9]+'
5、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd 文件中的第10個用戶和第20用戶的ID之和
#!/bin/bash ##寫一個腳本/root/bin/sumid.sh,計算/etc/passwd 文件中的第10個用戶和第20用戶的ID之和 user10=`cat /etc/passwd | cut -d : -f3 | sed -n "10p"` user20=`cat /etc/passwd | cut -d : -f3 | sed -n "20p"` let Num=$user10+$user20 echo $Num
6、寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件 路徑作為參數給腳本,計算這兩個文件中所有空白行之和
#!/bin/bash ##寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件 路徑作為參數給腳本,計算這兩個文件中所有空白行之和 File1=$(grep "^$" $1 | wc -l) File2=$(grep "^$" $2 | wc -l) let Sumlink=$File1+$File2 echo "the sum of $1 and $2 spacelines is $Sumlink"
7、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
#!/bin/bash ##寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件 num1=$(ls -l /etc | wc -l) num2=$(ls -l /var | wc -l) num3=$(ls -l /usr | wc -l) let Num=$num1+$num2+$num3 echo $Num
8、寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作 為參數;如果參數個數小于1,則提示用戶“至少應該給一個 參數”,并立即退出;如果參數個數不小于1,則顯示第一個 參數所指向的文件中的空白行數
#!/bin/bash ##寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作 為參數;如果參數個數小于1,則提示用戶“至少應該給一 個 參數”,并立即退出;如果參數個數不小于1,則顯示第一個 參數所指向的文件中的空白行數 [[ $1 == "" ]] && echo "please enter a parameter" || echo $(grep "^$" $1 | wc -l)
9、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問
#!/bin/bash # ipaddr='(\<([0-9]|[1-9][0-9]|1[0-9]{2}|2([0-4][0-9]|5[0-5]))\>\.){3}\<([0-9]|[1-9][0-9]|1[0-5][1-9]|2([0-4][0-9]|25[0-5]))\>' read -p "please input a IPV4 addr: " ipv4 if [[ $ipv4 =~ $ipaddr ]];then echo "a legal IP." ping $ipv4 -c 4 echo "這個IP可以正常訪問" else echo "unlegal IP" echo "請輸入正確的網址" exit fi
10、chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判 斷當前用戶對/tmp/fiile1文件 是否不可讀且不可寫 ?
#!/bin/bash ##chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判 斷當前用戶對/tmp/fiile1>文件 是否不可讀且不可寫 ? flie1=/home/soft/zuoye/file [ -r $file1 ] arg1=$(echo $?) echo $arg1 [[ $arg1 -eq 0 ]] && echo "該用戶對此文件有讀的權限" || echo "該用戶對此文件沒有 讀的權限" [ -w $file1 ] arg2=$(echo $?) echo $arg2 [[ $arg2 -eq 0 ]] && echo "該用戶對此文件有寫的權限" || echo "該用戶對此文件沒有 寫的權限"
11、編寫腳本/root/bin/nologin.sh和login.sh,實現禁止和允許普通用戶登錄系統。
#!/bin/bash touch /etc/nologin
12、計算1+2+3+…+100的值
#!/bin/bash for (( i = 0; i < 100; i++ )) do result=$[ ${result} + ${i} ] done echo $result
原創文章,作者:forest,如若轉載,請注明出處:http://www.www58058.com/35391