1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。
[root@CentOs6 bin]# systeminfo.sh Hostname: CentOs6.localdomain; IP address: 10.1.252.175 ; System version: CentOS release 6.8 (Final); kernel version: 2.6.32-642.el6.x86_64; CPU type : Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz; Disk size : 107.4 GB ############################################################################################# [root@CentOs6 bin]# vim systeminfo.sh #!/bin/bash echo " Hostname: `hostname`;" echo " IP address: ` ifconfig | sed -n '2p' | cut -d: -f2 | cut -d\ -f1` ;" echo "System version: `cat /etc/redhat-release`;" echo "kernel version: `uname -r`;" echo " CPU type : `lscpu | sed -n 's/Model name:[[:space:]]\+//p'`;" echo " Disk size : `fdisk -l | sed -nr -e 's@.*:(.*),.*@\1@p' | head -1`"
2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備到/root/etcYYYY-mm-dd中
[root@CentOs6 bin]# vim backup.sh #!/bin/bash echo "backup start" cp -a /etc /root/etc`date +%F` echo "backup over"
3、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值
[root@CentOs6 bin]# disk.sh the disk max using rate is :19% ############################################################################################# [root@CentOs6 bin]# vim disk.sh #!/bin/bash echo "the disk max using rate is :`df | grep "sd" | tr -s ' ' | cut -d\ -f5 | sort -n | tail -1`"
4、編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠程主機的IPv4地址和連接數,并按連接數從大到小排序
[root@CentOs6 bin]# links.sh The links :2 10.1.250.27 ########################################################################################### [root@CentOs6 bin]# vim links.sh #!/bin/bash echo "The links :`netstat -nt |tr -s ' ' |cut -d ' ' -f5 |cut -d: -f1 |grep [0-9]|sort |uniq -c|sort -nr | sed -r 's/^[[:space:]]+//'`"
5、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和
[root@CentOs6 bin]# sumid.sh this's user 10 UID:10 this's user 20 UID:32 they are sumID is :42 ############################################################################################## [root@CentOs6 bin]# vim sumid.sh #!/bin/bash user10=`sed -n '10p' /etc/passwd | cut -d: -f3` echo "this's user 10 UID:$user10" user20=`sed -n '20p' /etc/passwd | cut -d: -f3` echo "this's user 20 UID:$user20" sum=$[user10+user20] echo "they are sumID is :$sum"
6、寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件路徑作為參數給腳本,計算這兩個文件中所有空白行之和
[root@CentOs6 bin]# sumspace.sh please input filename1 :/etc/issue please input filename2 :/etc/issue space sum is :10 ######################################################################################### [root@CentOs6 bin]# vim sumspace.sh #!/bin/bash read -p "please input filename1 :" file file10=`egrep -c '^$' $file` read -p "please input filename2 :" file2 file20=`egrep -c '^$' $file2` sumspace=$(( file10 + file20 )) echo "space sum is :$sumspace"
7、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
[root@CentOs6 bin]# sumfile.sh file /etc :230 file /var :22 file /usr :13 filesum = 265 ############################################################################################## [root@CentOs6 bin]# vim sumfile.sh #!/bin/bash etc=`ls -1 /etc | wc -l` echo "file /etc :$etc" var=`ls -1 /var | wc -l` echo "file /var :$var" usr=`ls -1 /usr | wc -l` echo "file /usr :$usr" filesum=$[ etc+var+usr ] echo "filesum = $filesum"
8、寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作為參數;如果參數個數小于1,則提示用戶“至少應該給一個參數”,并立即退出;如果參數個數不小于1,則顯示第一個參數所指向的文件中的空白行數
[root@CentOs6 bin]# argsnum.sh plese input file:/etc/issue The file space : 5 ############################################################################################## [root@CentOs6 bin]# vim argsnum.sh #!/bin/bash # read -p "plese input file:" file if [[ -f $file ]];then echo "The file space : `egrep -c "^$" $file`" else echo "Should at least give args" fi
9、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”
[root@CentOs6 bin]# hostping.sh plase input ipaddr:10.1.0.1 Connect successfully ############################################################################################## [root@CentOs6 bin]# vim hostping.sh #!/bin/bash read -p "plase input ipaddr:" ip ping -W1 -c1 $ip &> /dev/null && echo Connect successfully || echo Connect fail
10、判斷硬盤的每個分區空間和inode的利用率是否大于80,如果是,發郵件通知root磁盤滿
[root@CentOs6 bin]# using.sh disk use normal ############################################################################################## [root@CentOs6 bin]# vim using.sh #!/bin/bash inode=`df -i | egrep -o "[1-9][0-9]%" | sed -r 's@([0-9]+)%@\1@'` disk=`df -P | egrep -o "[2-9][0-9]%" | sed -r 's@([0-9]+)%@\1@'` [ $inode -ge 80 ] || [ $disk -ge 80 ] && mail -s 'disk over' root < /root/bin/mail || echo "disk use normal";exit
11、指定文件做為參數,判斷文件是否為.sh后綴,如果是,添加x權限
[root@CentOs6 bin]# chfile.sh please input filename:test.sh test.sh ############################################################################################## [root@CentOs6 bin]# vim chfile.sh read -p "please input filename:" file [ -f $file ] && echo "$file" | grep "\.sh$" && chmod +x $file;exit || exit
12、判斷輸入的IP是否為合法IP
[root@CentOs6 bin]# ipok.sh plese input ip address:192.168.1.0 You input ipaddr OK ############################################################################################## [root@CentOs6 bin]# vim ipok.sh read -p "plese input ip address:" ipaddr echo $ipaddr | egrep "^(\b([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-2][0-3])\b\.)(\b([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\b\.){2}(\b([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\b)$" &> /dev/null && echo "You input ipaddr OK " || echo "You input ipaddr don't OK"
13、計算1+2+3+…+100
[root@CentOs6 bin]# digitsum.sh digit sum is :5050 ############################################################################################## [root@CentOs6 bin]# vim digitsum.sh #!/bin/bash # sum=`echo {1..100} | tr " " "+" | bc` echo "digit sum is :$sum"
14、輸入起始值A和最后值B,計算從A+(A+1)…+(B-1)+B的總和
[root@CentOs6 bin]# ABsum.sh please input value A:100 please input value B:1 A + B = :5050 ############################################################################################## [root@CentOs6 bin]# vim ABsum.sh #!/bin/bash read -p "please input value A:" A read -p "please input value B:" B [ $A -lt $B ] && echo " A + B sum :`seq -s+ $A $B| bc`" || echo " A + B = :`seq -s+ $B $A| bc`"
原創文章,作者:Lii,如若轉載,請注明出處:http://www.www58058.com/34251