1、腳本node
一、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操做系統版本,內核版本,CPU型號,內存大小,硬盤大小。centos
#!/bin/bash echo '顯示當前系統信息' echo "主機名:" hostname echo "ip地址:" ifconfig |sed -n "2p" |tr -s " " |cut -d " " -f3 echo "操做系統版本:" cat /etc/centos-release echo "內核版本:" cat /proc/version |cut -d"(" -f1 echo "CPU型號:" lscpu |sed -n "13p" |tr -s " "|cut -d : -f2 echo "內存大小:" free -h |sed -n '2p' |tr -s " " |cut -d " " -f2 echo "硬盤大小:" fdisk -l |sed -n "2p" |cut -d "," -f1 |cut -d: -f2
二、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中bash
#!/bin/bash #每日將/etc/目錄備份到/root/etcYYY-mm-dd中 cp -rp /etc/. /root/etc`date +%F`
三、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值less
#!/bin/bash #author:zhang echo "顯示硬盤分區中空間利用率最大的值" df |grep "/dev/sd" |cut -c46-48 |sort -rn |head -1
四、編寫腳本/root/bin/links.sh,顯示正鏈接本主機的每一個遠程主機的IPv4地址和鏈接數,並按鏈接數從大到小排序ide
#!/bin/bash echo "the links are:" netstat -nt |tr -s ' ' |cut -d ' ' -f5 |cut -d: -f1 |grep [0-9]|sort -rn |uniq -c
五、寫一個腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和測試
#!/bin/bash id1=$(sed -n "10p" /etc/passwd |cut -d: -f3) id2=$(sed -n "20p" /etc/passwd |cut -d: -f3) idsum=$((id1+id2)) echo idsum=$idsum
六、寫一個腳本/root/bin/sumspace.sh,傳遞兩個文件路徑做爲參數給腳本,計算這兩個文件中全部空白行之和spa
#!/bin/bash操作系統
#author:zhangx #version:1.0 sp1=$(egrep "^[[:space:]]+$" $1 |wc -l) sp2=$(egrep "^[[:space:]]+$" $2 |wc -l) sumspace=$[sp1+sp2] echo "the line of space is $sumspace"
七、寫一個腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件排序
#!/bin/bash file1=$(ls -d /etc/* |wc -l) file2=$(ls -d /etc/* |wc -l) file3=$(ls -d /etc/* |wc -l) sumfile=$[file1+file2+file3] echo "the total is $sumfile"
八、寫一個腳本/root/bin/argsnum.sh,接受一個文件路徑做爲參數;若是參數個數小於1,則提示用戶「至少應該給一個參數」,並當即退出;若是參數個數不小於1,則顯示第一個參數所指向的文件中的空白行數ip
#!/bin/bash [ $# -lt 1 ] && echo "argnum less than 1" || egrep -c '^[[:space:]]+$' $1
九、寫一個腳本/root/bin/hostping.sh,接受一個主機的IPv4地址作爲參數,測試是否可連通。若是能ping通,則提示用戶「該IP地址可訪問」;若是不可ping通,則提示用戶「該IP地址不可訪問」
#!/bin/bash ping -c1 -W1 $1 &> /dev/null && echo "ip能夠訪問" || echo "ip不能夠訪問"
十、判斷硬盤的每一個分區空間和inode的利用率是否大於80,若是是,發郵件通知root磁盤滿
#!/bin/bash disk=`df |grep "/dev/sda" |cut -c44-46 |sort -rn |head -1` inode=`df -i |grep "/dev/sda" |cut -c43-44 |sort -rn |head -1` [ "$disk" -gt 80 -o "$inode" -gt 80 ] &&echo "磁盤已滿" | mail -s "磁盤報警" root &&exit
十一、指定文件作爲參數,判斷文件是否爲.sh後綴,若是是,添加x權限
#!/bin/bash read -p "please input filename:" file [ ! -f $file ] &&echo "該文件不存在" && exit 0 [[ $file =~ .*.sh$ ]] &&chmod +x $file &&echo "執行權限添加成功" ||echo "該文件不匹配"
十二、判斷輸入的IP是否爲合法IP
#!/bin/bash read -p "請輸入IP地址:" ip echo $ip |egrep "\b(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b" &>/dev/null &&echo "地址合法" ||echo "地址不合法" 1三、計算1+2+3+...+100
#!/bin/bash echo "計算1+2+3+...+100的值:$(echo {1..100} |tr " " "+" |bc)"
1四、輸入起始值A和最後值B,計算從A+(A+1)...+(B-1)+B的總和
#!/bin/bash read -p "the first number:" a read -p "the secnod number:" b [ $a -lt $b ] &&echo "the addnumber is :$(seq -s + $a $b |bc)"&&exit 0 || [ $a -gt $b ] &&echo "the addnumb is :$(seq -s + $b $a |bc)"