zoukankan      html  css  js  c++  java
  • 磁盘管理及shell脚本编程练习

    转至:http://www.178linux.com/88405

    1、创建一个10G分区,并格式为ext4文件系统

    1. a) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;

    ~]# mke2fs –t ext4 –b 2048 –m 2 –L MYDATA  /dev/sda3

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

    ~]# mount –o acl,noatime,noexec /dev/sda3 /data/mydata

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

    ~]# partx –a /dev/sda

    ~]# mkswap /dev/sda4

    ~]# swapon /dev/sda4

    3、写一个脚本

    1. a) 获取并列出当前系统上所有磁盘设备
    2. b) 显示每个磁盘设备上每个分区相关的空间使用信息

    #!/bin/bash

    disk=$(ls /dev/sd[a-z])

    echo $disk

    fdisk –l /dev/sd[a-z]

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

    磁盘阵列的英文全名是RedundantArrays of lnexpensive Disks (RAID),即容错廉价磁盘阵列。RAID 可以通过一些技术将多个较小的磁盘整合成为一个较大的磁盘设备;而这个较大的磁盘功能可不止是存储而已。它还具有数据保护的功能。整个RAID由于选择的等级(level)不同。而使得整合后的磁盘具有不同的功能。基本常见的等级有这几种。

    RAID-0(等量模式,stripe):性能最佳

    这种模式如果使用相同型号与容量的磁盘来组成时,效果较佳。这种模式的RAID会将磁盘先切出等量的区块,然后当一个文件要写入RAID时。该文件会依据块的大小切割好。之后再依序放到各个磁盘里面去。由于每个磁盘会交错存放数据。因此当你的数据要写入RAID时。数据会被等量放置在各个磁盘上面。使用此等级必须要自行负担数据损毁的风险,如果某一块磁盘损毁了,那么文件数据将缺一块。此时这个文件就损毁了。由于每个文件都是这样存放的。因此RAID-0只要有任何一块磁盘损毁。在RAID上面的所有数据都会丢失而无法读取。

    RAID-1(映像模式。mirror):完整备份

    这种模式也是需要相同的磁盘容量,最好是一模一样的磁盘。如果是不同容量的磁盘组成RAID-1时。那么容量将以最小的那一块磁盘为主。这种模式主要是让同一份数据完整保存在两块磁盘上面。因此,整体RAID的容量几乎少了一半。由于两块磁盘内的数据一模一样,所以任何一块硬盘损毁时,数据还是可以完整保留下来。所以说RAID-1最大的优点大概就在于数据的备份。不过由于磁盘容量有一半用在备份,因此总容量会是全部磁盘容量的一半。虽然RAID-1的写入性能不佳,不过读取的性能还可以。这是因为数据有两份在不同的磁盘上面,如果多个进程在读取同一条数据是,RAID会自行取得最佳的读取平衡。

    RAID 0+1,RAID 1+0

    RAID 0+1就是先让两块磁盘组成RAID 0 ,并且这样的设置共有两组;然后将这两组RAID 0再组成一组RAID 1。这就是RAID 0+1。反过来说,RAID1+0就是先组成RAID-1再组成RAID-0的意思。由于具有RAID 0和RAID 1的优点,所以性能得到提升,并且数据也得以备份。但同时总容量会少一半用来作为备份。

    RAID 5:性能与数据备份的均衡考虑

    RAID-5至少需要三块以上的磁盘才能组成这种类型的磁盘阵列。这种磁盘阵列的数据写入优点类似RAID-0,不过每个循环的写入过程中,在每块磁盘还加入一个同为检查数据,这个数据会记录其他磁盘的备份数据,用于当有磁盘损毁时的救援。由于有同位检查码,因此RAID5的总容量护士整体磁盘数量减一块。当损毁的磁盘数量大于等于两块时,这整组RAID 5的数据就损毁了。因为RAID 5 默认仅能支持一块磁盘的损毁情况。

    5、创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128K

    ~]# mdadm –C /dev/md0 –l 1 –n 2 –a yes –c 128 –x 1 /dev/sdc{1,2,3}

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

    ~]# mdadm -C /dev/md1 -a yes -n 3 -c 256 -l 5 /dev/sdd{1,2,3}

    ~]# blkid /dev/md1

    ~]# mkdir /backup

    ~]# mount /dev/md1 /backup/

    7、写一个脚本

    1. a) 接受一个以上文件路径作为参数
    2. b) 显示每个文件拥有的行数
    3. c) 总结说明本次共为几个文件统计了其行数

    #!/bin/bash

    #

    declare –I sum=$#

    if [$# -ep 0]; then

    echo “please input the file path”

    exit 1

    fi

    for I in $*;do

    if [-f $i];then

    line=$(wc –l $i | cut –d “ ” –f 1)

    ecgo “$i has $line lines”

    fi

    done

    echo “there are $sum files total.”

    8、写一个脚本

    1. a) 传递两个以上字符串当作用户名
    2. b) 创建这些用户,且密码同用户名
    3. c) 总结说明共创建了几个用户

    #!/bin/bash

    #

    declare –I sum=$#

    if [$# -lt 1];then

    echo “please input at least two users”

    exit 1

    fi

    for i in $*;do

    useradd $i

    password=$i

    echo $password | passwd –stdin $i

    done

    echo ”Creatde users are $sum total.”

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

    #!/bin/bash

    #

    sum=0

    for I in {1..20};do

    useradd $i

    idsum=$(id –u $i)

    let sum+=$idsum

    done

    echo “idsum=$sum”

  • 相关阅读:
    MySQL二进制文件(binlog)
    Linux命令 find和mv的结合使用:查找文件,移动到某个目录
    必会的Linux命令
    Linux kill -9 和 kill -15 的区别
    ansible-playbook 修改主机的host解析
    基于mssql 触发器的访问权限设置
    一个简单的启停服务脚本
    Redis protected-mode属性解读
    Nginx内置变量
    haproxy—TCP负载均衡
  • 原文地址:https://www.cnblogs.com/my-first-blog-lgz/p/13390448.html
Copyright © 2011-2022 走看看