shell腳本練習

一、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操做系統版本,內核版本,CPU型號,內存大小,硬盤大小
答:echo -e "My hostname is hostname"
echo -e "My ip is ifconfig | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'|head -1"
echo -e "OS version is cat /etc/redhat-release"
echo -e "kernel version is uname -r"
echo -e "CPU type islscpu|grep 'Model name'|tr -s " "|cut -d: -f2"
echo -e "Mem total is cat /proc/meminfo |head -1|cut -d: -f2|tr -d ' '"
echo -e "Disk is lsblk | grep -Eo "[0-9]+G"|sort -nr|head -1" ide

二、編寫腳本/root/bin/backup.sh,可實現每日將/etc/目錄備份到/root/etcYYYY-mm-dd中
答:cp -av /etc/ /data/etcdate +%Fspa

三、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區中空間利用率最大的值
答:df | grep /dev/sd| tr -s " "|cut -d" " -f5|sort -nr|head -1操作系統

四、編寫腳本/root/bin/links.sh,顯示正鏈接本主機的每一個遠程主機的IPv4地址和鏈接數,並按鏈接數從大到小排序
答:cat ss.log | tr -s " " :| cut -d: -f4|grep ^[0-9]|sort -nr|uniq -ccode

一、編寫腳本/root/bin/sumid.sh,計算/etc/passwd文件中的第10個用戶和第20用戶的ID之和
答:ID10=cat /etc/passwd|head -10|tail -1|cut -d: -f3
ID20=cat /etc/passwd|head -20|tail -1|cut -d: -f3
ID=$[$ID10+$ID20]
echo -e "第十個用戶的ID爲:$ID10"
echo -e "第二十個用戶的ID爲:$ID20"
echo -e "和爲:$ID"排序

二、編寫腳本/root/bin/sumspace.sh,傳遞兩個文件路徑做爲參數給腳本,計算這兩個文件中全部空白行之和
答:FILE1=cat $1 | grep ^[[:space:]]*[[:space:]]$|wc -lip

echo -e "文件一的空白行爲:"$FILE1"行"內存

FILE2=cat $2 | grep ^[[:space:]]*[[:space:]]$|wc -lit

echo -e "文件二的空白行爲:"$FILE2"行"io

FILE="$[$FILE1+$FILE2]"class

echo -e "文件一和文件二的總空白行爲:"$FILE"行"

三、編寫腳本/root/bin/sumfile.sh,統計/etc, /var, /usr目錄中共有多少個一級子目錄和文件
答:ETCDIR=ls -la /etc | grep ^d | wc -l

echo -e "/etc中一級目錄有"$ETCDIR"個"

ETCFILE=ls -la /etc | grep -v ^d|wc -l

echo -e "/etc中文件有"$[$ETCFILE-1]"個"

VARDIR=ls -la /var | grep ^d | wc -l

echo -e "/var中一級目錄有"$VARDIR"個"

VARFILE=ls -la /var | grep -v ^d|wc -l

echo -e "/var中文件有"$[$VARDILR-1]"個"

USRDIR=ls -la /usr | grep ^d | wc -l

echo -e "/usr中一級目錄有"$USRDIR"個"

USRFILE=ls -la /usr | grep -v ^d|wc -l

echo -e "/usr中文件有"$[$USRFILE-1]"個"

相關文章
相關標籤/搜索