第九周作业

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

# awk -F: ‘{if($7!=”/sbin/nologin”) {printf “Logined user %s\n”,$1} else {printf “Nolginged user %s\n”,$1}}’ /etc/passwd | sort -t ‘ ‘ -k 1 | cut -d’ ‘ -f1-2 | uniq -c
2. 写一个脚本
   (1) 获取当前主机的主机名,保存于hostname变量中;
   (2) 判断此变量的值是否为localhost,如果是,则将当前主机名修改为www.magedu.com;
   (3) 否则,则显示当前主机名;
#!/bin/bash
#
hostname=$(hostname)
if [[ $(echo “$hostname”) =~ ^localhost ]];then
        echo “$hostname”
        sed -i s@^localhost.*@www.magedu.com@ /etc/hostname
        cat /etc/hostname
else
        echo “$hostname”
fi
3. 写一个脚本,完成如下功能
   (1) 传递一个磁盘设备文件路径给脚本,判断此设备是否存在;
   (2) 如果存在,则显示此设备上的所有分区信息;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least one device name.” && exit 1
if [ $1 == $(fdisk -l | grep -E -o “^Disk /dev/(sd|hd)[a-z]” | cut -d’ ‘ -f2) ];then
        echo -e “The device is existed, and the device disk partition is here:\n$(fdisk -l $1)”
else
        echo “The device is not existed.”
fi
4、写一个脚本,完成如下功能
   脚本能够接受一个参数;
   (1) 如果参数1为quit,则显示退出脚本,并执行正常退出;
   (2) 如果参数1为yes,则显示继续执行脚本;
   (3) 否则,参数1为其它任意值,均执行非正常退出;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least on device name.” && exit 1
if [ $1 == $(fdisk -l | grep -E -o “^Disk /dev/(sd|hd)[a-z]” | cut -d’ ‘ -f2) ];then
        echo -e “The device is existed, and the device disk partition is here:\n$(fdisk -l $1)”
else
        echo “The device is not existed.”
fi
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;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least one name.” && exit 1
case $1 in
gzip)
        tar -zcf /backups/etc-$(date +%Y%m%d).tar.gz /root/testdb &> /dev/null
        echo “Gzip backup has finished.”
        ;;
bzip2)
        tar -jcf /backups/etc-$(date +%Y%m%d).tar.bz2 /root/testdb &> /dev/null
        echo “Bzip2 backup has finished.”
        ;;
xz)
        tar -Jcf /backups/etc-$(date +%Y%m%d).tar.xz /root/testdb &> /dev/null
        echo “Xz backup has finished.”
        ;;
*)
        echo “Error, please input gzip, bzip or xz.”
        exit 2
        ;;
esac
6. 写一个脚本,接受一个路径参数:
   (1) 如果为普通文件,则说明其可被正常访问;
   (2) 如果是目录文件,则说明可对其使用cd命令;
   (3) 如果为符号链接文件,则说明是个访问路径;
   (4) 其它为无法判断;
#!/bin/bash
#
[ $# -lt 1 ] && echo “At least one path name.” && exit 1
if [ -L $1  ];then
        echo “It’s a chain.”
        ls -l $1
elif [ -f $1  ];then
        echo “It’s a file.”
        ls -l $1
elif [ -d $1 ];then
        echo “It’s a directory.”
        cd $1 && pwd
else
        echo “Can’t determinate it.”
fi

7. 写一个脚本,取得当前主机的主机名,判断
   (1) 如果主机名为空或为localhost,或为”(none)”,则将其命名为mail.magedu.com;
   (2) 否则,显示现有的主机名即可;
#!/bin/bash
#
echo “The original hostname is $(hostname).”
if [[ $(hostname) =~ ^localhost ]];then
        sed -i s@^localhost.*@mail.magedu.com@ /etc/hostname
elif [[ $(hostname) =~ ^$ ]];then
        echo “mail.magedu.com” > /etc/hosname
elif [[ $(hostname) =~ “none” ]];then
        sed -i s@.*none.*@mail.magedu.com@ /etc/hostname    
        echo “$hostname”
else
        echo “Hostname isn’t changed. The hostname is $(hostname)”
fi
echo “The current hostname is $(cat /etc/hostname).”

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

(1)
allenallen
上一篇 2017-03-01
下一篇 2017-03-01

相关推荐

  • 菜鸟教你如何磁盘分区与创建文件系统以及挂载(2)

    一、文件系统简介与创建 1、什么是文件系统?    文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。 2、文件系统的作用    从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件…

    Linux干货 2016-08-29
  • CentOS启动流程

    CentOS启动大致流程: POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/et…

    Linux干货 2017-07-12
  • Linux手动编译源代码文件

    一、简介     Linux系统上程序包安装的方式多种多样,一般来说可通过rpm包安装、yum在线安装等方式实现。但有时候为了实现某种功能,而这种功能在通常情况下又不是太常用或是因为其他原因,不能通过yum下载安装或在网上没有找到rpm包,只是找到了程序安装包的源代码的话,这种情况下我们就可以对源代码直接进行编译安装,以便解决这种临时需求…

    Linux干货 2015-09-26
  • tom猫—–(Tomcat详解)

    目录 安装tomcat tomcat目录结构及配置文件构成以及主配置文件server.xml ,tomcat中的组件 实现反代tomcat的方法 nginx+tomcat cluster http(mod_porxy_http)+tomcat cluster http(mod_porxy_ajp)+tomcat cluster http(mod_jk)+to…

    2017-11-16
  • SELinux——有趣的标签

    SELinux ·SELinux: Secure Enhanced linux,工作与Linux内核中 ·DAC:Discretionary Access Control 自由访问控制 ·MAC:Mandatory Access Control  强制访问控制        &n…

    Linux干货 2016-09-18
  • mysql mariadb 备份恢复、主从

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

    2017-03-01

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-15 01:09

    改hostname的那个步骤如果文件不存在呢~~~继续加油!