从小白到小白😂

不知道写啥,用我写的脚本练习题凑凑数

1.显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
echo “My hostname is(我的主机名是): `hostname`”
echo “My ipv4address is(我的IPv4地址是): `ifconfig|head -n2|tail -n1|tr -s ” ” “:”|cut -d: -f3`”
echo “My operating system verision is(我的操作系统版本是): `cat /etc/centos-release`”
echo “My kernel version is(我的内核版本是): `uname -r`”
echo “My the CPU model is(我的CPU型号是): `lscpu|grep “Model name”|tr -s ” ” “:” |cut -d: -f3`”
echo “My memory size is(我的内存大小是): `cat /proc/meminfo|grep -n “MemTotal”|tr -s ” ” |cut -d: -f3`”
echo “My hard drive size is(我的硬盘大小是): `lsblk|grep “\bsda\b”|tr -s ” ” “:”|cut -d: -f5`”

2每日将/etc/目录备份到/root/etcYYYY-mm-dd中
echo -e “\e[1;31mTo start backup(开始备份)!\e[0m”;`read -t 3`
cp -a /etc/ /root/etc/`date +%F`
echo -e “\e[1;31mBack up(备份完毕)!\e[0m”

3显示当前硬盘分区中空间利用率最大的值
echo “当前硬盘分区空间利用率最大的值:`df|grep “sda”|tr -s ” ” “:”|cut -d: -f5|sort -nr|head -n1`”

4显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序
echo “当前链接本主机的IPv4和连接数:`netstat -nt|tr -s ” ” “:”|cut -d: -f6|grep “[0-9]”|uniq -c|sort -nr`”

5计算/etc/passwd文件中的第10个用户和第20用户的ID之和
a=`cat /etc/passwd|head -n10|tail -n1|tr -s ” ” “:”|cut -d: -f3`
b=`cat /etc/passwd|head -n20|tail -n1|tr -s ” ” “:”|cut -d: -f3`
let sun=a+b
echo “第十个用户与第二十个用户的ID之和:$sun”

6传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和
[ $# -ne 2 ] && echo -e “\e[1;31mPlease enter two files!(请输入两个文件!)\e[0m”;exit
a=`grep “^$” $1|wc -l`
b=`grep “^$” $2|wc -l`
let sun=a+b
echo “两个文件所有空白行之和:$sun”

7统计三个目录中共有多少个一级子目录和文件
[ $# -ne 3 ] && echo -e “\e[1;31mPlease enter three directories!(请输入三个目录!)\e[0m”;exit
a=`ls -l $1|grep -n “^d”|wc -l`
b=`ls -l $1|grep -n “^-“|wc -l`
let c=a+b
echo “${1}目录下一共有${c}个子目录以及文件”
d=`ls -l $2|grep -n “^d”|wc -l`
f=`ls -l $2|grep -n “^-“|wc -l`
let g=d+f
echo “${2}目录一一共有${g}个子目录以及文件”
s=`ls -l $3|grep -n “^d”|wc -l`
w=`ls -l $3|grep -n “^-“|wc -l`
let x=w+s
let sun=c+g+x
echo “${3}目录下一共有${x}个子目录以及文件”
echo “${1},${2},${3}目录下一共有${sun}个子目录以及文件”

8接受一个文件路径作为参数;如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出;如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数
[[ $1 -lt 1 ]] && echo -e “\e[1;31mPlease give me a parameter!(请给个参数!)\e[0m” || grep “^$” $1|wc -l

9接受一个主机的IPv4地址做为参数,测试IP格式是否正确,是否可连通
echo {$1}|egrep ‘\<((([0-9]|[1-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|2[0-4][0-9]|25[0-5]))\>’ && (ping -c1 $1 &>/dev/null && echo “The IP address is accessible(该IP地址可访问)” || echo “The IP address is not accessible(该IP地址不可访问)”) ||echo “IP格式不正确”;exit

10检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满
a=df -i|grep “sda”|tr -s ” ” “%”|cut -d% -f5|sort -nr|head -n1
b=df|grep “sda”|tr -s ” ” “%”|cut -d% -f5|sort -nr|head -n1
[ $a -ge 80 ] && echo “The disk node space will be full(磁盘节点空间将满)” || echo “There is plenty of disk space(磁盘节点空间充足)”
[ $b -ge 80 ] && echo “Disk space will be full(磁盘空间将满)” || echo “Ample disk space(磁盘空间充足)”

11判断当前用户对指定参数文件,是否不可读并且不可写
[ -r $1 -a -w $1 ] && echo “The current user can read and write this file(当前用户对此文件可读可写)” || echo “The current user must not read the file(当前用户对此文件不可读不可写)”

12判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件
[ -f $1 ] && [[ $1 == *\.sh ]] && chmod u+x,g+x,o+x $1;echo “Execute permission has been added(执行权限已添加)” || echo “It’s not a script file(不是
脚本文件)”

13禁止和充许普通用户登录系统
[ -e /etc/nologin ] && echo “Regular users are not allowed to log in(已禁止普通用户登录)” || (touch /etc/nologin ;echo “Regular users are not allowed to log in(已禁止普通用户登录)”)
[ -e /etc/nologin ] && (rm -f /etc/nologin ;echo “To allow regular users to log in(以允许普通用户登录)”) || echo “To allow regular users to log in(>以允许普通用户登录)”

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96196

(0)
从那以后从那以后
上一篇 2018-04-15 20:37
下一篇 2018-04-15

相关推荐

  • liunx 创建用户、文件权限及管理

      创建用户     修改和删除组 更改组密码 更改和查看组成员 文件权限:文件属性 文件属性操作 修改文件的属性和属组 文件权限   文件权限 八进制数字: 修改用户权限:   新建文件和目录的默认权限:               &n…

    Linux笔记 2018-04-08
  • 文件查找命令

    文件查找 locate:非实时(并不能反应当前硬盘上是否有该文件,只是从数据库中提取信息)模糊查找,查找是根据全系统文件数据库进行的  –用的不多 # updatedb  手动生成文件数据库 格式:locate KEYWORD -i 不区分大小写的搜索 -n #只列举前#个匹配项目 locate conf:搜索名称或路径中包含“conf”的文件 …

    2018-07-09
  • Web Service基础、httpd-2.2、httpd-2.4

    Web Service 传输层:提供进程地址 port number: tcp:传输控制协议,面向连接的协议,通信前需要建立虚拟链路,结束后拆除链路;端口:0-65535 udp:user datagram protocol,无连接的协议;端口:0-65535   IANA: 0-1023:特权端口,永久分配给固定应用使用 1024-41951:注…

    Linux笔记 2018-04-24
  • yum命令及yum仓库构建

    yum命令 yum [options] [command] [package …] yum命令行选项 –nogpgcheck 禁止进行gpg check -y 自动回答yes -q 静默模式 –disablerepo=repoidglob 临时禁用此处的repo –enablerepo=repoidglob 临时启用此处的repo –noplug…

    Linux笔记 2018-06-10
  • VMware安装CentOS6系统图文详解

    在VMware上安装CentOS6系统,分两个步骤,根据自己的需求创建虚拟机,然后将CentOS6系统光盘挂载到虚拟机中安装系统。 一:创建虚拟机 点击创建虚拟机   这里我们选择系统推荐的典型模式。   我们这里先不选择安装程序光盘映像文件,随后再安装系统,选择下面一项。 操作系统选择Linux  CentOS 64位的。 由于我们计划…

    2018-03-31