第七周作业:bash脚本,逻辑卷管理,磁盘管理,raid管理

第七周作业

1、创建一个10G分区,并格式为ext4文件系统;

~]#fdisk -l   #查看已有分区
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     8194047     4096000   83  Linux
/dev/sda2         8194048    24578047     8192000   82  Linux swap / Solaris

~]# fdisk /dev/sda  #由于空间不够大,故只创建了2G
~]# cat /proc/partitions     #查看分区情况,可以看到还没有
major minor  #blocks  name

   8        0   20971520 sda
   8        1    4096000 sda1
   8        2    8192000 sda2
  11        0    7587840 sr0

~]# partx -a /dev/sda    #多输入两遍,重新加载磁盘分区
~]# cat /proc/partitions    #有了,sda5就是我们创建的一个新分区
major minor  #blocks  name
   8        0   20971520 sda
   8        1    4096000 sda1
   8        2    8192000 sda2
   8        3          1 sda3
   8        5    2096128 sda5
  11        0    7587840 sr0

(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;

~]#  mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sda5

(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

~]# mkdir /data/mydata -pv
~]# mount -o noexec,noatime,acl /dev/sda5 /data/mydata

2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;

fdisk /dev/sda   #创建一个swap分区
mkswap   /dev/sda*  #创建swap文件系统
swapon    /dev/sda*   #启用swap
swapon -s     查看

3、写一个脚本

(1)、获取并列出当前系统上的所有磁盘设备; (2)、显示每个磁盘设备上每个分区相关的空间使用信息;

#!/bin/bash
#
        fdisk -l
        echo "please write the one you want to look "
        if [ -e "$1" ];then
                df -h $1
        else
                echo "$1 is not exit"
                exit 2
        fi

4、总结RAID的各个级别及其组合方式和性能的不同;

博客总结过。第五题,第六题没有练过,不会。马哥说理解每种raid的就组成和性能,实际生产中用不到配软raid,我就没配过。

7、写一个脚本

(1) 接受一个以上文件路径作为参数; (2) 显示每个文件拥有的行数;(3) 总结说明本次共为几个文件统计了其行数;

#!/bin/bash
#
        if [ $# -lt 1 ];then
                echo "at least one file path "
                exit 2
        fi

        for i in $*;do
                line=$(wc -l $i)
                echo "the line of file $i  is $line"
        done
        echo   "the total is  $# "

8、写一个脚本:

(1) 传递两个以上字符串当作用户名; (2) 创建这些用户;且密码同用户名;(3) 总结说明共创建了几个用户;

#!/bin/bash
#
        if [ $# -lt 2 ];then
                echo "at least two string "
                exit 2
        fi

        if grep "^$#\>" /etc/passwd &> /dev/null ;then
                echo "User $# exits"
        else
                useradd $#
                echo $# | passwd --stdin $# &> /dev/null
                echo "add finished"
        fi
        echo "the total is $#"

9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;

#!/bin/bash
#
sum=0
for i in {1..20};do
        if   id visitor$i &> /dev/nulil;then
                echo "visitor$i已存在" && exit 0
        else
                useradd visitor$i && echo "visitor$i创建成功"

        fi
done
for i in {1..20};do
    id=$(grep -E "visitor$i" /etc/passwd | cut -d: -f3)
    let sum+=$id
done
echo $sum

10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;

以#开头的行数之和:grep -E “^#"   /etc/rc.d/init.d/functions |wc -l
总空白行:cat /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab  |egrep "^$"  |wc -l

11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;

#!/bin/bash
#
awk -F: '$NF=="/bin/bash"{print $1,$3}' /etc/passwd
        for i in $(awk -F: '$NF=="/bin/bash"{print $3}' /etc/passwd);do
                let sum+=$i
        done
        echo $sum

12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;

#!/bin/bash
#
cat /etc/group | cut -d: -f1,4 | grep -E ".*:[^[:space:]]"
num=$(cat /etc/group | cut -d: -f1,4 | grep -E ".*:[^[:space:]]" | wc -l)
echo "$num"

13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;

创建两个8e分区
/dev/sda6        29366272    50337791    10485760   8e  Linux LVM
/dev/sda7        50339840    71311359    10485760   8e  Linux LVM

#pvcreate   /dev/sda6  /dev/sda7
#vgcreate -s 8m myvg   /dev/sda6  /dev/sda7
  Volume group "myvg" successfully created
#lvcreate -L 5G -n mylv1 myvg
  Logical volume "mylv1" created.
#mke2fs -t ext4 /dev/mapper/myvg-mylv1 
#echo  "/dev/mapper/myvg-mylv1 /users ext4 acl 0 0" >> /etc/fstab

14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;

root@bogon[18:26:57]:~
$ useradd -d /users/magedu magedu
root@bogon[18:29:26]:~
$ su - magedu
magedu@localhost[18:29:36]:~
$ cp -r /etc/httpd/conf/*  ~
magedu@localhost[18:32:54]:~
$ ll ~
总用量 28
-rw-r--r--. 1 magedu magedu 11772 12月 12 18:32 httpd.conf
-rw-r--r--. 1 magedu magedu 13077 12月 12 18:32 magic

15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;

lvextend -L +4G /dev/mapper/myvg-mylv1 
resize2fs /dev/mapper/myvg-mylv1

16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;

# umount /dev/myvg/mylv1
# e2fsck -f /dev/myvg/mylv1
# resize2fs /dev/myvg/mylv1 7G
# lvreduce -L 7G /dev/myvg/mylv1
# mount /dev/myvg/mylv1 /users/

17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;"

$ lvcreate -s -L 512M -n mylv-snap -p r /dev/myvg/mylv1
  Logical volume "mylv-snap" created.

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

(0)
上一篇 2016-12-12 10:50
下一篇 2016-12-12 12:02

相关推荐

  • RAID

    RAID:       Redunant ARRAYS OF Inexpensive Disks       廉价磁盘阵列 Independent        Berkeley: A case for Redundent Arrays of Inexpens…

    Linux干货 2016-12-23
  • linux 文本处理工具 grep cut sort等

    linux day 7 间歇性回忆 自动属于这个组 是  SGID 的功能 chmod g+s /data/testdir setfacl —m g:g2:rwx /data/testdir setfacl -m b:g:g2:rwx /data/testdir setfacl -m d:g:g3:r testdir chmod o= testdi…

    Linux干货 2016-08-08
  • N25-第一周作业

    第一周博客作业 1.描述计算机的组成及其功能 2.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 3.描述Linux哲学思想,并按照自己的理解对其进行解释性描述。 4.说明Linux系统上命令的使用格式:详细介绍,ifconfg,echo,tty,startx,export pwd,history,shutdown,poweroff,rebo…

    Linux干货 2016-12-02
  • 文本三剑客之sed

    文本处理三剑客之sed sed 本身也是一个管线命令,是一个(流|行)编辑器! 而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。工作模式是从源文件中一次读取一行,存储到sed自己的内存中进行处理,如果模式被匹配到就可以编辑并且输出到标准输出,如果没有被匹配到则直接输出到标准输出。     sed …

    Linux干货 2016-08-10
  • N28-第四周:正则表达式练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-24
  • 集中练习8-bash脚本及系统启动

    集中练习8-bash脚本及系统启动

    2017-12-06

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-14 14:09

    博客完成的非常好,理论与命令的结合,加油!