马哥教育网络21期+第七周练习博客

马哥教育网络21期+第七周练习博客

1、创建一个10G分区,并格式为ext4文件系统;
首先挂载一个新的硬盘使用fdisk /dev/sdb进入相应的磁盘空间划分一个10G的磁盘空间;
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
使用partx -a /dev/sdb查看是否读取到sdb中的磁盘分区;
[root@wanghongkai ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1

查看内核是否识别到刚刚创建的磁盘空间;
[root@wanghongkai ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0  125829120 sda
   8        1     512000 sda1
   8        2   20971520 sda2
   8        3   10485760 sda3
   8        4          1 sda4
   8        5    2097152 sda5
   8        6   10486742 sda6
   8        7   10490413 sda7
   8       16   20971520 sdb
   8       17   10490413 sdb1
使用mkfs.ext4将需要挂载磁盘文件系统变成ext4文件系统:
[root@wanghongkai ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;fdis  
[root@wanghongkai ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="MYDATA" UUID="058d82fb-8dbe-4284-b588-4b5e2677bf75" TYPE="ext4" 
[root@wanghongkai ~]# tune2fs -o acl,fdis /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Invalid mount option set: acl,fdis



   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
先建立新的文件夹:
    [root@wanghongkai mydata]# pwd
    /data/mydata
    [root@wanghongkai ~]# mount -o noauto,noexec /dev/sdb1 /data/mydata/


2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
[root@wanghongkai ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1060284 KiB
no label, UUID=9757cdbd-1fee-4822-b301-735e3271fbdf
[root@wanghongkai ~]# blkid /dev/sdb2
/dev/sdb2: UUID="9757cdbd-1fee-4822-b301-735e3271fbdf" TYPE="swap" 
[root@wanghongkai ~]# swapon  /dev/sdb2



3、写一个脚本
   (1)、获取并列出当前系统上的所有磁盘设备;
    #!/bin/bash
    #
    i=`fdisk -l | egrep "^Disk /"  | cut -d ',' -f1`
    echo "yong you $i "


   (2)、显示每个磁盘设备上每个分区相关的空间使用信息;
    [root@wanghongkai ~]# cat yingpan.sh 
    #!/bin/bash
    YP1=`fdisk -l | egrep "^Disk /dev/(h|s)d[a-z]" | cut -d'/' -f3 | cut -d':' -f1 | head -n1` 
    YP2=`fdisk -l | egrep "^Disk /dev/(h|s)d[a-z]" | cut -d'/' -f3 | cut -d':' -f1 | tail -n1`
    fdisk -l /dev/$YP1
    fdisk -l /dev/$YP2

4、总结RAID的各个级别及其组合方式和性能的不同;
RAID:独立荣耀磁盘阵列
提高IO能力:磁盘并行读写;
提高耐用性:磁盘冗余来实现
目的是:将多块磁盘组织在一起的工作方式;
    RAID0:读写性能提升,无容错能力,至少需要2块磁盘
    RAID1:读性能提升,写性能降低,有冗余能力,至少需要2块磁盘;
    RAID4:至少需要三块磁盘;单块盘用于校验盘,出现问题性能下降;
    RAID5:读写性能提升,可用空间(N-1)*min(取决于最小空间大小),有冗余能力(1块磁盘);最少要有三块磁盘;
    RAID6:读写性能提升,可用空间(N-2)*min,有冗余能力(2块磁盘);最少要有四块磁盘;
    RAID-10:读、写性能提升,可用空间:N*min(S1,S2,...)/2;有容错能力:每组镜像最多只能坏一块;最少磁盘数:4, 4+;
    JBOD:Just a Bunch Of Disks
        功能:将多块磁盘的空间合并一个大的连续空间使用;
        可用空间:sum(S1,S2,...)



5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
1,fdisk分配磁盘空间
2,partx -a内核读取分区表
mdadm -C /dev/md0 -n 2 -c 128k -l 1 -x 1 -a yes /dev/sdb{1,2,3}



6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
[root@wanghongkai dev]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 -c 256 /dev/sdb{1,2,3,4}



7、写一个脚本
   (1) 接受一个以上文件路径作为参数;
   (2) 显示每个文件拥有的行数;
   (3) 总结说明本次共为几个文件统计了其行数;
    [root@wanghongkai ~]# cat wenben.sh 
    #!/bin/bash
    #
    if [ -z $1 ]; then
        echo "qing shu ru wen jian ming."
    elif [ $# -lt 2 ]; then
        echo "qing shu ru 2 ge wen jian lu jing."
    elif hanshu=`cat $@ | wc -l`; then
        echo "yi gong $# ge wen jian tong ji le yi gong $hanshu."
    fi



8、写一个脚本
   (1) 传递两个以上字符串当作用户名;
   (2) 创建这些用户;且密码同用户名;
   ❤(3) 总结说明共创建了几个用户;
[root@wanghongkai ~]# cat 1.sh 
#!/bin/bash
#
if [ -z $1 ]; then
     echo "qing shu ru you xiao zi fu ."
elif id $1 &> /dev/null; then
    echo "yong hu yijingcunzai"      
elif useradd $1 &> /dev/null && echo "$1" | passwd --stdin $1 &> /dev/null; then
    echo "yong hu yi jing chuang jian."
fi


[root@wanghongkai ~]# cat 1.sh 
#!/bin/bash
#
if [ -z $1 ]; then
     echo "qing shu ru you xiao zi fu ."
elif id $1 &> /dev/null; then
    echo "yong hu yijingcunzai"      
elif useradd $1 &> /dev/null && echo "$1" | passwd --stdin $1 &> /dev/null; then
    echo "yong hu yi jing chuang jian."
    echo "yi gong chuang jian le $# yong hu."
fi

#



9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
[root@wanghongkai ~]# cat yonghu.sh 
#!/bin/bash
#
for i in {1..20}; do 
    if id visitor$i > /dev/null; then
    echo "yong hu visitor$i yi jing cun zai."
    elif useradd visitor$i &> /dev/null && echo "visitor$i" | passwd --stdin visitor$i &> /dev/null; then
    echo "yong hu visitor$i yi jing chuang jian."
    fi
done

A=`cat /etc/passwd | egrep "^visitor" | wc -l`
echo "yi gong chuang jian le $A ge yong hu."
#
for i in {1..20};do
    uid=`grep "\<visitor$i\>" /etc/passwd | cut -d: -f3`
    sumid=$[ $sumid + $uid ]
done
echo "ID sum:$sumid"



10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
    [root@wanghongkai ~]# cat hangshutongji.sh 
    #!/bin/bash
    A=`egrep "^#" /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab | wc -l`
    echo "yi # kaitou de hang shu yi gong $A."
    B=`egrep "^$" /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab | wc -l`
    echo "kong bai hang yi gong $B."
    C=$[$A + $B]
    echo "yi gong you $C hang."


11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
    [root@wanghongkai ~]# cat 2.sh 
    #!/bin/bash
    A=`egrep "\<bash\>$" /etc/passwd | cut -d: -f1,3`
    echo -e "mo ren wei bash jie wei\n$A"
    #
    for i in $(egrep "\<bash\>$" /etc/passwd | cut -d: -f3); do
        let sumuid+=$i
    done
    #
    echo "uid de zong he wei $sumuid ."

12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
[root@wanghongkai bin]# cat group2.sh 
#!/bin/bash
#ban ben 1.0
#time 2016.8.21-13.49
#zuo zhe wostop
#
while read line; do
   if [ -n $[`echo $line | cut -d':' -f4`] ]; then
      echo -e -n "username: `cat $line | cut -d':' -f4 | sort -r | uniq -c | head -n9`\t"
      echo "gid:`echo $line | cut -d: -f3 `"
   fi
done < /etc/group


13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
    1,使用磁盘fdisk中创建磁盘分区,并将磁盘类型更改成8e
    [root@wanghongkai ~]# pvcreate /dev/sdb1 /dev/sdb2
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
[root@wanghongkai ~]# pvdisplay 
  "/dev/sdb1" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               aF1V23-pou8-fzli-xkf1-AiBc-nm1M-FtHsuM

  "/dev/sdb2" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               5.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SgPudz-z0xI-joDL-FJe5-n6MI-cD0y-M73Tu6
[root@wanghongkai ~]# vgcreate -s 8m vgdata /dev/sdb1 /dev/sdb2

[root@wanghongkai ~]# vgdisplay 
  --- Volume group ---
  VG Name               vgdata
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               10.02 GiB
  PE Size               8.00 MiB
  Total PE              1282
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1282 / 10.02 GiB
  VG UUID               78w7zD-vmRI-1PlH-vfuN-mlPW-8kj6-g96FfD

[root@wanghongkai ~]# lvcreate -n mylv -L 5G vgdata 

[root@wanghongkai ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgdata/mylv
  LV Name                mylv
  VG Name                vgdata
  LV UUID                3qlBWR-mRRZ-LnsH-zguC-L6bE-GOHX-veFZOA
  LV Write Access        read/write
  LV Creation host, time wanghongkai, 2016-08-09 07:23:51 -0400
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             640
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
[root@wanghongkai ~]# mkfs.ext4 /dev/vgdata/mylv 
进入到/etc/fstab文件下编辑此文本内容;
proc                    /proc                   proc    defaults        0 0
UUID=ee5ad1f3-5f95-4642-91cb-1e9bf91b81eb       /users  ext4    defaults,acl    0 0     


14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
[root@wanghongkai /]# useradd magedu -d /users/magedu
[magedu@wanghongkai /]$ cp /etc/passwd /etc/fstab /etc/issue /users/magedu/
[root@wanghongkai /]# cd /users/magedu/
[root@wanghongkai magedu]# ls
fstab  issue  passwd

15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
[root@wanghongkai magedu]# lvextend -L +4G /dev/vgdata/mylv 
  Size of logical volume vgdata/mylv changed from 5.00 GiB (640 extents) to 9.00 GiB (1152 extents).
  Logical volume mylv successfully resized.
[root@wanghongkai magedu]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              20G  4.7G   14G  26% /
tmpfs                 499M   80K  499M   1% /dev/shm
/dev/sda1             477M   54M  398M  12% /boot
/dev/sda3             9.8G   26M  9.2G   1% /home
/dev/sr0              4.1G  4.1G     0 100% /media/CentOS_6.4_Final
/dev/mapper/vgdata-mylv
                  8.8G   12M  8.3G   1% /users
[root@wanghongkai magedu]# ll /users/magedu/
total 8
-rw-r--r--. 1 magedu magedu 971 Aug  9 08:10 fstab
-rw-r--r--. 1 magedu magedu  47 Aug  9 08:10 issue


16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
(取消挂载,强制检查、缩减文件系统、缩减lv、重新挂载)
root@wanghongkai ~]# e2fsck -f /dev/vgdata/mylv 
e2fsck 1.41.12 (17-May-2010)
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/vgdata/mylv: 22/589824 files (0.0% non-contiguous), 72682/2359296 blocks
[root@wanghongkai ~]# resize2fs /dev/vgdata/mylv 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vgdata/mylv to 1835008 (4k) blocks.
The filesystem on /dev/vgdata/mylv is now 1835008 blocks long.

[root@wanghongkai ~]# lvreduce -L 7G /dev/vgdata/mylv 
  WARNING: Reducing active logical volume to 7.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vgdata/mylv? [y/n]: y
  Size of logical volume vgdata/mylv changed from 9.00 GiB (1152 extents) to 7.00 GiB (896 extents).
  Logical volume mylv successfully resized.


17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
[root@wanghongkai ~]# lvcreate -s -L 1G -n mylv-snap -p r /dev/vgdata/mylv 
Logical volume "mylv-snap" created.
[root@wanghongkai ~]# mount /dev/vgdata/mylv-snap /mnt
mount: block device /dev/mapper/vgdata-mylv--snap is write-protected, mounting read-only

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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:56

    写的很好,排版也很棒,加油,不要用拼音了