1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdd [root@localhost ~]# tune2fs -o acl /dev/sdd[root@localhost ~]# mkdir -pv /data/mydata [root@localhost ~]# mount -o acl,noexec,noatime /dev/sdd /data/mydata/
2、 创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
#fdisk /dev/sdb (n;p;2;+1G;t;2;82;w) #partx -a /dev/sdb#mkswap /dev/sdb2 #swapon /dev/sdb2 # free -m
3、 写一个脚本 (1)、获取并列出当前系统上的所有磁盘设备; (2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash # fdisk -l | grep ^"Disk /dev/[sh]d[a-z]" | cut -d"/" -f 3 | cut -d: -f1 for i in $(fdisk -l | grep ^"/dev/[sh]d[a-z][0-9]\?" | cut -d' ' -f1) ;do df -h $i | grep "/.*$" done
4、 总结RAID的各个级别及其组合方式和性能的不同;
RAID Level | 名称 | 磁盘数 | 可用空间 | 可靠性 | I/O能力 |
RAIDO | 条带卷 | >=2 | 100% | 1/N | 读写能力提升 |
RAID1 | 镜像卷 | >=2 | 50% | 可允许一块磁盘故障 | 无 |
RAID4 | 固定校验盘 | >=3 | N-1 | 可允许一块磁盘故障 | 读写能力提升 |
RAID5 | 分布式校验盘 | >=3 | N-1 | 可允许一块磁盘故障 | 读写能力提升 |
RAID6 | 校验码存两份 | >=4 | N-2 | 可允同时故障两块盘 | 读写能力提升 |
RAID01 | raid0+raid1 | >=4 | 50% | 可允许一块磁盘故障 | 读写能力提升 |
RAID10 | raid1+raid0 | >=4 | 50% | 同组raid1可故障一块 | 读写能力提升 |
5、 创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;[root@localhost ~]# mdadm -C /dev/md0 -c 128 -x1 -n2 -l1 -a yes /dev/sd[b-d]6、 创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
[root@localhost ~]# mdadm -C /dev/md0 -n3 -l5 -a yes -c 256 /dev/sd[b-d] [root@localhost ~]# mkfs.ext4 /dev/md0 [root@localhost ~]# vim /etc/fstab 新增一行 UUID=f9ae0ca3-1c85-4715-a6c5-68da5bdaa838 /backup ext4 noatime,acl 0 0
7、 写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数; (3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash # if [ $# -eq 0 ];then echo "please give a file name!" exit 3 fi for i in $@;do echo "$i have $(wc -l $i | cut -d" " -f1) lines." done echo "The total of $# file their statistics the number of rows"
8、 写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名; (3) 总结说明共创建了几个用户;
#!/bin/bash#if [ $# -lt 2 ];then echo "please give two user name!" exit 3 fi for i in $@;do useradd $i && echo "$i" | passwd --stdin $i &> /dev/null let usersum++doneecho "创建了$#个用户"
9、 写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash # declare -i sum=0 for ((i=1;i<=20;i++));do useradd visitor$i echo "useradd visitor$i success!" sum+=$(id -u visitor$i)doneecho "all user uid sum: $sum"
10、 写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
#!/bin/bash # declare -i sum1=0; declare -i sum2=0; for i in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab}; do sum1+=$( grep -c '^#' $i ) sum2+=$( grep -c '^[[:space:]]*$' $i ) done echo "#start line number: $sum1"echo "space line number: $sum2"~
11、 写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
#!/bin/bash # cat /etc/passwd | grep "/bin/bash$" | cut -d: -f1,3 uuid=$(cat /etc/passwd | grep "/bin/bash$" | cut -d: -f3) declare -i sum=0 for i in $uuid;do let sum+=$idoneecho "uuid sum=$sum"
12、 写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
#!/bin/bash # declare -i user=0 name=`cut -d: -f1 /etc/passwd`for i in $user;do uid=`echo $i | cut -d: -f3` user=`echo $i |cut -d: -f1` echo "$user UID is $uid" let sum+=$uiddoneecho "有$sum个此类用户"
13、 创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
1、添加磁盘并修改磁盘类型为8e linux LVM [root@localhost ~]# fdisk -l | grep /dev/sd Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 2715647 1049600 82 Linux swap / Solaris /dev/sda3 2715648 41943039 19613696 83 Linux Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors /dev/sdb1 2048 20971519 10484736 8e Linux LVM Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors /dev/sdc1 2048 20971519 10484736 8e Linux LVM Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors /dev/sdd1 2048 20971519 10484736 8e Linux LVM 2、创建PV pvcreate /dev/sd{b,c,d}1 [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 myvg lvm2 a-- 9.99g 9.99g /dev/sdc1 myvg lvm2 a-- 9.99g 9.99g /dev/sdd1 myvg lvm2 a-- 9.99g 9.99g 3、创建VG并设定PE为8M大小 vgcreate myvg -s 8 /dev/sd{b,c,d}1 [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg 3 0 0 wz--n- 29.98g 29.98g 4、创建LV 名字为mylv1 [root@localhost ~]# lvcreate -n mylv1 -L 5G myvg 5、格式化 [root@localhost ~]# mkfs.ext4 /dev/myvg/mylv1 6、挂载 mount /dev/myvg/mylv1 /users vim /etc/fstab /dev/myvg/mylv1 /users ext4 acl 0 0
14、 新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
#useradd magedu -d /users/magedu#su magedu #cp -rf /etc/skel/.* /users/magedu
15、 扩展mylv1至9G,确保扩展完成后原有数据完全可用;
[root@localhost ~]# lvextend -L +9G /dev/myvg/mylv1 [root@localhost ~]# resize2fs /dev/myvg/mylv1 [root@localhost ~]# df -lh /dev/myvg/mylv1 Filesystem Size Used Avail Use% Mounted on /dev/mapper/myvg-mylv1 14G 56M 13G 1% /users [root@localhost ~]# ls /users/magedu/ abrt cups gshadow machine-id prelink.conf.d shells adjtime cupshelpers gshadow- magic printcap smartmontools ......
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
[root@llww3317 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 3.8G 13G 23% / tmpfs 499M 80K 498M 1% /dev/shm /dev/sda1 190M 34M 147M 19% /boot [root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata [root@llww3317 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 3.8G 13G 23% / tmpfs 499M 80K 498M 1% /dev/shm /dev/sda1 190M 34M 147M 19% /boot /dev/mapper/myvg-mylv1 8.8G 12M 8.3G 1% /data/mydata [root@llww3317 ~]# cp /etc/issue /data/mydata [root@llww3317 ~]# umount /dev/myvg/mylv1 [root@llww3317 ~]# e2fsck -f /dev/myvg/mylv1 e2fsck 1.41.12 (17-May-2010) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/myvg/mylv1: 12/589824 files (0.0% non-contiguous), 72672/2359296 blocks [root@llww3317 ~]# 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@llww3317 ~]# 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 myvg/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. [root@llww3317 ~]# mount /dev/myvg/mylv1 /data/mydata [root@llww3317 ~]# more /data/mydata/issue CentOS release 6.8 (Final) Kernel \r on an \m
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1
lvcreate -L 2G -s -n lv1back/dev/myvg/mylv1
原创文章,作者:N21-chenggb,如若转载,请注明出处:http://www.178linux.com/50205
评论列表(1条)
1、注意脚本的排版格式。
2、可以尝试更多方法要实现同一个问题。