SHELL编程练习题(一)

1、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小;

[10:03:37 root@sh-pd-crm-sit-102 data]# cat systeminfo.sh 
#!/bin/bash
# -------------------------------------------------
# FileName:	systeminfo.sh
# Version:	1.0
# CreateDate:	2021-12-20
# Update:	----------
# Author:	Gabriel
# E-mail:	634073389@qq.com
#Description:	显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小;

echo "主机名:`hostname`"
echo "IPV4地址:`ifconfig ens33|egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}'|head -n1`"
echo "操作系统版本:`cat /etc/redhat-release`"
echo "内核版本:`uname -r`"
echo "CPU型号:`lscpu|grep 'Model name'|tr -s ' '|cut -d : -f2`"
echo "内存大小:`free -h|grep 'Mem'|tr -s ' '|cut -d' ' -f2`"
echo "硬盘大小:`lsblk|grep '^sd'|tr -s ' '|cut -d' ' -f4`"
[10:03:50 root@sh-pd-crm-sit-102 data]# systeminfo.sh 
主机名:sh-pd-crm-sit-102
IPV4地址:10.0.0.102
操作系统版本:CentOS Linux release 7.9.2009 (Core)
内核版本:3.10.0-1160.el7.x86_64
CPU型号: Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
内存大小:1.8G
硬盘大小:200G
[10:04:20 root@sh-pd-crm-sit-102 data]# 

2、编写脚本 backup.sh,可实现每日将 /etc/ 目录备份到 /backup/etcYYYY-mm-dd中

[10:10:21 root@sh-pd-crm-sit-102 data]# cat backup.sh 
#!/bin/bash
echo -e "\033[1;32mStarting backup...\033[0m"
sleep 2
cp -a /etc/ /data/etc`date +%F`/
echo -e "\033[1;32mBackup is finished\033[0m"
[10:10:33 root@sh-pd-crm-sit-102 data]# bash backup.sh 
Starting backup...
Backup is finished
[10:10:44 root@sh-pd-crm-sit-102 data]# 


3、编写脚本 disk.sh,显示当前硬盘分区中空间利用率最大的值

[10:18:24 root@sh-pd-crm-sit-102 data]# bash disk.sh
当前硬盘分区中空间利用率最大的值为:15%
[10:18:30 root@sh-pd-crm-sit-102 data]# cat disk.sh 
#!/bin/bash
# ---------------------------------------
# FileName:dish.sh
# Description:显示当前硬盘分区中空间利用率最大的值
# Author:Gabriel
# E-mail:634073389@qq.com
# CreateDate:2021-12-20
# Version:1.0
# --------------------------------------
echo "当前硬盘分区中空间利用率最大的值为:`df|egrep '^/dev'|tr -s ' '|cut -d' ' -f5|sort -rn|head -n1`"
[10:18:37 root@sh-pd-crm-sit-102 data]# 

4、编写脚本 links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序

[10:50:49 root@sh-pd-crm-sit-102 data]# bash links.sh 
4 172.16.7.229
[10:50:51 root@sh-pd-crm-sit-102 data]# cat links.sh
#!/bin/bash

echo `netstat -tan|grep 'ESTAB'|tr -s ' ' ':'|cut -d: -f6|sort|uniq -c|sort -nr`
[10:50:56 root@sh-pd-crm-sit-102 data]# 

上一篇:API-6_1 初识Web API


下一篇:102. 二叉树的层序遍历