马哥教育网络班21期第七周作业

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

(0)
N21-chenggbN21-chenggb
上一篇 2016-10-09
下一篇 2016-10-09

相关推荐

  • 用户、组命令总结

    useradd:添加用户   -u :指定UID   -o :不对UID的惟一性进行检查,用法是-ou   -g :指定用户的主组或者是GID   -G :指定用户的附加组group1,group2,。。。   -d :指定用户的家目录,所指定的家目录必须是不存在的   -s :指定用户的登录she…

    Linux干货 2016-11-23
  • PXE实践

    本篇只以记录个人部署pxe过程中所遇问题,至于原理,只做部分简单说明。 pxe部署必要软件: syslinux (用于提供引导中所必备文件) tftp(用于提供存放vmlinuz,initrd,syslinux.0等引导类文件) dhcp(用于自动获取IP包括指明去哪个主机获取syslinux.0文件) 最后还需要一个web或者ftp服务,已提供系统安装中所…

    Linux干货 2017-02-05
  • Shell编程if语句

    Shell编程if语句 条件选择if语句(#if输入keywork) 选择执行: 注意:if语句可嵌套 单分支 if 判断条件(#如果为真执行下一条);then 条件为真的分支代码 fi(结尾) 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi if 语句 多分支 if 判断条件1; then 条件为真的分支代码 e…

    2018-01-01
  • 磁盘术语与磁盘管理

    磁盘术语与磁盘管理 磁盘术语 扩展1-4 逻辑5- sector 512 6位 sector 10位 track 1024 cylinder 8位head 256 0-1023 2^6=64 512*63*1024*256 cylinder=512*63*256 10M CHS 设备文件 磁盘设备的设备文件命名:/dev/DEV_FILE SCSI, SAT…

    Linux干货 2017-05-15
  • 系统启动流程相关概念

    前言: 了解系统内核基本知识 内核功能:进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能等  用户空间:应用程序其中有进程或者线程 运行中的系统可分为两层:内核空间、用户空间  内核设计流派:  单内核设计:把每种功能集成于一个程序中;例如:linux 微内核设计:每种功能使用一个单独的子系统实现;例如:Window…

    Linux干货 2016-09-19
  • 文件系统和交换分区详解

    管理文件系统: windows: FAT32– 只能存储信息,无法设置文件权限. exFAT FAT64 NTFS IS09660 Linux: ext ext2 ext3 ext4 xfs btrfs reiserfs jfs swap unix: FFS UFS JFS2 网络文件系统: NFS CIFS 集群文件系统: GFS2 OCFS2…

    Linux干货 2017-04-23

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-24 22:03

    1、注意脚本的排版格式。
    2、可以尝试更多方法要实现同一个问题。