1、创建一个10G分区,并格式为ext4文件系统;
(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
fdisk /dev/sdb 1、磁盘分区
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x645f3764 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。 2、通知内核重新读取硬盘分区表
[root@localhost ~]# partx -a /dev/sdb
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 125829120 sda
8 1 512000 sda1
8 2 125316096 sda2
8 16 10485760 sdb
8 17 10484736 sdb1
11 0 1048575 sr0
253 0 52428800 dm-0
253 1 2097152 dm-1
253 2 70721536 dm-2
3、格式化分区
[root@localhost ~]# mke2fs -t ext4 -b 2048 -m 2 -L 'MYDATA' /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYDATA
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242368 blocks
104847 blocks (2.00%) reserved for the super user
第一个数据块=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: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]# tune2fs -o acl /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
[root@localhost ~]# echo $?
0
4、挂载
[root@localhost ~]# mkdir -p /data/mydata/
[root@localhost ~]# mount -o noauto,noatime,acl /dev/sdb1 /data/mydata/
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
1、创建交换分区
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xa1cdd8bb 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-2097151,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel c toggle the dos compatibility flag d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types m print this menu n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
2、通知内核重新读取硬盘分区表
[root@localhost ~]# partx -a /dev/sdc
[root@localhost ~]# cat /proc/partitions
[root@localhost ~]# mkswap /dev/sdc1
正在设置交换空间版本 1,大小 = 1047548 KiB
无标签,UUID=a6d304b5-9bb5-4a39-adc9-f8bbdfe1e746
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 977 144 654 6 179 668
Swap: 3070 0 3070
3、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
#!/bin/bash
#
i=1
fdisk -l /dev/hd[a-z] | grep "Disk /"
for DevName in $(ls /dev/[s,h]d[a-z][1-9]);do
if [ $i -eq 1 ] ;then
df -h $Dev | awk -v FS=" " '{print $1,$2,$3,$4,$5,$6}'
let i++
else
df -h $DevName | grep -v "File" | awk -v =" " -v name=$Dev '{print name,$2,$3,$4,$5,$6}'
fi
done
4、总结RAID的各个级别及其组合方式和性能的不同;

raid-0:带区卷 读、写性能提升; 可用空间:N*min(S1,S2,...)最小值 无容错能力 最少磁盘数:2, 2+ RAID-1:镜像卷 读性能提升、写性能略有下降; 可用空间:1*min(S1,S2,...) 有冗余能力 最少磁盘数:2, 2+ RAID-5: 读、写性能提升 可用空间:(N-1)*min(S1,S2,...) 有容错能力:1块磁盘 最少磁盘数:3, 3+ RAID-6: 读、写性能提升 可用空间:(N-2)*min(S1,S2,...) 有容错能力:2块磁盘 最少磁盘数:4, 4+ RAID-10: 读、写性能提升 可用空间:N*min(S1,S2,...)/2 有容错能力:每组镜像最多只能坏一块; 最少磁盘数:4, 4+ JBOD:Just a Bunch Of Disks 功能:将多块磁盘的空间合并一个大的连续空间使用; 可用空间:sum(S1,S2,...)
5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
fdisk /dev/sdb 分区
mdadm -C /dev/md0 -n 2 -l 1 -c 128 -x 1 /dev/sdb{1,2,3}
[root@localhost ~]# mdadm -D /dev/md0/dev/md0:
Version : 1.2
Creation Time : Mon Aug 15 21:41:49 2016
Raid Level : raid1
Array Size : 10482176 (10.00 GiB 10.73 GB)
Used Dev Size : 10482176 (10.00 GiB 10.73 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Mon Aug 15 21:42:42 2016
State : clean
Active Devices : 2Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : ef3583dc:ef361cd0:12593e47:8bad609a
Events : 17
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功能;
disk /dev/sdb 分区
mdadm -C /dev/md0 -n 3 -l 5 -c 256 /dev/sdb{1,2,3}
mkfs.ext4 /dev/md0
echo "/dev/md0 /backup ext4 defaults,acl,nodiratime 0 0" >> /etc/fstab
-
7、写一个脚本
-
(1) 接受一个以上文件路径作为参数;
-
(2) 显示每个文件拥有的行数;
-
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash # if [ $# -eq 0 ];then echo “请输入文件名:” exit 0 fi for i in $* do echo "$i have $(wc -l $i | cut -d' ' -f1) lines" done echo "本次共为$#个文件统计了其行数!"
-
8、写一个脚本
-
(1) 传递两个以上字符串当作用户名;
-
(2) 创建这些用户;且密码同用户名;
-
(3) 总结说明共创建了几个用户;
#!/bin/bash #if [ $# -lt 2 ];thenecho "请输入两个以上的参数:"exit 0fi for i in $*;do if id "$i" &>/dev/null;then echo “当前用户已存在” exit 1 else useradd "$i" fiif [ $? -eq 0 ];then echo "$i" | passwd --stdin "$i" &> /dev/null echo "用户创建成功:" exit 2 fi done echo "Total Add $# users !"
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
#!/bin/bash
#
declare -i tid
for i in {1..10};do
if id user$i &>/dev/null;then
echo "user$i exists."
else
useradd user$i
let tid+=$(id -u user$i)
fi
if [ $? -eq 0 ];then
echo "user$i" | passwd --stadin user$i &> /dev/null
echo "Add user$i finished."
fi
done
echo "Total id is $tid !"
10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
#!/bin/bash
#
declare -i li
declare -i line
for i in {/etc/rc.d/rc.sysinit,/etc/rc.d/init.d/functions,/etc/fstab};do
let li+=$(grep ^# $i | wc -l | cut -d' ' -f1)
let line+=$(grep ^[[:space:]]*$ $i | wc -l | cut -d' ' -f1)
done
echo "文件中以#号开头的行数之和:$li"
echo "总的空白行数:$line"
11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
#!/bin/bash # declare -i uid for i in $(grep bash$ /etc/passwd | cut -d: -f1);do echo "$i,`id -u $i`" let uid+=`id -u $i` done echo "Total uid is $uid !"
12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
#!/bin/bash # declare -i NUM for i in `grep '[^:]$' /etc/group | cut -d':' -f1`; do echo $i let "NUM++" done echo "Number of user: $NUM"
13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
pvcreate /dev/sdb{5,6,7,8} ;
vgcreate -s 8m myvg01 /dev/sdb{5,6,7,8};
lvcreate -L 5G -n mylv01 myvg01;
mke2fs -t ext4 /dev/myvg01/mylv01
mount -o acl /dev/myvg01/mylv01 /user;
echo "/dev/myvg01 /user ext4 defaults,acl 0 0" >> /etc/fstab
14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
if id magedu &>/dev/null;then echo "user$i exists." else useradd -d /users/magedu magedu fi if [ $? -eq 0 ];then echo "magedu" | passwd --stadin magedu &> /dev/null echo "Add user$i finished." fi su - magedu cp /etc/passwd /etc/fstab /users/magedu
15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
lvextend -L +4G /dev/myvg01/mylv01 resize2fs /dev/myvg01/mylv01
16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
umount /dev/myvg01/mylv01; e2fsck /dev/myvg01/mylv01 resize2fs /dev/myvg01/mylv01;lvreduce -L -2G /dev/myvg01/mylv01
17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
lvcreate -L 100m -p r -s -n snapmylv01 /dev/myvg01/mylv01
原创文章,作者:N21_ Dominic,如若转载,请注明出处:http://www.178linux.com/37573


评论列表(1条)
写的很好,排版也很棒,加油,创建swap的时候是不是少了一步,第8题不对