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

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

[root@bj-1-142 ~]# mke2fs -t ext4 -m3 -L MYDATA -b 2048 /dev/sdb1
# 配置默认挂在属性启用acl
[root@bj-1-142 ~]# tune2fs -o acl /dev/sdb1

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

[root@bj-1-142 ~]# mount -o noatime,noexec /dev/sdb1 /data/mydata/

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

[root@bj-1-142 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):2
起始 扇区 (20973568-167772159,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-167772159,默认为 167772159):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB 命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):2
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris” # 格式化swap分区并启用之
[root@bj-1-142 ~]# swapon /dev/sdb2
[root@bj-1-142 ~]# free -m
total used free shared buff/cache available
Mem: 977 244 139 11 593 560
Swap: 3072 0 3072

3、写一个脚本

(1)、获取并列出当前系统上的所有磁盘设备;

(2)、显示每个磁盘设备上每个分区相关的空间使用信息;

[root@bj-1-142 ~]# cat disk.sh
#!/bin/bash
# Filename: disk.sh
# Author: enzhi.wang
# Date: 2017-02-15
# chkconfig:
# discription: # print current system all disks
echo "print disk list."
fdisk -l | grep -o "/dev/sd[a-z]"| uniq # print all disk partition
echo "file system disk space usage"
df -h |grep "/dev/sd[a-z]"

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

RAID0特性:

​ 1、读写性能提升;

​ 2、可用空间,N*min

​ 3、无容错能力;

​ 4、最小磁盘数2,2+

RAID1特性:

​ 1、读性能提升,写性能略有下降,同一份数据要存两份;

​ 2、可用空间,1*min,磁盘总空间的一半;

​ 3、有冗余能力;

​ 4、最少磁盘数,2,2+;

RAID5特性:

​ 1、读写性能提升;

​ 2、可用空间,N-1*min;

​ 3、有冗余能力;

​ 4、最少磁盘数,3,3+;

RAID10特性:

​ 1、读写性能提升;

​ 2、可用空间,N*min/2;

​ 3、有冗余能力,每组镜像最多只能坏一块;

​ 4、最少磁盘数,4,4+;

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

[root@bj-1-160-enzhi ~]# mdadm -C /dev/md0 -a yes -l 1 -c 128 -n 2 /dev/sd[b,c]1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

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

