转至: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”

磁盘管理及shell脚本编程练习的更多相关文章

  1. 《Linux命令行与shell脚本编程大全 第3版》

    第一部分 Linux 命令行 第1章  初识Linux she1.1   什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...

  2. 浅谈自底向上的Shell脚本编程及效率优化

    作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...

  3. Shell脚本编程总结及速查手册

    Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...

  4. 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记

    第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...

  5. Shell脚本编程(一):初识shell script

    Shell简介 Shell是一个命令解释器,它是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核 ...

  6. SHELL脚本编程的常识和VI常用技巧

    来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...

  7. 【Shell脚本编程系列】Shell脚本开发的习惯和规范

    1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...

  8. 【Shell脚本编程系列】知识储备以及建立规范的脚本

    前言 学习shell脚本编程需要的知识储备: vi/vim编辑器命令 vimrc设置要熟练 基础命令,100多个要熟练 基础和常用的网络服务命令要会:nfs . rsync. inotify . la ...

  9. Shell脚本编程与文件系统修复

    导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...

随机推荐

  1. Git安装详解

    官网地址: https://git-scm.com/ 查看 GNU 协议,可以直接点击下一步. 选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步. Git 选项配置,推荐默认设置,然 ...

  2. yum源 epel源 no package available 更换国内yum源

    有时候安装软件会出现 no package available 解决办法:yum install epel-release 安装完会在/etc/yum.repos.d/目录下下生成两个repo文件: ...

  3. 如何使用iconfont的CDN

    如何使用iconfont的CDN iconfont作为阿里的图标库,在开发过成功用的已经是非常广泛了,但iconfont并不需要将图标下载后使用,而是可以直接用cdn引入使用,至于使用流程,请看下文. ...

  4. 人口信息普查系统-JavaWeb-四

    今天给大家分享前端人口登记页面,人口查询页面 人口登记 <%@ page language="java" contentType="text/html; chars ...

  5. springboot 使用select的注解,来查询数据库。

    package com.aaa.zxf.mapper; import com.aaa.zxf.model.Book; import org.apache.ibatis.annotations.*; i ...

  6. Sublime Text 官方网站 http://www.sublimetext.com

    Sublime Text 官方网站 http://www.sublimetext.com

  7. Git上传项目到码云提示Push rejected: Push to origin/master was rejected

    感谢大佬:https://blog.csdn.net/weixin_41499217/article/details/82985582 Push rejected: Push to origin/ma ...

  8. opcache,opcode,apc和apcu的区别

    opcode opcode是php解析器生成的操作码,类似java的字节码,main.class文件. opcache opcache是php的扩展,是一个实现将PHP字节码(OPCode)缓存到共享 ...

  9. 「游记」NOIP 2021 爆零记

    推荐访问本人自建博客 \(\text{cjwen.top}\) 欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉,第一次参加 \(NOIP\),欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉. 第一题比较简单,用类似于筛质数的做法 ...

  10. LeetCode随缘刷题之截断句子

    这道题相对比较简单.正好最近学到StringBuilder就用了. package leetcode.day_12_06; /** * 句子 是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前 ...