N25第七周RAID LV 概述及示例,swap創建,read 特殊用法以及bash腳本示例

1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳;

mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdc1
tune2fs -o acl /dev/sdc1

[root@localhost ~]# tune2fs -l /dev/sdc1  | head -n 20
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   MYDATA
Last mounted on:          <not available>
Filesystem UUID:          07bffbb5-3c74-4be1-9d1e-9ebe41c82f34
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              655360
Block count:              5242880
Reserved block count:     104857
Free blocks:              5121266
Free inodes:              655349
First block:              0
Block size:               2048
Fragment size:            2048

[root@localhost ~]# mount -o noatime,noauto -L MYDATA  /data/mydata
[root@localhost ~]# mount | tail -1
/dev/sdc1 on /data/mydata type ext4 (rw,noatime,seclabel,data=ordered)

2、創建一個大小為1G的swap分區,并創建好文件系統,并啟用之;

[root@localhost ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=b74adcbd-fe54-48bf-947f-a0396cb0319f
[root@localhost ~]# swapon /dev/sdb2        #
[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1001336      194708      537976        7216      268652      606452
Swap:       3146744           0     3146744
[root@localhost ~]#

3、寫一個腳本 (1)、獲取并列出當前系統上的所有磁盤設備; (2)、顯示每個磁盤設備上每個分區相關的空間使用信息;

[root@localhost tmp]# cat ./disfree.sh
#!/bin/bash
echo " all disks informations:"
fdisk -l | grep "^Disk /dev/[hs]d[abcd]"

echo "each partition informations of each disk"
fdisk -l | grep "^/dev/[hs]d[abcd][1-9]"
[root@localhost tmp]# bash ./disfree.sh
 all disks informations:
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 sectors
each partition informations of each disk
/dev/sdb1            2048    10487807     5242880    5  Extended
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800   251658239   123422720   83  Linux
[root@localhost tmp]#

4、總結RAID的各個級別及其組合方式和性能的不同;

N25第七周RAID LV 概述及示例,swap創建,read 特殊用法以及bash腳本示例N25第七周RAID LV 概述及示例,swap創建,read 特殊用法以及bash腳本示例

5、創建一個大小為10G的RAID1,要求有一個空閑盤,而且CHUNK大小為128k; 首先要建立分區—-》 調整分區類型fd—->然后讓系統重讀分區信息kpartx -a /path/to/device

  建立RAID1:mdadm -C /dev/md0 -a yes -n 2 -l 1 -c 128 -x 1 /dev/sd[b-d]1

  [root@localhost ~]# mdadm -D /dev/md127
    /dev/md127:
            Version : 1.2
      Creation Time : Sun Jan  1 13:27:16 2017
         Raid Level : raid1
         Array Size : 10482112 (10.00 GiB 10.73 GB)
      Used Dev Size : 10482112 (10.00 GiB 10.73 GB)
       Raid Devices : 2
      Total Devices : 3
        Persistence : Superblock is persistent

        Update Time : Mon Jan  2 00:29:12 2017
              State : clean 
     Active Devices : 2
    Working Devices : 3
     Failed Devices : 0
      Spare Devices : 1

           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : fd6aa856:f594ccf5:bcb8b1fa:b666a0ff
         Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

       2       8       49        -      spare   /dev/sdd1

6、創建一個大小為4G的RAID5設備,chunk大小為256k,格式化ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能;

  首先要建立分區----》 調整分區類型fd---->然后讓系統重讀分區信息kpartx -a /path/to/device

  建立RAID1:mdadm -C /dev/md0 -a yes -n 2 -l 5 -c 256  /dev/sd[b-d]1

  格式化ext4文件系統:

    [root@localhost ~]# mke2fs -t ext4 -L 'mddata' /dev/md0
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=mddata
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=64 blocks, Stripe width=128 blocks
    262144 inodes, 1047552 blocks
    52377 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=1073741824
    32 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 (16384 blocks): done
    Writing superblocks and filesystem accounting information: done 


  [root@localhost ~]# mdadm -D /dev/md0
    /dev/md0:
            Version : 1.2
      Creation Time : Sun Jan  1 18:48:28 2017
         Raid Level : raid5
         Array Size : 4190208 (4.00 GiB 4.29 GB)
      Used Dev Size : 2095104 (2046.34 MiB 2145.39 MB)
       Raid Devices : 3
      Total Devices : 3
        Persistence : Superblock is persistent

        Update Time : Sun Jan  1 18:59:36 2017
              State : clean 
     Active Devices : 3
    Working Devices : 3
     Failed Devices : 0
      Spare Devices : 0

             Layout : left-symmetric
         Chunk Size : 256K

               Name : localhost.localdomain:0  (local to host localhost.localdomain)
               UUID : 9a2cade4:b8237d53:1ddcb8ce:b25afdfd
             Events : 18

        Number   Major   Minor   RaidDevice State
           0       8       17        0      active sync   /dev/sdb1
           1       8       33        1      active sync   /dev/sdc1
           3       8       49        2      active sync   /dev/sdd1
    [root@localhost ~]# blkid /dev/md0
    /dev/md0: LABEL="mddata" UUID="19d7ccc2-2c2a-4480-9578-8557356f2058" TYPE="ext4" 
    [root@localhost ~]# cat /etc/fstab

    #
    # /etc/fstab
    # Created by anaconda on Tue Nov  8 20:12:18 2016
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    UUID=e4326591-c5be-42b7-9a3f-080fdef925a7 /                       xfs     defaults        0 0
    UUID=8096d939-e581-466a-b8b4-f77b509922a0 /boot                   xfs     defaults        0 0
    UUID=bf72d293-8677-41c5-8a2f-607f3b4b0e14 swap                    swap    defaults        0 0
    LABEL=mddata                 /backup              ext4    defaults,noatime,acl 0 0

    [root@localhost ~]# mount -a

7、寫一個腳本 (1) 接受一個以上文件路徑作為參數; (2) 顯示每個文件擁有的行數; (3) 總結說明本次共為幾個文件統計了其行數;

[root@localhost ~]# cat /tmp/lines_counter.sh
#!/bin/bash
 echo -n " please input paths of documents:"; read -a doc
 wc -l ${doc[*]}
 echo "total ${#doc[*]} pieces documents are count"

[root@localhost ~]# bash /tmp/lines_counter.sh
 please input paths of documents:/etc/fstab /etc/issue
 15 /etc/fstab
  3 /etc/issue
 18 total
total 2 pieces documents are count

8、寫一個腳本 (1) 傳遞兩個以上字符串當作用戶名; (2) 創建這些用戶;且密碼同用戶名; (3) 總結說明共創建了幾個用戶;

[root@localhost ~]# cat /tmp/useradd
#!/bin/bash
 echo -n " please input username:"; read -a name
 for i in $(seq 0 $[${#name[*]}-1]); do
       useradd ${name[$i]} && echo "${name[$i]}"| passwd ${name[$i]} --stdin 
       done
 echo "total ${#name[*]} users are added"

[root@localhost ~]# bash /tmp/useradd
 please input username:jerr1 jerr2 jerr3 jerr4
Changing password for user jerr1.
passwd: all authentication tokens updated successfully.
Changing password for user jerr2.
passwd: all authentication tokens updated successfully.
Changing password for user jerr3.
passwd: all authentication tokens updated successfully.
Changing password for user jerr4.
passwd: all authentication tokens updated successfully.
total 4 users are added
[root@localhost ~]#

9、寫一個腳本,新建20個用戶,visitor1-visitor20;計算他們的ID之和;

[root@localhost ~]# cat /tmp/idcount
#!/bin/bash
  declare -i sum=0
  for ((i=1;i<=20;i++));do
        useradd visitor$i 
        echo "user visitor$i added complete"
        let  id1=$(id -u visitor$i)
        let sum+=$id1
        done
  echo " total SUM of these id: $sum"


[root@localhost ~]#

10、寫一腳本,分別統計/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#號開頭的行數之和,以及總的空白行數;

[root@localhost ~]# cat /tmp/blank_counter.sh
#!/bin/bash
 echo -n " please input paths of documents:"; read -a doc
 declare -i total_lines=0
 declare -i totla_blank=0
 for i in $(seq 0 $[${#doc[*]}-1]);do
       lines1=$(grep -E "^#.*" ${doc[$i]}| wc -l)
       lines_blank=$(grep -E "^[[:space:]]*$" ${doc[$i]}| wc -l)
    echo " ${doc[$i]} total lines begin with # : $lines1,total blank lines:$lines_blank"
       let  total_lines+=$lines1
       let  total_blank+=$lines_blank
       done
 echo "All documents total lines:$total_lines,total blank: $total_blank"

[root@localhost ~]# bash /tmp/blank_counter.sh
 please input paths of documents:/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab
 /etc/rc.d/rc.sysinit total lines begin with # : 44,total blank lines:99
 /etc/rc.d/init.d/functions total lines begin with # : 40,total blank lines:75
 /etc/fstab total lines begin with # : 7,total blank lines:1
All documents total lines:91,total blank: 175
[root@localhost ~]#

11、寫一個腳本,顯示當前系統上所有默認shell為bash的用戶的用戶名、UID以及此類所有用戶的UID之和;

[root@localhost ~]# cat  /tmp/UID_counter
#!/bin/bash
declare -i sum=0 
  while read line;do
        username=$(echo $line | cut -d: -f1)
        useruid=$(echo $line | cut -d: -f3)
        shell=$(echo $line | cut -d: -f7)
        if [ "$shell" == "/bin/bash" ];then
           echo "bash user: $username,$useruid"
           let sum+=$useruid
       fi
  done < /etc/passwd
echo "total Sum of uid: $sum"

    [root@localhost ~]# bash /tmp/UID_counter | tail
    bash user: visitor12,544
    bash user: visitor13,545
    bash user: visitor14,546
    bash user: visitor15,547
    bash user: visitor16,548
    bash user: visitor17,549
    bash user: visitor18,550
    bash user: visitor19,551
    bash user: visitor20,552
    total Sum of uid: 27375
    [root@localhost ~]#

12、寫一個腳本,顯示當前系統上所有,擁有附加組的用戶的用戶名;并說明共有多少個此類用戶;

    [root@localhost ~]# cat /tmp/usercounter
    #!/bin/bash
    declare -i sum=0
    while read line;do
            username=$(echo $line | cut -d: -f1)
            id $username | grep ',' &> /dev/null
            if [ $? -eq 0 ];then
               echo "$username has secondary group"
               let sum+=1
            fi
    done < /etc/passwd
    echo " total $sum users have secondary group"

    [root@localhost ~]# bash /tmp/usercounter
    qemu has secondary group
    postfix has secondary group
    mix has secondary group
    gesrrt has secondary group
    fedora has secondary group
    jow has secondary group
    magedu has secondary group
     total 7 users have secondary group
    [root@localhost ~]#

13、創建一個由至少兩個物理卷組成的大小為20G的卷組;要求,PE大小為8M;而在卷組中創建一個大小為5G的邏輯卷mylv1,格式化為ext4文件系統,開機自動掛載至/users目錄,支持acl;

[root@localhost ~]# vgcreate -s 8M myvg /dev/sda5 /dev/sda6
  Volume group "myvg" successfully created
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               myvg
  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               19.98 GiB
  PE Size               8.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / 19.98 GiB
  VG UUID               os7kzA-jngy-32xq-D0tE-Ey7S-Xgj9-tmpgnn

root@localhost ~]# lvcreate -L 5G -n mylv1 myvg
  Logical volume "mylv1" created.
[root@localhost ~]# mke2fs -t 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 ~]# blkid /dev/myvg/mylv1
[root@localhost ~]# tune2fs -L mylv1 /dev/myvg/mylv1
tune2fs 1.42.9 (28-Dec-2013)
[root@localhost ~]# blkid /dev/myvg/mylv1
/dev/myvg/mylv1: LABEL="mylv1" UUID="60c02ab3-e5f8-4629-b884-dd1a17f247b0" TYPE="ext4"

[root@localhost ~]# cat /etc/fstab

    #
    # /etc/fstab
    # Created by anaconda on Tue Nov  8 20:12:18 2016
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
UUID=e4326591-c5be-42b7-9a3f-080fdef925a7 /                       xfs     defaults        0 0
UUID=8096d939-e581-466a-b8b4-f77b509922a0 /boot                   xfs     defaults        0 0
UUID=bf72d293-8677-41c5-8a2f-607f3b4b0e14 swap                    swap    defaults        0 0
LABEL=mylv1                              /users                   ext4     defaults,acl   0 0

14、新建用戶magedu;其家目錄為/users/magedu,而后su切換至此用戶,復制多個文件至家目錄;

[root@localhost ~]# useradd -d /users/magedu magedu
[root@localhost magedu]# su magedu
[magedu@localhost ~]$ cp /etc/{fstab,issue} /user/magedu

15、擴展mylv1至9G,確保擴展完成后原有數據完全可用;

[root@localhost ~]# lvextend -L 9G /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)
Filesystem at /dev/myvg/mylv1 is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long.

16、縮減mylv1至7G,確保縮減完成后原有數據完全可用;

[root@localhost ~]# umount /dev/myvg/mylv1
[root@localhost ~]# e2fsck -f /dev/myvg/mylv1
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
mylv1: 26/589824 files (0.0% non-contiguous), 75566/2359296 blocks
root@localhost ~]# resize2fs /dev/myvg/mylv1 2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv1 to 524288 (4k) blocks.
The filesystem on /dev/myvg/mylv1 is now 524288 blocks long.
[root@localhost ~]# lvreduce -L 7G /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創建快照,并通過備份數據;要求保留原有的屬主屬組等信息;"

[root@localhost ~]# lvcreate -s -L 512M -p r -n mylv-snap /dev/myvg/mylv1
 Logical volume "mylv-snap" created.
[root@localhost ~]# mount /dev/myvg/mylv-snap /mnt
mount: /dev/mapper/myvg-mylv--snap is write-protected, mounting read-only
 [root@localhost magedu]# cp -a ./ /users/magedu
cp: overwrite ‘/users/magedu/./.bashrc’? y   
cp: overwrite ‘/users/magedu/./.bash_profile’? 
cp: overwrite ‘/users/magedu/./.bash_history’? 
cp: overwrite ‘/users/magedu/./.bash_logout’? 
cp: overwrite ‘/users/magedu/./fstab’? 
cp: overwrite ‘/users/magedu/./issue’? 
cp: overwrite ‘/users/magedu/./.cache/abrt/lastnotification’? 
[root@localhost magedu]#

原創文章,作者:diglinux,如若轉載,請注明出處:http://www.www58058.com/65814

(0)
diglinuxdiglinux
上一篇 2017-01-04 00:05
下一篇 2017-01-04 17:18

相關推薦

  • LAMP平臺基于NFS實現web服務器負載均衡

    前言 隨著訪問量的逐漸增大,一臺web服務器可能已經無法滿足需求,這就需要增加web服務器的數量了,于是問題就來了:如何保證兩臺服務器數據同步呢?本文將講解如何基于NFS實現web服務器的負載均衡及數據同步。 NFS服務介紹 NFS(Network File System)網絡文件系統,允許一個系統通過網絡共享目錄和文件,通過使用NFS,用戶和程序可以像訪問…

    Linux干貨 2015-04-22
  • vfork 掛掉的一個問題

    在知乎上,有個人問了這樣的一個問題——為什么vfork的子進程里用return,整個程序會掛掉,而且exit()不會?并給出了如下的代碼,下面的代碼一運行就掛掉了,但如果把子進程的return改成exit(0)就沒事。 我受邀后本來不想回答這個問題的,因為這個問題明顯就是RTFM的事,后來,發現這個問題放在那里好長時間,而掛在下面的幾個答案又跑偏得比較嚴重,…

    Linux干貨 2016-08-15
  • M22 xfs文件系統命令總結

    Centos6.0及之前的默認文件系統是ext系列的,而在最新的Centos7上卻使用了xfs作為默認的文件系統。在Centos7中xfs文件系統包括如下命令: xfs_admin:修改xfs文件系統的參數,需要先卸載分區 用法:xfs_admin [ -eflpu ] [ -c 0|1 ] [ -L label ] [ -U uuid ] device x…

    Linux干貨 2017-03-16
  • 馬哥教育網絡班20期+第2周課程練習

    開啟我的博客之行 艱難的學習了一周,現在來寫寫作業回顧一下,這周我都學習了什么? 1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理命令有:cp、mv、rm    復制命令:cp       cp [OPTION]… [-T] SOURCE DEST &nbsp…

    Linux干貨 2016-06-23
  • N25 第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; 3、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行; 4、添加用戶bash, testbash, basher, nol…

    Linux干貨 2017-01-08
  • 馬哥教育網絡班21期-第二周課程作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 cp即copy的簡寫,我們可以用它來復制一些文件即將,源文件的數據流復制到目的文件中。和下面要講的rm,mv,一樣都是一些非?;A的命令。關于這個命令,我們有個小竅門,那就是根據 ls file這個命令是否執行成功來判斷file文件是否存在。 關于cp,我們有一些要點要注意: cp…

    Linux干貨 2016-07-07
欧美性久久久久