[root@bj-1-160-enzhi ~]# mdadm -C /dev/md0 -c 256 -l 5 -n 3 /dev/sd[b,c,d]1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@bj-1-160-enzhi ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Feb 15 21:11:09 2017
Raid Level : raid5
Array Size : 4204544 (4.01 GiB 4.31 GB)
Used Dev Size : 2102272 (2.00 GiB 2.15 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent Update Time : Wed Feb 15 21:11:20 2017
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0 Layout : left-symmetric
Chunk Size : 256K Name : bj-1-160-enzhi.com:0 (local to host bj-1-160-enzhi.com)
UUID : 93d0b6f4:43f15ed3:8d289e89:bd0dea44
Events : 18 Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
3 8 49 2 active sync /dev/sdd1
[root@bj-1-160-enzhi ~]# mkfs.ext4 /dev/md0
[root@bj-1-160-enzhi ~]# mkdir /backup
[root@bj-1-160-enzhi ~]# vim /etc/fstab
/dev/md0 /backup ext4 defaults,noatime,acl 0 0
[root@bj-1-160-enzhi ~]# mount -a
[root@bj-1-160-enzhi ~]# mount |grep "/dev/md0"
/dev/md0 on /backup type ext4 (rw,noatime,acl)

7、写一个脚本

​ (1) 接受一个以上文件路径作为参数;

​ (2) 显示每个文件拥有的行数;

​ (3) 总结说明本次共为几个文件统计了其行数;

#!/bin/bash
# -*- coding: utf-8 -*-
# Filename: files.sh
# Author: enzhi.wang
# Date: 2017-02-15
# Description: if [ $# -lt 1 ];then
echo "Usage: $0 /path/to/somefile ..."
exit 2
fi count=0
# 如果参数为目录文件则提示用户不是文件
for f in $*;do
if [ -d $f ];then
echo "error $f is a directory."
exit 4
else
lines=$(wc -l $f|awk '{print $1}')
echo "$f line sum = $lines"
let count++
fi
done
echo "本次共为$count个文件统计了行数."

8、写一个脚本

​ (1) 传递两个以上字符串当作用户名;

​ (2) 创建这些用户;且密码同用户名;

​ (3) 总结说明共创建了几个用户;

#!/bin/bash
# -*- coding: utf-8 -*-
# Filename: adduser1.sh
# Author: enzhi.wang
# Date: 2017-02-15
# Description: if [ $# -lt 1 ];then
echo "Usage: $0 username1 username2 ..."
exit 2
fi count=0
for u in $*;do
if id $u &>/dev/null;then
echo "error user $u is exists."
else
useradd $u
echo "$u"|passwd --stdin $u &>/dev/null
echo "useradd $u is finished."
let count++
fi
done
echo "create $count users."

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

#!/bin/bash
# -*- coding: utf-8 -*-
# Filename: adduser2.sh
# Author: enzhi.wang
# Date: 2017-02-15
# Description:
uid_sum=0
for i in {1..20};do
useradd visitor$i
uid=$(id -u visitor$i)
uid_sum=$[$uid_sum + $uid]
done
echo "UID sum $uid_sum"

Linux基础练习题(五)的更多相关文章

  1. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  2. Linux基础练习题之(四)

    Linux基础练习题 请详细总结vim编辑器的使用并完成以下练习题 1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的 ...

  3. linux基础(五)

    一.linux网络原理及基础设置 ifconfig 命令:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. [root@bogon ~]# ifconfig ens33: flags=41 ...

  4. linux基础练习题(2)

    Linux命令作业(关卡二) 练习题1 理解操作系统的作用,以及各种操作系统的不同 要求: 为什么要有OS?没有OS能行吗?原因是什么? Linux内核指的是什么? Linux主要应用在哪些地方? 使 ...

  5. linux基础练习题(1)

    Linux命令作业(关卡一) 练习题1 理解操作系统的作用,以及各种操作系统的不同 要求: 简述什么是OS 简述应用程序.硬件.OS的关系 列举出3种常见的操作系统 简述Ubuntu和Linux的关系 ...

  6. Linux基础练习题

    1.列出当前系统上所有已经登录的用户名,注意:同一个用户登录多次,则只显示一次即可. [root@bj-1-160-enzhi ~]# who|cut -d ' ' -f 1|uniq -c 2 ro ...

  7. linux基础练习题(3)

    关卡三 练习题 在家路径下创建A文件夹 在上一步创建的A文件夹中,创建B/C/D文件夹 在上一步所在的路径中,创建C/E/F文件夹 使用目录树查看文件夹结构 A/B/C中创建一个hello.py文件 ...

  8. Linux 基础练习题

    Linux 测试 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 [root@localhost proc]# grep -i '^s' /proc/meminfo [ ...

  9. Linux基础练习题(三)

    1.显示当前系统上root.fedora或user1用户的默认shell: [root@www ~]# egrep "^(root|fedora|user1)" /etc/pass ...

随机推荐

  1. [转]乔布斯的薄伽梵歌 Steve’s Bhagavat Gita

    SRC: http://www.brucejia.net/ 2014年4月4日未分类apple.ios.steve jobs 编辑 Your time is limited, so don't was ...

  2. ruby-程序员最好的朋友

    ruby一门开源的动态编程语言,注重简洁和效率.Ruby 的句法优雅,读起来自然,写起来舒适. 介绍 这是个不会超过20分钟的 Ruby 简介.阅读前请您先将 Ruby 安装好.(如果您还没有安装Ru ...

  3. sqldataAdapter/dataset/datatable的使用

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Loa ...

  4. 有关从经典部署模型迁移到 Azure Resource Manager 部署模型的常见问题

    此迁移计划是否影响 Azure 虚拟机上运行的任何现有服务或应用程序? 不可以. VM(经典)是公开上市的完全受支持的服务. 你可以继续使用这些资源来拓展你在 Azure 上的足迹. 如果我近期不打算 ...

  5. Python 词频统计

    利用Python做一个词频统计 GitHub地址:FightingBob [Give me a star , thanks.] 词频统计 对纯英语的文本文件[Eg: 瓦尔登湖(英文版).txt]的英文 ...

  6. 消除 Xcode7 中 directory not found for option 'xxxx' 警告

    消除 Xcode7 中 directory not found for option 'xxxx' 警告 升级Xcode7之后,你会遇到一些警告信息,诸如以下一条: ld: warning: dire ...

  7. python传递参数给shell

    #格式化字符 print "hello, %s" % ('mm') #传递参数 n="192.168.200.2" os.popen('ping %s -c 2 ...

  8. 未能从程序集 C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Data.Entity.Build.Tasks.dll 加载任务“EntityClean”

    问题: 未能从程序集 C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Data.Entity.Build.Tasks.dll 加载任务“Entity ...

  9. HTTP协议图--HTTP 报文首部之首部字段(重点分析)

    1.首部字段概述 先来回顾一下首部字段在报文的位置,HTTP 报文包含报文首部和报文主体,报文首部包含请求行(或状态行)和首部字段. 在报文众多的字段当中,HTTP 首部字段包含的信息最为丰富.首部字 ...

  10. SQL简单基础(2)

    查询功能是SQL语句最重要的功能,查询操作也是数据库系统最常用的操作.学习SQL查询语句,首先要弄清楚的是查询语句用到的关键字以及查询语句的执行顺序.SQL语言的一个特点在于,它是一种声明式语句,执行 ...