1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小
#!/bin/bash
:<<EOF
顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小
EOF
Host_name=`hostname`
Ip_address=`ifconfig | grep -o '\([[:digit:]]\+\.\)\{3\}[[:digit:]]\+'|sed -n '1p'`
Systeminfo=`cat /etc/redhat-release`
Coreinfo=`uname -r`
Cpuinfo=`lscpu|sed -n '13p' | tr -s ' ' | cut -d: -f2`
Meminfo=`lscpu|sed -n '13p' | tr -s ' ' | cut -d: -f2`
Hdisk=`fdisk -l /dev/sda |sed -n '2p'|tr -d ' '|cut -d , -f1`
echo "主機名:$Host_name"
echo -e "\n操作系統信息: $Systeminfo"
echo -e "\ncpu信息: $Cpuinfo"
echo -e "\n內核信息: $Coreinfo"
echo -e "\n內存信息: $Meminfo"
echo -e "\n本機IP地址: $Ip_address"
echo -e "\n硬盤信息: $Hdisk"
2、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中
cp -a /etc/. /root/etc`date/ +%F` && ( echo"backup finished" ; ls -l | grep 'etc[[:digit:]]\+' )
|| echo "backup error"
3、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值
#!/bin/bash
:<<EOF
顯示當前硬盤分區中空間利用率最大的值
EOF
echo "please input the device you want to check:"
read Chk_device
echo -e "\n`df | grep "$Chk_device" | tr -s ' ' | cut -d' ' -f1,5`\n"
4、編寫腳本/root/bin/links.sh,顯示正連接本主機的每個遠程主機的IPv4地址和連接數,并按連接數從大到小排序
#!/bin/bash
:<<EOF
顯示正連接本主機的每個遠程主機的IPv4地址和連接數,并按連接數從大到小排序
EOF
netstat -nt | tr -s ' ' | cut -d' ' -f5 | tr -cs '0-9.' '\n' | grep '\([0-9]\+\.\)\{3\}[0-9]\+' | sort | uniq -c | sort -nr | tr -s ' ' '\t'
5、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和
#!/bin/bash
#計算第N行的用戶的ID的總和
declare -i id=0
for line in {10,20};do
id2=`sed -n "${line}p" /etc/passwd | cut -d: -f3`
id=$[$id+$id2]
done
echo "the sum is $id"
6、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
#!/bin/bash
#統計目錄中共有多少個一級子目錄和文件
sum1=`ls -a $1 |wc -l`
echo "the sum1 of $1 is $sum1"
sum2=`ls -a $2 |wc -l`
echo "the sum2 of $2 is $sum2"
sum3=`ls -a $3 |wc -l`
echo "the sum3 of $3 is $sum3"
7、寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作為參數;如果參數個數小于1,則提示用戶“至少應該給一個參數”,并立即退出;如果參數個數不小于1,則顯示第一個參數所指向的文件中的空白行數ls
#!/bin/bash
:<<\EOF
寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑作
為參數;如果參數個數小于1,則提示用戶“至少應該給一個
參數”,并立即退出;如果參數個數不小于1,則顯示第一個
參數所指向的文件中的空白行數
EOF
[ $# -eq 0 ]&& (echo "至少應該給一個參數"; exit 2)
linenum1=`grep '^$' $1 | wc -l`
echo "the linenum of the first parameter is $linenum1"
8、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”
#!/bin/bash
:<<\EOF
寫一個腳本/root/bin/hostping.sh,接受一個主機的
IPv4地址做為參數,測試是否可連通。如果能ping通,則提
示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“
該IP地址不可訪問
EOF
ping -c1 -w1 $1 &> /dev/null && (echo"該IP地址可以訪問";exit 0) || echo " 該IP地址不可以訪問"
9、chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判斷當前用戶對/tmp/fiile1文件是否不可讀且不可寫
#!/bin/bash
:<<\EOF
chmod -rw /tmp/file1,編寫腳本/root/bin/per.sh,判
斷當前用戶對/tmp/fiile1文件 是否不可讀且不可寫
EOF
[ ! -r /tmp/test/file1 -a !-w /tmp/test/file1 ] && echo" no -r no -w" || echo "has -r or -w"
10、編寫腳本/root/bin/nologin.sh和login.sh,實現禁止和充許普通用戶登錄系統。
#!/bin/bash
#禁止和充許普通用戶登錄系統。
echo "please input "nologin" or "login" to limit the users to login "
read Login_model
[ "$Login_model" == "nologin" ] && (touch /etc/nologin &>/dev/null ;echo "limit users
to login")
[ "$Login_model" == "login" ] && ( rm -rf /etc/nologin &>/dev/null ;echo "allow users to
login")
11、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址做為參數,先判斷是否合格IP,否,提示IP格式不合法并退出,是,測試是否可連通。如果能ping通,則提示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“該IP地址不可訪問”
#!/bin/bash
:<<\EOF
寫一個腳本/root/bin/hostping.sh,接受一個主機的
IPv4地址做為參數,測試是否可連通。如果能ping通,則提
示用戶“該IP地址可訪問”;如果不可ping通,則提示用戶“
該IP地址不可訪問
EOF
echo "please input IP address you want to ping:"
read Ping_address
[[ "$ipaddress" =~ "[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+" ]]
ping -c1 -w1 $1 &> /dev/null && (echo"該IP地址可以訪問";exit 0) || echo " 該IP地址不可以訪問"
12、計算1+2+3+…+100的值
declare -i sum=0
for i in {1,100};do
sum=$[$i+$sum]
echo "sum=$sum"
13、計算從腳本第一參數A開始,到第二個參數B的所有數字的總和,判斷B是否大于A,否提示錯誤并退出,是則計算之
#!/bin/bash
#
declare -i sum=0
[ $1 -lt $2 ] && (sum=$[$1+$2];echo "sum=$sum") || echo "error";exit
原創文章,作者:ldt195175108,如若轉載,請注明出處:http://www.www58058.com/35592