N26-第七周

1、创建一个10G分区,并格式为ext4文件系统;
   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;

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

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x151eee1f.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): t  
Hex code (type L to list all codes): 83 
[root@localhost ~]# mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=MYDATA OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 5242880 blocks 104857 blocks (2.00%) reserved for the super user First data block=0 Maximum filesystem blocks=273678336 320 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks:  16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,  2048000, 3981312 Allocating group tables: done                             Writing inode tables: done                             Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done   [root@localhost ~]# mount -o noexec,acl,noatime /dev/sdb1 /data/mydata/

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

[root@localhost ~]# mkswap /dev/sdb2 
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=fd915379-a879-409b-8343-5698350022e6
[root@localhost ~]# swapon  /dev/sdb2

3、写一个脚本
   (1)、获取并列出当前系统上的所有磁盘设备;

   (2)、显示每个磁盘设备上每个分区相关的空间使用信息;

#!/bin/bash
#
#
#
ls /dev/[s,h]d[a-z]
fdisk -l `ls /dev/[s,h]d[a-z]`   

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

    RAID0:将多块硬盘组合成一块硬盘使用,读写性能都有提升,磁盘利用率100%,无冗余能力,至少需要2块硬盘

    RAID1:将一份数据存储两份,读能力有提升,写能力下将,磁盘利用率50%,有冗余能力,至少需要两块硬盘

    RAID2、3、4:现在基本没有使用

    RAID5:将数据拆分存储并加入校验码技术,读写能力均有提升,磁盘利用率为 (磁盘数-1)/磁盘数,最多允许坏一块硬盘,至少需要3块硬盘 

    RAID10:将磁盘先做raid1后再做raid0,读写能力均有提升,磁盘利用率为50%,每组最多允许坏一块硬盘,至少需要4块硬盘

    RAID01:将磁盘先做raid0后再做raid1,读写能力均有提升,磁盘利用率为50%,每组最多允许坏一块硬盘,至少需要4块硬盘

    注:RAID 10在整体容错能力和恢复代价上比RAID 01更有优势

5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;

[root@localhost scripts]# mdadm -C /dev/md1 -n 2 -x 1 -c 128 -l 1 /dev/sdb1 /dev/sdb2 /dev/sdb3
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=10485760K  mtime=Sat Mar  4 13:38:10 2017
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array? 
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost scripts]# mdadm -D /dev/md1 
/dev/md1:
        Version : 1.2
  Creation Time : Sat Mar  4 16:27:42 2017
     Raid Level : raid1
     Array Size : 5238784 (5.00 GiB 5.36 GB)
  Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
   Raid Devices : 2
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Sat Mar  4 16:27:58 2017
          State : clean, resyncing 
 Active Devices : 2
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 1

  Resync Status : 64% complete

           Name : localhost.localdomain:1  (local to host localhost.localdomain)
           UUID : 345d614a:1c8921d7:4a62d97c:6d9555cc
         Events : 10

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2

       2       8       19        -      spare   /dev/sdb3

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

root@localhost scripts]# mdadm -C /dev/md5 -n 4 -c 256 -l 5 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
mdadm: /dev/sdb1 appears to contain an ext2fs file system
       size=10485760K  mtime=Sat Mar  4 13:38:10 2017
mdadm: /dev/sdb1 appears to be part of a raid array:
       level=raid1 devices=2 ctime=Sat Mar  4 16:27:42 2017
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost scripts]# mdadm -D /dev/md5 
/dev/md5:
        Version : 1.2
  Creation Time : Sat Mar  4 16:33:41 2017
     Raid Level : raid5
     Array Size : 3142656 (3.00 GiB 3.22 GB)
  Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Sat Mar  4 16:33:47 2017
          State : clean 
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : left-symmetric
     Chunk Size : 256K

           Name : localhost.localdomain:5  (local to host localhost.localdomain)
           UUID : afc5cf68:aa1f4f34:f3047c47:d0b6f61c
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       19        2      active sync   /dev/sdb3
       4       8       20        3      active sync   /dev/sdb4
[root@localhost scripts]# echo "/dev/md5 /backup ext4 defaults,acl,noatime,nodiratime 0 0" >> /etc/fstab [root@localhost scripts]# mount -a

7、写一个脚本
   (1) 接受一个以上文件路径作为参数;
   (2) 显示每个文件拥有的行数;

   (3) 总结说明本次共为几个文件统计了其行数;

