Linux Sysadmin–part3

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

#!/bin/bash

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

if [ $i == “/sbin/nologin” ];then

let x++

else

let y++

fi

done

echo “nologin user number: $x”

echo “login user number: $y”

2、写一个脚本

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

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

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

#!/bin/bash

hostname=$(hostname)

if [[ $hostname == “localhost” ]];then

hostname www.magedu.com

else

echo “$hostname”

fi

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

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

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

#!/bin/bash

if [ -b $1 ];then

fdisk -l $1

else

echo “$1 is not Block device file”

fi

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

脚本能够接受一个参数;

(1) 如果参数1为quit,则显示退出脚本,并执行正常退出;

(2) 如果参数1为yes,则显示继续执行脚本;

(3) 否则,参数1为其它任意值,均执行非正常退出

#!/bin/bash

while true;do

read -p “please input yes|quit|other character string: ” word

case $word in

quit)

exit 0

;;

yes)

continue

;;

*)

echo “Wrong”

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

#description:

#date:

#Author:

mkdir -pv /backups

while true;do

read -p “please input gzip|bzip2|xz character string: ” word

case $word in

gzip)

tar -zcPf /backups/etc-`date +%Y%m%d`.tar.gz /etc

;;

bzip2)

tar -jcPf /backups/etc-`date +%Y%m%d`.tar.bz2 /etc

;;

xz)

tar -JcPf /backups/etc-`date +%Y%m%d`.tar.xz /etc

;;

*)

echo “Wrong”

exit 2

;;

esac

done

###当带-P 参数时,压缩包中的路径使用绝对路径方式,而没有-P 参数会自动删除前缀的根符号,也就是本文开头的提示信息###

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

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

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

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

(4) 其它为无法判断;

#!/bin/bash

if [ -f $1 ];then

echo “$1 is regular file”

elif [ -d $i ];then

echo “$1 is directory file and can use cd command”

elif [ -h $i ];then

echo “$1 is symbolic links file ”

else

echo “cannot tell”

fi

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

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

#!/bin/bash

#description:

#date:

#Author:

hostname=$(hostname)

if [ -z $hostname -o $hostname == “localhost” -o $hostname == “none” ];then

hostname mail.magedu.com

fi

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

(0)
上一篇 2017-09-19 16:17
下一篇 2017-09-20 00:03

相关推荐

  • 文本处理工具初探

    作为一个系统管理员,文本处理功能是经常使用的,熟练地使用各种文本工具有助于提高工作效率,从繁忙的工作中早点解脱。下面就来介绍处理文本的常用命令。 处理文本的命令大致分为:        查看文件内容:cat、less、more       …

    Linux干货 2016-08-07
  • class8 文本处理工具sed和vim编辑器

    一、处理文本的工具sed     Stream EDitor,  行编辑器     sed是linux上一款比较重要的流编辑器。     特点:一次处理一行内容,处理完成后,把缓冲区的内容送往屏幕。这样不断重复,直到文件末尾。 &…

    Linux干货 2016-08-11
  • M22 使用NFS实现web共享发布

    实验目的: 搭建两个LAMP web发布系统搭建WordPress博客网站,并使用NFS作为共享的网络文件系统使这两个web服务器发布的内容一致。 实验工具: webServer1 Centos6.8 172.18.55.6 webServer2 Centos7.3 172.18.55.7 nfsServer Centos7.3 172.18.55.71 w…

    2017-04-26
  • Linux路由实验

    一    实验背景:路由器的功能是将不同网段的主机建立通信,本次试验是在使用linux主机当作路由器,完成主机间通信。如下图所示 二、实验环境:主机A和B为CentOS7.2,主机C和D为CentOS6.8,且C和D上分别都有两块网卡 三、实验步骤     注意:为避免干扰项,需将每台主机…

    Linux干货 2016-09-07
  • redis主从复制(3)— 复制超时

    1、repl-timeout前两篇[1]关于redis主从复制的文章解释了一些因为slave replication buffer或者replication backlog参数的错误配置(或者默认参数值)导致主从复制中断的现象。redis里面的repl-timeout参数值也太小也将会导致复制不成功。top redis headaches for devop…

    Linux干货 2016-04-05
  • 学会在命令行中获取帮助

    在命令行中获取帮助是学习Linux必须get的一项技能,学会之后受益多多。  Linux中的命令有内部命令和外部命令之分,通常使用 type 命令来区分 除此之外还可以使用 enable 命令来查看内部命令 enable命令后的许多option可以对这些内部命令了解更多,比如: 想要知道内部命令有多少个 enable -a |wc -l 禁用某个内…

    2017-07-15