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
评论列表(2条)
完成的很好,14题的cp实现的功能是覆盖吧!
阿西吧,少写了个. ,这个比较简单就没有直接练习,直接写出来的。。。。