一、创建一个10G分区,并格式为ext4文件系统;
1. 创建一个10G的分区:
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x67486aa6.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
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) #创建一个主分区
Partition number (1-4): 1 #起始柱面从1开始
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G #分配10G大小空间
Command (m for help): w #保存并退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2. 通知内核重新读取硬盘分区表
[root@localhost ~]# partx -a /dev/sdb
3. 查看内核是否已经识别新的分区
[root@localhost ~]# cat /proc/partitions | grep sdb
8 16 20971520 sdb
8 17 10490413 sdb1
1)要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
1. 格式化文件系统
命令:mke2fs:ext系列文件系统专用管理工具
语法:mke2fs [OPTIONS] /dev/sd… 默认为ext2文件系统
-t: {ext2|ext3|ext4}:指明要创建的文件系统类型;
-b: {1024|2048|4096}:指明块大小,默认为4K,最大不超过4K
-L: 'LABEL' :指明卷标
-j: 创建有日志功能的文件系统ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i: 指明indoe与字节的比率;即每多少个字节创建一个inode;此大小不应该小于block的大小
-N:直接指明要给此文件系统创建的inode的数量;
-I: 一个inode记录大小128—4096
-m: 默认5%,为管理人员指定预留空间占总空间的百分比
-O: FEATURE[,…]:启用指定特性
-O: ^FEATURE:关闭指定特性
[root@localhost ~]# mke2fs -b 2048 -m 2 -L MYDATA /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=MYDATA
操作系统:Linux
块大小=2048 (log=1) #块大小为2048
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
657408 inodes, 5245206 blocks
104904 blocks (2.00%) reserved for the super user #预留空间百分比为2%
第一个数据块=0
Maximum filesystem blocks=543162368
321 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
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
2. 设定默认挂载选项为acl
命令:tune2fs:查看或修改ext系列文件系统的某些属性;
语法:tune2fs [options] devicd
-l:查看指定文件系统超级块信息;super block
-L: 'LABEL':修改卷标
-m:调整预留给管理员的空间百分比
-j: 将ext2升级为ext3
-O: [^]FEATHER: 文件系统属性启用或禁用,–O has_journal|^has_journal
-o: 开启或关闭文件系统的默认挂载选项,–o acl|^acl
-U: UUID: 修改UUID号
[root@localhost ~]# tune2fs -o acl /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
3. 查看挂载属性
[root@localhost ~]# tune2fs /dev/sdb1 -l | grep 'Default mount options:'
Default mount options: acl
2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
mount:通过查看/etc/mtab文件显示当前系统已挂载的所有设备
格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录;
进程正在使用中的设备无法被卸载;
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型;
-r: readonly,只读挂载;
-w: read and write, 读写挂载;
-n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-L 'LABEL': 以卷标指定挂载设备;
-U 'UUID': 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
-o options:(挂载文件系统的选项)
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid:
remount:重新挂载
ro:
rw:
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
注意:上述选项可多个同时使用,彼此使用逗号分隔;
默认挂载选项:defaults
rw, suid, dev, exec, auto, nouser, and async
1. 挂载目录
[root@localhost ~]# mount -o noexec,noatime /dev/sdb1 /data/mydata/
2. 查看是否挂载成功
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
6.5G 738M 5.4G 12% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 485M 30M 430M 7% /boot
/dev/sr0 4.1G 4.1G 0 100% /media
/dev/sdb1 9.9G 13M 9.7G 1% /data/mydata
二、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
1. 创建一个1G的分区
[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-2610, default 1307):
Using default value 1307
Last cylinder, +cylinders or +size{K,M,G} (1307-2610, default 2610): +1G
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.
2. 通知内核重新读取硬盘分区表
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
3. 查看内核是否已经识别新的分区
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 7875584 sda2
8 16 20971520 sdb
8 17 10490413 sdb1
8 18 1060290 sdb2
253 0 6856704 dm-0
253 1 1015808 dm-1
4. 格式化新的分区为swap
[root@localhost ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 1060284 KiB
no label, UUID=4d52d9ca-e321-4167-bc70-dc1b85b221de
5. 开启swap
开启swap
启用:swapon
格式:swapon [OPTION]... [DEVICE]
选项:
-a:激活所有的交换分区;
-p PRIORITY:指定优先级;
禁用:swapoff [OPTION]... [DEVICE]
查看现有swap大小
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 491 192 299 0 10 96
-/+ buffers/cache: 85 406
Swap: 991 0 991
开启
[root@localhost ~]# swapon /dev/sdb2
查看
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 491 192 299 0 10 96
-/+ buffers/cache: 85 405
Swap: 2027 0 2027
6. 永久生效
[root@localhost ~]# vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0
三、写一个脚本
(1)、获取并列出当前系统上的所有磁盘设备;
(2)、显示每个磁盘设备上每个分区相关的空间使用信息;
[root@zabbix ~]# cat test.sh
#!/bin/bash
disk=$(fdisk -l | grep -o '^Disk /dev/[a-z]d[a-z]'|awk '{print $2}')
echo -e "all disk as follows:\n${disk}\n"
echo -e 'All the partition information as follows:'
for i in `fdisk -l | grep '^/dev/[a-z]d[a-z][1-9]' |awk '{print $1}'`
do
df -h $i | grep -C2 '^/dev/'
done
[root@zabbix ~]# ./test.sh
all disk as follows:
/dev/vda
/dev/vdb
/dev/vdc
All the partition information as follows:
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 48G 28G 17G 63% /
Filesystem Size Used Avail Use% Mounted on
/dev/vdb2 3.0G 69M 2.9G 3% /media
Filesystem Size Used Avail Use% Mounted on
/dev/vdc1 99G 189M 94G 1% /var/mogdata
四、总结RAID的各个级别及其组合方式和性能的不同;
RAID-0:条带卷,strip;
读、写性能提升;(IO速度最快)
可用空间:N*min(S1,S2,...)
无容错能力
最少磁盘数:2, 2+(两个或两个以上)
RAID-1: 镜像卷,mirror;
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,...)
有冗余能力(容错性最好)
最少磁盘数:2, 2+
RAID-4:
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)
有容错能力:最多坏1块磁盘
最少磁盘数:3, 3+
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
有容错能力:每组镜像最多只能坏1块磁盘;
最少磁盘数:4, 4+
RAID-01:
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:最多坏1块
最少磁盘数:4, 4+
RAID-50:
RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0。
读、写性能提升
可用空间:(N-1)*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏1块磁盘;
最少磁盘数:6,6+
JBOD:(Just a Bunch Of Disks)
将多块磁盘的空间合并一个大的连续空间使用;
可用空间:sum(S1,S2,...)
五、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k;
1. 创建分区
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x7e9c8894.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
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): 1
First cylinder (1-4568, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4568, default 4568): +10G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1307-4568, default 1307):
Using default value 1307
Last cylinder, +cylinders or +size{K,M,G} (1307-4568, default 4568): +10G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (2613-4568, default 2613):
Using default value 2613
Last cylinder, +cylinders or +size{K,M,G} (2613-4568, default 4568): +10G
调整分区类型为fd
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
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: 37.6 GB, 37580963840 bytes
255 heads, 63 sectors/track, 4568 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: 0x7e9c8894
Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ fd Linux raid autodetect
/dev/sdb2 1307 2612 10490445 fd Linux raid autodetect
/dev/sdb3 2613 3918 10490445 fd Linux raid autodetect
保存
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2. 通知内核重读分区表
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
3. 查看内核是否已经识别新的分区
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 7875584 sda2
8 16 36700160 sdb
8 17 10490413 sdb1
8 18 10490445 sdb2
8 19 10490445 sdb3
253 0 6856704 dm-0
253 1 1015808 dm-1
4. 创建raid 1
mdadm:模式化的工具
格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10;
模式:
创建:-C
装配: -A
监控: -F
管理:-f, -r, -a
-C: 创建模式
-n #: 使用#个块设备来创建此RAID;
-l #:指明要创建的RAID的级别;
-a {yes|no}:自动创建目标RAID设备的设备文件;
-c CHUNK_SIZE: 指明块大小;
-x #: 指明空闲盘的个数;
-D:显示raid的详细信息;
mdadm -D /dev/md#
管理模式:
-f: 标记指定磁盘为损坏;
-a: 添加磁盘
-r: 移除磁盘
观察md的状态:
cat /proc/mdstat
停止md设备:
mdadm -S /dev/md#
创建
[root@localhost ~]# mdadm -C /dev/md0 -a yes -c 128 -n 2 -x 1 -l 1 /dev/sdb{1,2,3}
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? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
5. 查看raid 1信息
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Sep 18 14:20:18 2016
Raid Level : raid1
Array Size : 10489317 (10.00 GiB 10.74 GB)
Used Dev Size : 10489317 (10.00 GiB 10.74 GB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sun Sep 18 14:21:32 2016
State : active
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 87a4e613:6e5b5509:58b3f31c:3685e1f8
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 - spare /dev/sdb3
六、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;
1. 创建分区
[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): 1
First cylinder (1-4568, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4568, default 4568): +4G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (524-4568, default 524):
Using default value 524
Last cylinder, +cylinders or +size{K,M,G} (524-4568, default 4568): +4G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1047-4568, default 1047):
Using default value 1047
Last cylinder, +cylinders or +size{K,M,G} (1047-4568, default 4568): +4G
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
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: 37.6 GB, 37580963840 bytes
255 heads, 63 sectors/track, 4568 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: 0x7e9c8894
Device Boot Start End Blocks Id System
/dev/sdb1 1 523 4200966 fd Linux raid autodetect
/dev/sdb2 524 1046 4200997+ fd Linux raid autodetect
/dev/sdb3 1047 1569 4200997+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2. 通知内核重读分区表
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
3. 查看内核是否已经识别新的分区
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 7875584 sda2
8 16 36700160 sdb
8 17 4200966 sdb1
8 18 4200997 sdb2
8 19 4200997 sdb3
253 0 6856704 dm-0
253 1 1015808 dm-1
4. 创建raid 5
[root@localhost ~]# mdadm -C /dev/md0 -a yes -c 256 -n 3 -l 5 /dev/sdb{1,2,3}
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Sun Sep 18 14:20:18 2016
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
5. 查看 raid 5 信息
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Sep 18 14:38:48 2016
Raid Level : raid5
Array Size : 8399360 (8.01 GiB 8.60 GB)
Used Dev Size : 4199680 (4.01 GiB 4.30 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sun Sep 18 14:40:00 2016
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 : 484a2c9b:8bfef9d1:55fcf0a7:bd10b14d
Events : 20
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 18 1 active sync /dev/sdb2
3 8 19 2 active sync /dev/sdb3
6. 格式化文件系统
[root@localhost ~]# mkfs.ext4 /dev/md0
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=64 blocks, Stripe width=128 blocks
525200 inodes, 2099840 blocks
104992 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
65 block groups
32768 blocks per group, 32768 fragments per group
8080 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
7. 开机自动挂载
[root@localhost ~]# vim /etc/fstab
/dev/md0 /backup ext4 acl,noatime 0 0
七、写一个脚本
(1) 接受一个以上文件路径作为参数;
(2) 显示每个文件拥有的行数;
(3) 总结说明本次共为几个文件统计了其行数;
#!/bin/bash
if [ $# -lt 2 ]
then
echo "Please enter one or more parameters"
exit 1
fi
for i in $@
do
if [ -f $i 2> /dev/null ]
then
wc -l $i
else
echo 'Please enter the file as a parameter...'
exit 1
fi
done
echo "本次总计为了$#个文件统计了行数"
[root@localhost ~]# ./wc.sh /etc/passwd /etc/issue
19 /etc/passwd
3 /etc/issue
本次总计为了2个文件统计了行数
八、写一个脚本
(1) 传递两个以上字符串当作用户名;
(2) 创建这些用户;且密码同用户名;
(3) 总结说明共创建了几个用户;
[root@localhost ~]# cat user.sh
#!/bin/bash
name_sum=0
for i in $@
do
name=$i
if [ ${#name} -gt 2 ]
then
echo 'Account name meet the requirements'
useradd $i;echo $i | passwd --stdin $i;let name_sum+=1
else
echo 'Account name does not meet the requirements'
exit 1
fi
done
echo "本次共创建$name_sum个用户"
[root@localhost ~]# ./user.sh aa bbb cccc dddddd
Account name does not meet the requirements
Account name meet the requirements
更改用户 bbb 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
Account name meet the requirements
更改用户 cccc 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
Account name meet the requirements
更改用户 dddddd 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
本次共创建3个用户
九、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
[root@localhost ~]# cat id.sh
#!/bin/bash
id_sum=0
for i in `seq 20`
do
useradd visitor$i; echo "visitor$i" | passwd --stdin visitor$i
let id_sum+=$(id -u visitor$i)
done
echo "visitor1-visitor20的id之和为$id_sum"
[root@localhost ~]# ./id.sh
更改用户 visitor1 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor2 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor3 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor4 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor5 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor6 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor7 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor8 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor9 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor10 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor11 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor12 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor13 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor14 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor15 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor16 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor17 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor18 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor19 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
更改用户 visitor20 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
visitor1-visitor20的id之和为10250
十、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
[root@localhost ~]# cat wc.sh
#!/bin/bash
if [ $# -lt 2 ]
then
echo "Please enter one or more parameters"
exit 1
fi
line_sum=0
space_sum=0
for i in $@
do
if [ -f $i 2> /dev/null ]
then
let line_sum+=$(grep '^#' $i | wc -l)
let space_sum+=$(grep '^[[:space:]]*$' /etc/rc.d/rc.sysinit|wc -l)
else
echo 'Please enter the file as a parameter...'
exit 1
fi
done
echo -e "以#开头行的总数为$line_sum\n 空白行的总数为$space_sum"
[root@localhost ~]# ./wc.sh /etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab
以#开头行的总数为87
空白行的总数为291
十一、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
[root@localhost ~]# cat id.sh
#!/bin/bash
id_sum=0
bash_count=`grep '/bin/bash' /etc/passwd | cut -d':' -f1,3`
echo -e "当前系统上shell为bash的有\n $bash_count"
for i in $bash_count
do
let id_sum+=`echo $i|cut -d':' -f2`
done
echo "当前系统上的shell为bash的id之和为$id_sum"
[root@localhost ~]# ./id.sh
当前系统上shell为bash的有
root:0
bbb:500
cccc:501
dddddd:502
visitor1:503
visitor2:504
visitor3:505
visitor4:506
visitor5:507
visitor6:508
visitor7:509
visitor8:510
visitor9:511
visitor10:512
visitor11:513
visitor12:514
visitor13:515
visitor14:516
visitor15:517
visitor16:518
visitor17:519
visitor18:520
visitor19:521
visitor20:522
当前系统上的shell为bash的id之和为11753
十二、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
[root@localhost ~]# cat group.sh
#!/bin/bash
user=`cut -d':' -f1 /etc/passwd`
user_sum=0
for i in $user
do
if [ `id -n -G $i` == $i 2> /dev/null ]
then
echo "$i没有附加组"
else
let user_sum+=1
fi
done
echo "拥有附加组用户的数量为:$user_sum"
[root@localhost ~]# ./group.sh
lp没有附加组
mail没有附加组
uucp没有附加组
gopher没有附加组
ftp没有附加组
nobody没有附加组
vcsa没有附加组
saslauth没有附加组
sshd没有附加组
admin没有附加组
拥有附加组用户的数量为:13
十三、为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
1. 创建分区
[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): 1
First cylinder (1-4568, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-4568, default 4568): +5G
修改分区类型为lvm
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 37.6 GB, 37580963840 bytes
255 heads, 63 sectors/track, 4568 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: 0x7e9c8894
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2. 通知内核重读分区表
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
3. 查看内核是否已经识别新的分区
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 7875584 sda2
8 16 36700160 sdb
8 17 5253223 sdb1
253 0 6856704 dm-0
253 1 1015808 dm-1
4.创建物理卷pv
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
5.创建卷组vg
[root@localhost ~]# vgcreate mylv1group /dev/sdb1
Volume group "mylv1group" successfully created
6.创建逻辑卷lv
[root@localhost ~]# lvcreate -L 5G -n mylv1 mylv1group
Logical volume "mylv1" created
7. 格式化逻辑卷
[root@localhost ~]# mke2fs -t ext4 /dev/mylv1group/mylv1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=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
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
8. 添加开机自动挂载
[root@localhost ~]# vim /etc/fstab
/dev/mylv1group/mylv1 /users ext4 defaults,acl 0 0
十四、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
[root@localhost ~]# useradd -d /users/magedu magedu
[root@localhost ~]# su - magedu
[magedu@localhost ~]$ pwd
/users/magedu
[magedu@localhost ~]$ cp /etc/issue /etc/issue.net .
[magedu@localhost ~]$ ll
总用量 8
-rw-r--r--. 1 magedu magedu 47 9月 18 17:43 issue
-rw-r--r--. 1 magedu magedu 46 9月 18 17:43 issue.net
十五、扩展mylv1至9G,确保扩展完成后原有数据完全可用;
1. 添加一块新的分区
[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 (1309-4568, default 1309):
Using default value 1309
Last cylinder, +cylinders or +size{K,M,G} (1309-4568, default 4568):
Using default value 4568
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 37.6 GB, 37580963840 bytes
255 heads, 63 sectors/track, 4568 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: 0x7e9c8894
Device Boot Start End Blocks Id System
/dev/sdb1 1 654 5253223+ 8e Linux LVM
/dev/sdb2 655 1308 5253255 8e Linux LVM
/dev/sdb3 1309 4568 26185950 8e Linux LVM
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.
2. 通知内核重读分区表
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
3. 查看内核是否已经识别新的分区
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 8388608 sda
8 1 512000 sda1
8 2 7875584 sda2
8 16 36700160 sdb
8 17 5253223 sdb1
8 18 5253255 sdb2
8 19 26185950 sdb3
253 0 6856704 dm-0
253 1 1015808 dm-1
253 2 5242880 dm-2
4.创建pv
[root@localhost ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created
5.添加到卷组
[root@localhost ~]# vgextend mylv1group /dev/sdb3
Volume group "mylv1group" successfully extended
6.在线扩展lv
[root@localhost ~]# lvextend -L 9G /dev/mylv1group/mylv1
Extending logical volume mylv1 to 9.00 GiB
Logical volume mylv1 successfully resized
7. 调整文件系统大小
[root@localhost ~]# fsadm resize /dev/mylv1group/mylv1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/mylv1group-mylv1 is mounted on /users; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/mylv1group-mylv1 to 2359296 (4k) blocks.
The filesystem on /dev/mapper/mylv1group-mylv1 is now 2359296 blocks long.
8.查看大小
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
6.5G 738M 5.4G 12% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 485M 30M 430M 7% /boot
/dev/mapper/mylv1group-mylv1
8.9G 140M 8.3G 2% /users
9.测试数据完整性
[root@localhost ~]# cat /users/magedu/issue.net
CentOS release 6.1 (Final)
Kernel \r on an \m
十六、缩减mylv1至7G,确保缩减完成后原有数据完全可用;
1. 卸载逻辑卷
[root@localhost ~]# umount /users/
2. 强制检测文件系统
[root@localhost ~]# e2fsck -f /dev/mylv1group/mylv1
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/mylv1group/mylv1: 18/589824 files (0.0% non-contiguous), 72678/2359296 blocks
3. 调整文件系统大小
[root@localhost ~]# fsadm resize /dev/mylv1group/mylv1 7G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/mylv1group-mylv1 to 1835008 (4k) blocks.
The filesystem on /dev/mapper/mylv1group-mylv1 is now 1835008 blocks long.
4. 停止逻辑卷
[root@localhost ~]# lvchange -an /dev/mylv1group/mylv1
5. 调整lv大小
[root@localhost ~]# lvreduce -L 7G /dev/mylv1group/mylv1
Reducing logical volume mylv1 to 7.00 GiB
Logical volume mylv1 successfully resized
6.重新激活挂载
[root@localhost ~]# lvchange -ay /dev/mylv1group/mylv1
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
6.5G 738M 5.4G 12% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 485M 30M 430M 7% /boot
/dev/mapper/mylv1group-mylv1
6.9G 140M 6.5G 3% /users
7. 测试数据完整性
[root@localhost ~]# cat /users/magedu/issue.net
CentOS release 6.1 (Final)
Kernel \r on an \m
十七、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;
1. 创建个128M的快照
[root@localhost ~]# lvcreate -s /dev/mylv1group/mylv1 -n mylv1_sn -L 128M
Logical volume "mylv1_sn" created
2.查看快照
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Name /dev/mylv1group/mylv1
VG Name mylv1group
LV UUID YD2JOb-tpfj-cfl9-Rhdr-5XB8-ldfe-QHO5eO
LV Write Access read/write
LV snapshot status source of
/dev/mylv1group/mylv1_sn [active]
LV Status available
# open 1
LV Size 7.00 GiB
Current LE 1792
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
3. 挂载
[root@localhost ~]# mount -r /dev/mylv1group/mylv1_sn /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/VolGroup-lv_root
6.5G 738M 5.4G 12% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/sda1 485M 30M 430M 7% /boot
/dev/mapper/mylv1group-mylv1
6.9G 140M 6.5G 3% /users
/dev/mapper/mylv1group-mylv1_sn
6.9G 140M 6.5G 3% /mnt
4. 测试
删除原卷的文件
[root@localhost ~]# rm -f /users/magedu/issue
查看快照卷的文件
[root@localhost ~]# ll /mnt/magedu/
总用量 8
-rw-r--r--. 1 magedu magedu 47 9月 18 17:43 issue
-rw-r--r--. 1 magedu magedu 46 9月 18 17:43 issue.net
转载于:https://blog.51cto.com/11884010/1853513