Net25-第9周作业

1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;

#!/bin/bash
for line in `cat /etc/passwd`;do
    if [[ `echo $line | awk -F: '{print $7}'` == '/sbin/nologin' ]];then
        n=$[++n]
    else
        s=$[++s]
    fi
done
echo "shell is /sbin/nologin    $n"
echo "shell is not /sbin/nologin   $s"

2、写一个脚本

  • (1) 获取当前主机的主机名,保存于hostname变量中;
  • (2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
  • (3) 否则,则显示当前主机名;
#!/bin/bash
hostname=`hostname`
if [[ ${hostname} == 'localhost' ]];then
    hostname www.magedu.com
    sed -i  's@\(^HOSTNAME=\).*/\1www.magedu.com/g' /etc/sysconfig/network
    hostname
else
    echo ${hostname}
fi

3、写一个脚本,完成如下功能

  • (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
  • (2) 如果存在,则显示此设备上的所有分区信息;
#!/bin/bash
check_parm(){
    if [ $# -lt 1 ];then
        echo "at least one disk file"
        exit 1
    fi
}

show_patitions(){
    for disk in "$@";do
        if [ -b ${disk} ];then
            fdisk -l ${disk}
        else
            echo "no such ${disk} disk!"
        fi
    done
}

check_parm "$@"
show_patitions "$@"

4、写一个脚本,完成如下功能
脚本能够接受一个参数;

  • (1) 如果参数1为quit,则显示退出脚本,并执行正常退出;
  • (2) 如果参数1为yes,则显示继续执行脚本;
  • (3) 否则,参数1为其它任意值,均执行非正常退出;
while true;do
    read -p "please choose(yes|no|quit):" parm
    case $parm in
    quit)
        echo "bye!"
        exit 
        ;;
    yes)
        continue
        ;;
    *)
        exit 2
    esac
done

5、写一个脚本,完成如下功能
传递一个参数给脚本,此参数为gzip、bzip2或者xz三者之一;

  • (1) 如果参数1的值为gzip,则使用tar和gzip归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.gz;
  • (2) 如果参数1的值为bzip2,则使用tar和bzip2归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.bz2;
  • (3) 如果参数1的值为xz,则使用tar和xz归档压缩/etc目录至/backups目录中,并命名为/backups/etc-20160613.tar.xz;
  • (4) 其它任意值,则显示错误压缩工具,并执行非正常退出;
#!/bin/bash
if [ $# -lt 1 ];then
    echo "at least one parm..."
    exit 1
fi

mkdir -p /backups

case $1 in 
 gzip)
      tar -czf /backups/etc-`date +%F`.tar.gz /etc
      ;;
bzip2)
      tar -cjf /backups/etc-`date +%F`.tar.bz2 /etc
      ;;
xz)
     tar -Jcf /backups/etc-`date +%F`.tar.xz /etc
     ;;
*)
     echo "error compress tools"
     exit 2
     ;;
esac

6、写一个脚本,接受一个路径参数:

  • (1) 如果为普通文件,则说明其可被正常访问;
  • (2) 如果是目录文件,则说明可对其使用cd命令;
  • (3) 如果为符号链接文件,则说明是个访问路径;
  • (4) 其它为无法判断;
#!/bin/bash
if [ $# -lt 1 ];then
    echo "at least one parm..."
    exit 1
fi

if [ -f $1 ];then
    echo "$1 能被正常访问"
elif [ -d $1 ];then
    echo "$1 可以使用cd命令"
elif [ -l $1 ];then
    echo "$1 是个访问路径"
else
    echo "无法判断"
fi

原创文章,作者:N25_随心,如若转载,请注明出处:http://www.178linux.com/70549

(0)
N25_随心N25_随心
上一篇 2017-03-15
下一篇 2017-03-15

相关推荐

  • iptables

    iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 iptables基础 规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“…

    2017-05-02
  • Homework Week-14 iptables及tcpwraper访问控制

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机; iptables -A INPUT -d 192.168.1.101 -p …

    Linux干货 2016-12-05
  • 从Linux小白到大牛——与狼共舞的日子8

    马哥教育网络班21期+第8周课程练习 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥是第2层的设备,它设计用来创建两个或多个LAN分段。其中,每一个分段都是一个独立的冲突域。网桥设计用来产生更大可用宽带。它的目的是过滤LAN的通信流,使得本地的通信流保留在本地,而让那些定向到LAN其他部分(分段)的通信流转发到那里去。每…

    Linux干货 2016-11-14
  • N22-第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1    (复制/etc/skel为/home/tuser1) [root@localho…

    Linux干货 2016-09-05
  • 第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+[^[:space:]]@#&a…

    Linux干货 2017-02-26
  • mysql mariadb 备份恢复、主从

    备份类型分为: 完全备份、增量备份、差异备份 热备、温备、冷备 逻辑备份、物理备份 每种类型区别: 增量备份:根据上一次备份的增量备份或完全备份备份 差异备份:根据上一次备份的完全 温备:备份过程中只支持读备份备份热备:备份过程中支持读写 冷备:停服务备份 逻辑备份:schema和数据存储在一起,巨大的sql语句、单个巨大的备份文件,恢复备份较慢。优点可以还…

    2017-03-01

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-29 17:14

    不错,连脚本函数都已经用的很熟练了。