N–25期 第九周作业

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

#!/bin/bash
declare -i sumlogin=0
declare -i sumnologin=0

for i in `cut /etc/passwd -d: -f7`;do

if [ $i == "/sbin/nologin" ]; then
    let sumnologin++

else 
    let sumlogin++
fi
done 
echo -e "total $sumnologin nologin users\ntotal $sumlogin login users"

2、写一个脚本

(1) 获取当前主机的主机名,保存于hostname变量中;

(2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为 www.magedu.com;

(3) 否则,则显示当前主机名;

#!/bin/bash
if [ $(hostname) == 'localhost' -o $(hostname) == 'localhost.localdomain' ];then
    echo "主机名为localhost将修改为www.magedu.com"
    hostnamectl set-hostname www.magedu.com
    if [ $? -eq 0  ];then
        echo "修改成功"
        hostnamectl
    fi  
else
    hostname
fi

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

(1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;

(2) 如果存在,则显示此设备上的所有分区信息;

#!/bin/bash
test -b $1 && `echo fdisk -l $1` || echo "not exist"

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

脚本能够接受一个参数; (1) 如果参数1为quit,则显示退出脚本,并执行正常退出; (2) 如果参数1为yes,则显示继续执行脚本; (3) 否则,参数1为其它任意值,均执行非正常退出;

#!/bin/bash

read -p "Do you want to continue? [yes or quit]" choice
case $choice in 
quit)
echo "quit"
exit 0
;;
yes)
echo "continue..."
exit 0
;;
*)
echo "please enter again"
exit 2
;;
esac

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
#
time=$(date +%Y%m%d)
read -p "Please choose one compress Tool[gzip/bzip2/xz]" arg
case $arg in
gzip)
tar -zcf /backups/etc-$time.tar.gz /etc 
echo -e  "compress etc-$time.tar.gz ok"
;;
bzip2)
tar -jcf /backups/etc-$time.tar.bz2 /etc
echo -e  "compress etc-$time.tar.bz2 ok"
;;
xz)
tar -Jcf /backups/etc-$time.tar.xz /etc
echo -e  "compress etc-$time.tar.xz ok"
;;
*)
echo "error"
;;
esac

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

(1) 如果为普通文件,则说明其可被正常访问;

(2) 如果是目录文件,则说明可对其使用cd命令;

(3) 如果为符号链接文件,则说明是个访问路径;

(4) 其它为无法判断;

#!/bin/bash
#
if [ -z $1 ];then
echo "请输入路径名"
exit 1
fi


if [ -f $1 ];then
echo "普通文件,可被正常访问"
elif [ -d $1 ];then
echo "目录文件,可对其使用cd命令"
elif [ -h $1 ];then
echo "链接文件,是个访问路径"
else
echo "无法判断"
fi

7、写一个脚本,取得当前主机的主机名,判断

(1) 如果主机名为空或为localhost,或为""(none)"",则将其命名为mail.magedu.com;

(2) 否则,显示现有的主机名即可;"

#!/bin/bash
if [ -z $(hostname) -o $(hostname) == "localhost" ];then
    hostnamectl set-hostname mail.magedu.com
else
    hostname
fi

 

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

(0)
victorli88victorli88
上一篇 2017-03-07 11:08
下一篇 2017-03-07 15:18

相关推荐

  • 邮件原理你真的造吗

    一、前言     虽然现在QQ、微信等即时聊天工具原来越盛行,但是在企业与企业之间大部分还是会使用邮件系统进行信息交换。所以作为运维人员,更需要了解这个技术的原理。下面会慢慢介绍邮件的组件功能,将其组成部分。以及邮件的工作原理。     小贴士:邮件系统是一个比较复杂的系统,过程…

    Linux干货 2015-08-17
  • sed编辑器使用

     简述       sed编辑器被称作流编辑器,和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim), 你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先 提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令…

    2017-06-19
  • Linux基础学习总结(一)

    Linux 安装运行步骤: 进入\\172.16.0.1\python10          用户名:python10          密码:python10magedu 进入目录   ftp://172.16.0.1/pub/ISOs/ 下载linux系统镜像文件           CentOS-6.9-x86_64-bin-DVD1.iso     …

    Linux干货 2018-03-16
  • linux上的LVM简明教程

    LVM是一个多才多艺的硬盘系统工具。在Linux上非常的好用,传统分区使用固定大小分区,重新调整大小十分麻烦。但是,LVM可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到LVM,以直接扩展已经存在的逻辑卷。 首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV…

    Linux干货 2017-05-02
  • Linux下chomd修改文件或目录权限

    文件或目录权限分为三个字段 以/tmp为例ll后可看到权限为:     drwxrwxrwt 第一d为文件类型 Linux下的文件类型     -:普通文件     d:目录文件     b:块设备  &nbs…

    Linux干货 2016-02-28
  • 网络通信安全基础OpenSSL

    OpenSSL: NIST: 保密性: 数据保密性 隐私性 完整性: 数据完整性 系统完整性 可用性  安全攻击: 被动攻击:窃听 主动攻击:伪装、重放、消息篡改、拒绝服  安全机制: 加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证 安全服务: 认证 访问控制 数据保密性 连接保密性 无连接保密性 选择域保密性 …

    Linux干货 2015-09-06

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-10 15:58

    脚本中的变量尽量使用“{}”,减少不并要的错误,加油~~~~