1、创建一个10G分区,并格式为ext4文件系统;
[root@localhost ~]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-7832, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-7832, default 7832): +10G Command (m for help): p Disk /dev/sdb: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x9f86e179 Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdb1 [root@localhost ~]# tune2fs -o acl /dev/sdb1
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
[root@localhost ~]# mount -o noexec,noatime /dev/sdb1 /data/mydata
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
[root@localhost ~]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (1307-7832, default 1307): Using default value 1307 Last cylinder, +cylinders or +size{K,M,G} (1307-7832, default 7832): +1G Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/sdb: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x9f86e179 Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 83 Linux /dev/sdb2 1307 1438 1060290 82 Linux swap / Solaris Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@localhost ~]# mkswap /dev/sdb2 [root@localhost ~]# swapon /dev/sdb2
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash # echo "当前系统的磁盘设备有:" fdisk -l | grep "^Disk /dev/sd" echo "每个磁盘的分区以及空间使用信息:" fdisk -l | grep "^/dev/" df -h /dev/sd*
4、总结RAID的各个级别及其组合方式和性能的不同;
RAID 0又称为Stripe或Strping,一般由2两个或以上相同型号和容量的磁盘组成,代表了所有RAID级别中的最高存储性能。
提高存储性能的原理是:RAID事先将磁盘切出等量的区块(chunk),一旦有数据需要写入RAID设备时就会按照区块大小切割好,
依次放在各磁盘中,这样当系统有数据请求就可以被多个磁盘并行执行,这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
RAID 1镜像存储(mirroring),是一种安全的 RAID 模式。数据被分切(方法和RAID 0)后同等地写入两个或多个磁盘中,导致写入速度会比较 慢,但读取时还是可以多个磁盘并行处理,所以速度会比较快。
读取速度可以接近所有磁盘吞吐量的总和,写入速度受限于最慢 的磁盘。 RAID1也是磁盘利用率最低的一个。如果用两个不同大小的磁盘建立RAID1,可以用空间为最小的那个磁盘,较大的磁盘多出来的部分可以作他用,不会浪费。如果其中一个物理磁盘出现故障,可以立即从第二个磁盘上获取数据。即使一个磁盘出现故障,也不会丢失任何数据。
RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换磁盘上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。并且由于存放奇偶校验码的磁盘压力很大,容易成为瓶颈
RAID 5将奇偶校验码分散在各个磁盘上,避免了单块校验盘出现瓶颈。RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。 因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。 RAID 3 与RAID 5相比,重要的区别在于RAID 3每进行一次数据传输,需涉及到所有的阵列盘。而对于RAID 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。 最多允许损坏1块磁盘。
RAID 01和RAID 10这个RAID级别就是针对上面的特点与不足,把RAID 0和RAID 1这两个结合起来了。 所谓的RAID 01就是:1.先让组成 RAID 02.再组成 RAID 1,这就是 RAID 0+1 所谓的RAID 10就是:1.先组成 RAID 12.再组成 RAID 0,这就是RAID 1+0 特点与不足:由于具有 RAID 0 的优点,所以效能得以提升,由于具有 RAID 1 的优点,所以数据得以备份。 但是也由于 RAID 1 的缺点,所以总容量会少一半用来做为备份。
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
[root@localhost ~]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (1439-7832, default 1439): Using default value 1439 Last cylinder, +cylinders or +size{K,M,G} (1439-7832, default 7832): +10G Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): fd Changed system type of partition 3 to fd (Linux raid autodetect) Command (m for help): p Disk /dev/sdb: 64.4 GB, 64424509440 bytes 255 heads, 63 sectors/track, 7832 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x9f86e179 Device Boot Start End Blocks Id System /dev/sdb1 1 1306 10490413+ 83 Linux /dev/sdb2 1307 1438 1060290 82 Linux swap / Solaris /dev/sdb3 1439 2744 10490445 fd Linux raid autodetect Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@localhost ~]# partx -a /dev/sdb BLKPG: Device or resource busy error adding partition 1 BLKPG: Device or resource busy error adding partition 2 [root@localhost ~]# mdadm -C /dev/md0 -n2 -ayes -x1 -c128 -l1 /dev/sdb3 /dev/sda3
6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂
[root@localhost ~]# mdadm -C /dev/md0 -n3 -ayes -x1 -c256 -l5 /dev/sdb3 /dev/sda3 /dev/sdc1 [root@localhost ~]# mke2fs -t ext4 /dev/md0
[root@localhost ~]# mount -o noatime,acl /dev/md0 /backup
7、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash # declare -i i=0 if (( $# < 1 )); then echo "请输入一个或以上字符串" fi for filename in $*; do if [ -f $filename ]; then echo "$filename line num: $( cat $filename | wc -l )" let i=i+1 else echo "file no exsit" fi done echo "已统计文件数量:$i"
8、写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
#!/bin/bash # declare -i i=0 if (( $# < 2 )); then echo "请输入两个或以上字符串" fi for uname in $*; do if id $uname &> /dev/null; then echo "此用户已存在,请重新输入!" else useradd $uname echo "$uname" | passwd --stdin $uname let i=i+1 fi done echo "已创建用户数量:$i"
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash # declare -i i=1 declare -i uid=0 declare -i sum=0 declare -i a=0 while (( $i <= 20 )); do #userdel -r visitor$i useradd visitor$i uid=$(tail -1 /etc/passwd | cut -d: -f3) let sum=sum+$uid let i++ done echo "visitor1-visitor20的ID之和:$sum"
10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
#!/bin/bash # declare -i i=0 for filename in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab}; do echo “$filename以#号开头的行数:$(grep "^#" $filename | wc -l)” echo "$filename的空白行数:$(grep "^$" $filename | wc -l)" done
11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
#!/bin/bash # declare -i sum=0 declare -i num=0 awk -F: '/bash$/{print $1, $3}' /etc/passwd for num in $(awk -F: '/bash$/{print $3}' /etc/passwd); do let sum=sum+$num done echo $sum
12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
[root@localhost ~]# cat test #!/bin/bash # declare -i i=0 for uname in $(cut -d: -f1 /etc/passwd); do group=$(id $uname | cut -d" " -f3 | awk -F, '{print $2}') if [ -n "$group" ]; then echo $uname let i++ fi done echo $i
13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
[root@localhost ~]# pvcreate /dev/sd{b1,c1} [root@localhost ~]# vgcreate -s 20G myvg /dev/sdb1 /dev/sdc1 -s 8M Volume group "myvg" successfully created [root@localhost ~]# lvcreate -L 5G -n mylv1 myvg Logical volume "mylv1" created. [root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1 [root@localhost ~]# echo "UUID="79112d75-4482-4313-b9ac-3d2a930485c2" /users ext4 defaults,acl 0 0" >> /etc/fstab
14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
[root@localhost ~]# useradd magedu -d /users/magedu [root@localhost ~]# su magedu [magedu@localhost root]$ cp /etc/fstab /etc/issue /etc/passwd ~ [magedu@localhost root]$ ll /users/magedu/ 总用量 12 -rw-r--r-- 1 magedu magedu 862 7月 29 01:47 fstab -rw-r--r-- 1 magedu magedu 47 7月 29 01:47 issue -rw-r--r-- 1 magedu magedu 2570 7月 29 01:47 passwd
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 ~]# df -h /dev/myvg/mylv1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/myvg-mylv1 4.8G 10M 4.6G 1% /users [root@localhost ~]# resize2fs /dev/myvg/mylv1 resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/myvg/mylv1 is mounted on /users; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/myvg/mylv1 to 2359296 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now 2359296 blocks long. [root@localhost ~]# df -h /dev/myvg/mylv1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/myvg-mylv1 8.8G 12M 8.3G 1% /users [root@localhost ~]# ll /users/magedu/ 总用量 12 -rw-r--r-- 1 magedu magedu 862 7月 29 02:04 fstab -rw-r--r-- 1 magedu magedu 47 7月 29 02:04 issue -rw-r--r-- 1 magedu magedu 2570 7月 29 02:04 passwd
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
[root@localhost ~]# umount /users [root@localhost ~]# e2fsck -f /dev/myvg/mylv1 e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/myvg/mylv1: 23/589824 files (0.0% non-contiguous), 72683/2359296 blocks [root@localhost ~]# resize2fs /dev/myvg/mylv1 7G resize2fs 1.41.12 (17-May-2010) Resizing the filesystem on /dev/myvg/mylv1 to 1835008 (4k) blocks. The filesystem on /dev/myvg/mylv1 is now 1835008 blocks long. [root@localhost ~]# lv lvchange lvdisplay lvmchange lvmdump lvmsar lvrename lvscan lvconvert lvextend lvmconf lvmetad lvreduce lvresize lvcreate lvm lvmdiskscan lvmsadc lvremove lvs [root@localhost ~]# lvreduce -L 5G /dev/myvg/mylv1 WARNING: Reducing active logical volume to 5.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 5.00 GiB (640 extents). Logical volume mylv1 successfully resized
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
[root@6a magedu]# lvcreate -L 2G -s -p r -n sn_lv /dev/myvg/mylv1
原创文章,作者:mouse015110,如若转载,请注明出处:http://www.178linux.com/25655
评论列表(1条)
写的很好,排版也很棒,加油,所有的数值比较都不对,在回头看看视频吧