第九周作业

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 11:41
下一篇 2017-03-01 13:59

相关推荐

  • Linux用户和组管理整理

    本节介绍Linux用户和组相关的配置文件,用户账号管理、查询用户信息以及切换用户的相关命令,将会让我们更了解各配置文件中各个字段的含义,以及各相关命令的使用方法,方便Linux运维人员管理Linux系统中的用户和组。 背景: Linux是个多用户、多任务的系统,考虑到每个人的隐私权、每个人喜好的工作环境以及每个用户所使用的权限等方面的不同,所以设定了“用户”…

    Linux干货 2015-06-15
  • Centos系统 本地自动安装

    §·Centos系统光盘安装的流程 大概的了解下Centos的光盘系统安装流程: 1.插入光盘,出现菜单选择界面;通常情况下我们选择第一项: 第一项 : Install  or upgrade an existing system   2.默认进入图形界面安装并且进行一些必要的环境设置(安装前的配置阶段) 需要我们手工设置的项目…

    Linux干货 2016-09-15
  • 周期性计划任务crond讲解

    crond是Linux或者unix系统的作业调度程序。运用它,在设定的时间段周期性执行某个命令或脚本。下文的例子均在centos 7.3上测试。一、crond组件 如果centos7.3最小化安装,不一定存在crond服务,需要手动安装,安装之后手动启动并设置以后自行开机启动。 主要有cronie、cronie-anacron、crontabs三个程序包。 …

    Linux干货 2017-03-27
  • LAMP部署之NFS共享网络存储

    LAMP部署之NFS共享网络存储 架构图: 说明:     当一个网站的访问量上来之后,一台WebServer服务器无法应付那么高的并发,需要横向扩展Web服务器数量,     当我们访问网页,向Web服务器请求资源时,资源主要分为静态资源和动态资源(程序处理),  &…

    Linux干货 2016-06-20
  • 磁盘管理

      磁盘管理是一项计算机使用时的常规任务,它是以一组磁盘管理应用程序的形式提供给用户的,它们位于"计算机管理"控制台中.它包括查错程序和磁盘碎片整理程序以及磁盘整理程序。   一磁盘分区     1为什么要分区?     •优化I…

    Linux干货 2016-09-02
  • grep正则表达式

    grep:这是一个搜索命令,搜文本并且将文本行显示出来 (1)grep -i 表示搜索的时候忽略大小写 (2)grep –colour 表示搜索关键字带颜色 例如:grep –colour ‘root’ /etc/passwd 显示为在etc的passwd里的 root 选项有颜色 *为了方便我们可以定义个别名,让他搜索的时候默认显示为带颜色 alias…

    Linux干货 2017-07-29

评论列表(1条)

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

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