#!/bin/bash
#
#
#
SUM=$#
[[ $# -eq 0 ]] && echo "use $0 /path/tofilename ...."&& exit
while true;do
        NUM=`wc -l $1`
        echo $NUM 
        shift
        if [[ $# = 0 ]];then
        break
        fi
 done
 echo "file number is $SUM"                             

8、写一个脚本
   (1) 传递两个以上字符串当作用户名;
   (2) 创建这些用户;且密码同用户名;

   (3) 总结说明共创建了几个用户;

#!/bin/bash
#
#
#
SUM=$#
[[ $# -le 2 ]] && echo "use $0 /path/tofilename ...."&& exit

while true;do
  id $1 &>/dev/null && echo "$1 is exits"&& break
        useradd $1 &>/dev/null
        echo "$1"| passwd --stdin $1 &>/dev/null
        echo "create  user $1 successful "
        shift
        if [[ $# = 0 ]];then
        break
        fi
 done
 echo "create user number is $SUM"

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

#!/bin/bash
#
#
#
SUM=0
for i in {1..20};do
        useradd vistor$i
        NUM=`id -u vistor$i`
        let SUM+=$NUM
done
echo $SUM                        

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

#!/bin/bash
#
#
#
NUM1=`grep "^[[:space:]]*$" /etc/fstab /etc/init.d/functions /etc/rc.d/rc.sysinit | wc -l`
NUM2=`grep "^#" /etc/fstab /etc/init.d/functions /etc/rc.d/rc.sysinit | wc -l`
echo "Blank line number is $NUM1"
echo "At the beginning of line No. # number is $NUM2"                                                                           

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

#!/bin/bash
#
#
#
SUM=0
grep "\<bash\>" /etc/passwd | awk -F: '{ OFS=" ";;print $1,$3 }'
for i in $(grep "\<bash\>" /etc/passwd | awk -F: '{print $3 }');do
        let SUM+=$i
done
echo $SUM
                                

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

#!/bin/bash
#
#
#
grep "[^:]$" /etc/group|cut -d: -f 4

grep "[^:]$" /etc/group|cut -d: -f 4|wc -l

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

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb68ed7fc.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-62914559, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-62914559, default 62914559): +10G
Partition 1 of type Linux and of size 10 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p):  
Using default response p
Partition number (2-4, default 2): 
First sector (20973568-62914559, default 20973568): 
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-62914559, default 62914559): +10G
Partition 2 of type Linux and of size 10 GiB is set

Command (m for help): t
Partition number (1,2, default 2): 
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): t
Partition number (1,2, default 2): 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w
The partition table has been altered!
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
[root@localhost ~]# vgcreate myvg -s 8M /dev/sdb1 /dev/sdb2
  Volume group "myvg" successfully created
[root@localhost ~]# lvcreate -n mylv1 -L  5G  myvg   Logical volume "mylv1" created.
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1  mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks:  32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done                             Writing inode tables: done                             Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done 
[root@localhost ~]# echo "/dev/myvg/mylv1 /users ext4 defaults,acl 0 0" >> /etc/fstab 
[root@localhost ~]# mount -a

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

useradd -d /users/magedu magedu
su - magedu
cp /etc/issue /etc/fstab .

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

[root@localhost ~]# lvextend -L +4G /dev/myvg/mylv1 
  Size of logical volume myvg/mylv1 changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents).
  Logical volume mylv1 successfully resized.
[root@localhost ~]# resize2fs /dev/myvg/mylv1 
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv1 to 2359296 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long.

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

[root@localhost ~]# umount /users
[root@localhost ~]# fsck -t ext4 -f /dev/myvg/mylv1 
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/myvg-mylv1: 11/589824 files (0.0% non-contiguous), 75551/2359296 blocks
[root@localhost ~]# resize2fs -f /dev/myvg/mylv1 7G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv1 to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 1835008 blocks long.
[root@localhost ~]# lvreduce -L -2G /dev/myvg/mylv1 
  WARNING: Reducing active logical volume to 7.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv1? [y/n]: y
  Size of logical volume myvg/mylv1 changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents).
  Logical volume mylv1 successfully resized.

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

# lvcreate -L 500M -p r -s mylv1-snapshot -n /dev/myvg1/mylv1                    
# mkidr /mnt/mylv_ss ; mount /dev/myvg1/mylv1-snapshot /mnt/mylv_ss
# cp -a /mnt/mylv_ss/*  /tmp                    
# umount /mnt/mylv_ss 
# lvremove /dev/myvg1/mylv1-snapshot

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

(0)
上一篇 2017-03-04 20:41
下一篇 2017-03-05 09:57

相关推荐

  • inotify介绍及rsync + inotify 实时同步备份

    1、前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动备份,又可以结合ssh实现远程数据备份的安全,种种特性使他看起来相当优秀。但如果需备份数据十分庞大时,它的不足之处就显现出来了,比如每次执…

    Linux干货 2016-06-15
  • Linux之磁盘管理

    Linux之磁盘管理       linux系统中, 一切都是文件, 而这些文件都是存储在磁盘中, 因此对于磁盘的管理是非常重要的, Linux磁盘管理的好坏, 直接关系到整个系统的性能问题, 本文主要介绍了磁盘结构, 分区类型, 管理分区, 管理文件系统, 挂载设备, 管理虚拟内存这几大项的内容.    &…

    Linux干货 2016-08-29
  • 远程使用sshd连接不上服务器解决方案

    前些天在学习linux的时候CRT怎么也连接不上我的linux服务器了,整了半天,请教了一些高人才把这个问题解决,现在整理一下我的解决方案。 大家可以看到配置都正确但就是连不上。 通过查看得出原来是22端口拒绝~! 那么我就去查看22端口有没有开启 大家可以看到我的22端口也就是sshd服务并没有开启。 我去开启我的sshd服务器,但是又出现了问题~! 随后…

    Linux干货 2016-03-28
  • lvs的基本概念及基础配置

    一、知识整理 1、Session:在计算机中,尤其是在网络应用中,称为“会话控制、时域”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将…

    Linux干货 2016-11-11
  • 马哥网络教育班21期-第一周课程练习

      一、计算机的组成及其功能 1.1计算机的组成      1946年美籍匈牙利科学家冯·诺依曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分,分别为运算器、控制器、存储器、输入设备和输出设备。 1.2计算机的组成 控制器(Contro…

    Linux干货 2016-07-12
  • 关于ip_conntrack跟踪连接满导致网络丢包问题的分析

    http://ixdba.blog.51cto.com/2895551/1737642

    Linux干货 2016-06-03

评论列表(2条)

  • 马哥教育
    马哥教育 2017-03-07 11:59

    完成的很好,14题的cp实现的功能是覆盖吧!

  • 胡安慧
    胡安慧 2017-03-07 15:06

    阿西吧,少写了个. ,这个比较简单就没有直接练习,直接写出来的。。。。