磁盘管理及shell脚本编程练习
转至:http://www.178linux.com/88405
1、创建一个10G分区,并格式为ext4文件系统
- a) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;
~]# mke2fs –t ext4 –b 2048 –m 2 –L MYDATA /dev/sda3
- 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、写一个脚本
- a) 获取并列出当前系统上所有磁盘设备
- 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、写一个脚本
- a) 接受一个以上文件路径作为参数
- b) 显示每个文件拥有的行数
- 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、写一个脚本
- a) 传递两个以上字符串当作用户名
- b) 创建这些用户,且密码同用户名
- 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脚本编程练习的更多相关文章
- 《Linux命令行与shell脚本编程大全 第3版》
第一部分 Linux 命令行 第1章 初识Linux she1.1 什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...
- 浅谈自底向上的Shell脚本编程及效率优化
作者:沐星晨 出处:http://blog.csdn.net/sosodream/article/details/6276758 浅谈自底向上的Shell脚本编程及效率优化 小论文,大家多批评指导:) ...
- Shell脚本编程总结及速查手册
Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...
- 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...
- Shell脚本编程(一):初识shell script
Shell简介 Shell是一个命令解释器,它是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核 ...
- SHELL脚本编程的常识和VI常用技巧
来源:http://mprc.pku.edu.cn/mentors/training/TrainingCourses/material/ShellProgramming.HTM#_Toc3751808 ...
- 【Shell脚本编程系列】Shell脚本开发的习惯和规范
1.开头指定脚本解释器 #!/bin/sh或#!/bin/bash 2.开头加版本版权信息 #Date #Author #Mail #Function #Version 提示:可配置vim编辑文件时自 ...
- 【Shell脚本编程系列】知识储备以及建立规范的脚本
前言 学习shell脚本编程需要的知识储备: vi/vim编辑器命令 vimrc设置要熟练 基础命令,100多个要熟练 基础和常用的网络服务命令要会:nfs . rsync. inotify . la ...
- Shell脚本编程与文件系统修复
导读 Linux基金会发起了LFCS认证(Linux 基金会认证系统管理员)Linux Foundation Certified Sysadmin,这是一个全新的认证体系,旨在让世界各地的人能够参与到 ...
随机推荐
- zabbix_proxy3.4安装
server ip:172.16.2.116 proxy ip:172.16.2.241 1.创建proxy数据库,proxy用户 mysql> create database zabbix_p ...
- Java 后台线程介绍
一 是啥? package com.aaa.threaddemo; /* * 一 Java后台线程? * 守护线程--也称"服务线程",他是后台线程, * 它有一个特性,即为用户 ...
- eureka的简单介绍,eureka单节点版的实现?eureka的自我保护?eureka的AP性,和CP性?
注意!!! 这是对上一篇博客 springcloud的延续,整个项目的搭建,来源与上一篇博客.一.什么是eureka? // eureka是一个注册中心,实现了dubbo中zookeeper的效果! ...
- Luogu P1314 [NOIP2011 提高组] 聪明的质监员
P1314 [NOIP2011 提高组] 聪明的质监员 题意 题目描述 给定\(n\)个物品,给定每个物品的 重量 \(w_i\) 和 价值 \(v_i\) 给定一个标准值 \(s\) 以及一个参数 ...
- AT [ABC176F] Brave CHAIN
首先可以发现这样一个事实:在每次操作当中,都有三张牌是已经固定的,只有两张牌是不确定的,于是我们可以发下每一次操作的状态可以简单的使用这两张牌来描述,于是可以考虑令 \(dp_{i, j, k}\) ...
- 在windows、widfly环境下,远程debug
最近:一直想弄一个远程debug模式,奈何没有接触过,导致畏首畏尾,不过,两天时间终于搞出来了雏形,真的是一个坑一个坑踩过来的. widfly环境:widfly8 准备工作:远程运行环境:省略,前面一 ...
- java实现多线程生产者消费者模式
1.概念 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题.生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消 ...
- Java枚举使用笔记
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11833790.html Java枚举简单使用示例: package com.shineyue. ...
- 线性结构和非线性结构、稀疏数组、队列、链表(LinkedList)
一.线性结构和非线性结构 线性结构: 1)线性绪构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系 2)线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构.顺序存储的线性表称为顺 ...
- 卡特兰数是我见过第二神奇的东西//下一个是stirling数列
自从上次斐波那契的总结后,今天有一次遇上了正宗卡特兰数. 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, ...