码迷,mamicode.com
首页 > 系统相关 > 详细

Linux运维--磁盘&shell编程基础

时间:2018-08-07 20:34:54      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:硬盘驱动器   字母   磁盘格式   order   否支持   man   工作站   mnt   bubuko   

 

 

目录

1     磁盘知识体系结构... 4

1.1          第一层... 4

1.1.1       磁盘结构... 4

1.1.1.1           硬盘的分类... 5

1.1.1.2           磁盘接口的特点... 6

1.1.1.2.1        磁盘接口的外部特点... 6

1.1.1.2.2        磁盘接口的特点:... 6

1.1.1.2.3        磁盘如何选择... 7

1.1.1.3           磁盘内部结构... 7

1.1.1.3.1        计算磁盘大小... 8

1.1.1.3.2        磁盘分区... 9

1.1.1.3.2.1    硬盘分区命名规则... 10

1.1.1.3.2.2    创建分区... 10

1.1.1.3.2.2.1   fdisk方法一... 10

1.1.1.3.2.2.2   parted方法二... 12

1.1.1.3.2.2.2.1    非交互式... 12

1.1.1.3.2.2.2.2    交互式:... 12

1.1.1.3.3        格式化(创建文件系统make filesystem)... 12

1.1.1.3.4        关闭磁盘分区自动检查功能... 13

1.1.1.3.5        挂载... 13

1.1.1.3.6        永久挂载... 13

1.2          raid 磁盘冗余阵列... 14

1.2.1       磁盘冗余阵列的作用... 14

1.2.2       Raid特点... 14

1.2.2.1    Raid0. 15

1.2.2.2    Raid1. 15

1.2.2.3    Raid 5. 15

1.2.2.4    Raid10. 16

1.3          增加swap. 16

1.3.1       增加swap. 17

1.3.2       临时激活swap文件... 17

1.3.3       查看swap由什么组成... 17

1.3.4       取消文件的swap功能... 17

1.3.5       永久增加swap,重启服务器后生效... 18

1.4          查看系统性能的命令... 18

1.4.1       查看CPU性能... 18

1.4.2       查看内存信息... 21

1.4.3       查看负载... 21

2     Shell 22

2.1          变量的分类... 22

2.1.1       全局变量... 22

2.1.2       局部变量... 22

2.1.3       特殊变量... 22

 

 

 

1       磁盘知识体系结构

 技术分享图片

1.1   第一层

1.1.1  磁盘结构

 技术分享图片

1.1.1.1  硬盘的分类

参考:https://jingyan.baidu.com/article/d5c4b52b9aaf55da560dc5ad.html

硬盘三大种类(SSD;HHD;HDD)
  
固态硬盘(Solid State Drive:
用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。
 
优点:读写速度快;防震抗摔性;低功耗;无噪音;工作温度范围大;轻便
缺点:容量小;寿命有限;售价高
  
混合硬盘(hybrid harddriveHHD: 是既包含传统硬盘又有闪存(flashmemory)模块的大容量存储设备。闪存处理存储中写入或恢复最频繁的数据。很多公司开始提供这项技术的变体,他们期望它会在高端系统中受到追捧,尤其是在笔记本电脑和个人数字助理中。
  
相比传统硬盘,混合硬盘(hybrid hard drive,HHD)有很多优点,包括:
应用中的数据存储与恢复更快,如文字处理机
系统启动时间减少
功耗降低
生成热量减少
硬盘寿命延长
笔记本和PAD的电池寿命延长
工作噪声级别降低
 
混合硬盘(hybrid hard drive,HHD)的不足包括:
硬盘中数据的寻道时间更长
硬盘的自旋变化更频繁
闪存模块处理失败,不可能进行其中的数据恢复
系统的硬件总成本更高
  
传统硬盘(HDDHard Disk Drive的缩写):
即硬盘驱动器的英文名。最基本的电脑存储器,我们电脑中常说的电脑硬盘
C盘、D盘为磁盘分区都属于硬盘驱动器。目前硬盘一般常见的磁盘容量为80G、128G、160G、256G、320G、500G、750G、1TB、2TB等等。硬盘按体积大小可分为3.5寸、2.5寸、1.8寸等;按转数可分为5400rpm/7200rpm/10000rpm等;
  
SSD和HDD的比较
 
在过去10年中,CPU的性能提升了150倍以上,而传统硬盘才提升了1.5倍不到,这种不均衡的发展,极大的影响了整体性能的提升,尤其在I/O方面,而且SSD(固态硬盘)相比起传统硬盘,它没有磁头,马达,磁盘等一系列的零件,搭载NAND Flash芯片作为存储介质,在运行速度,功耗,轻便等方面是传统硬盘所无法比拟的。
 
目前传统硬盘因为成本低廉等因素依然占据着硬盘市场的主要份额,然而随着SSD的成本不断的降低,技术不断提升与系统更好的支持等因素,而且目前主流的笔记本电脑也都均配置SATA和mSATA
接口,包括目前的超极本(Ultrabook)也只有搭载SSD才可能实现“更轻,更快,更低功耗,未来取代传统硬盘也是大势所趋

 

1.1.1.2  磁盘接口的特点

1.1.1.2.1         磁盘接口的外部特点

 技术分享图片

1.1.1.2.2         磁盘接口的特点:

参考:https://jingyan.baidu.com/article/636f38bb7a8dced6b84610bc.html

SCSI硬盘主要应用于中、高端服务器和高档工作站中。其特点为:传输速率高、读写性能好、可连接多个设备、可支持热插拔,但是价格相对来说比较贵。

 

SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势。Serial ATA采用串行连接方式,串行ATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。

 

SAS是sata和SCSI的结合

 

1.1.1.2.3         磁盘如何选择

技术分享图片 

1.1.1.3  磁盘内部结构

 技术分享图片

如下图所示,是磁头、磁道、扇区、柱面

 

 

扇区是硬盘最小的单位

系统最小的单位是block

 

1.1.1.3.1         计算磁盘大小

磁盘大小=柱面大小*柱面数量

柱面大小=磁道大小*磁头数量

磁盘大小=扇区大小512*扇区数量

 

[root@localhost ~]# fdisk  -l /dev/sda

 

255 heads, 63 sectors/track, 2610 cylinders

 

------>512*63*255*2610

[root@localhost ~]# echo 512*63*255*2610|bc

21467980800

[root@localhost ~]# awk ‘BEGIN{print 512*63*255*2610/1024^3"GB"}‘

19.9936GB

[root@oldboyedu-48-lnb ~]# echo  "scale=5;512*63*255*2610/1024^3"|bc

19.99361

[root@oldboyedu-48-lnb ~]# echo $((103/2))  $[3**30]

51 205891132094649

[root@oldboyedu-48-lnb ~]# expr 1 + 2

3

1.1.1.3.2         磁盘分区

MBR,全称为 Master Boot Record,即硬盘的 主引导记录

  为了便于理解,一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区( 引导程序分区表及分隔标识),也就是上面所说的 主引导记录;而狭义的MBR仅指 引导程序而言。

  硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。在总共512字节的主引导扇区里 主引导程序(boot loader占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。

 技术分享图片

 

1.1.1.3.2.1   硬盘分区命名规则

 

第1块sas硬盘的第一个主分区     /dev/sda 1 

第2块sata硬盘的第2个主分区    /dev/sdb 2

第3块sata硬盘的第1个逻辑分区  /dev/sdc 5

1.1.1.3.2.2        创建分区

 

1.1.1.3.2.2.1  fdisk方法一

[root@localhost ~]# fdisk -cu /dev/sdb

-u:按照扇区进行分区

-c:取消dos兼容模式

 

p:print 显示分区信息

n :new  创建分区

d:delete 删除分区

w:write 保存退出

q:quit 退出不保存

题:

创建1个10M主分区    创建一个使用剩余所有容量的扩展分区    创建一个 20M的逻辑分区 

[root@localhost ~]# fdisk -cu /dev/sdb

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First sector (2048-417791, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10

 

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e

Partition number (1-4): 2

First sector (2059-417791, default 2059):

Using default value 2059

Last sector, +sectors or +size{K,M,G} (2059-417791, default 417791):

Using default value 417791

 

Command (m for help): n

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

l

First sector (4107-417791, default 4107):

Using default value 4107

Last sector, +sectors or +size{K,M,G} (4107-417791, default 417791): +20M

 

Command (m for help): p

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048        2058           5+  83  Linux

/dev/sdb2            2059      417791      207866+   5  Extended

/dev/sdb5            4107       45066       20480   83  Linux

Command (m for help): w

通知系统磁盘分区表磁盘分区表变化了

[root@localhost ~]# partprobe /dev/sdb

 

1.1.1.3.2.2.2  parted方法二

将磁盘格式变成gpt的格式(因为parted只能针对gpt格式的磁盘进行操作)

   转换:

(parted) mklabel  gpt

   分区:

(parted) mkpart  primary  1  500                  (分第一个主分区500MB,primary是分区名)

 

   分区:

(parted) mkpart  primary  501  1000              (分第二个主分区500MB)

   分区:

(parted) mkpart  logical  1001  2000              (分第三个逻辑分区1000MB)  (parted的逻辑分区不用先分扩展分区,直接一步到位)

   查看:

(parted) p

   退出:

(parted)quit             ( parted分区自动保存,不用手动保存 )

1.1.1.3.2.2.2.1  非交互式

[root@localhost ~]# parted /dev/sdb mktable gpt

                                                                     

[root@localhost ~]# parted /dev/sdb  mkpart primary 0 10

1.1.1.3.2.2.2.2  交互式:

1.1.1.3.3         格式化(创建文件系统make filesystem)

文件系统就是管理这块文件的机制

 

[root@localhost ~]# mkfs.ext4 /dev/sdb1

1.1.1.3.4         关闭磁盘分区自动检查功能

root@localhost ~]# tune2fs -c 0 -i 0 /dev/sdb1

-c:count

-i:interval

1.1.1.3.5         挂载

[root@localhost ~]# mount /dev/sdb1  /mnt/

[root@localhost ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup-lv_root

                       18G  4.4G   12G  28% /

tmpfs                 491M   72K  491M   1% /dev/shm

/dev/sda1             477M   36M  417M   8% /boot

/dev/sr0              3.7G  3.7G     0 100% /media

/dev/sdb1             9.7M  100K  9.0M   2% /mnt

1.1.1.3.6         永久挂载

法一:/etc/rc.local

法二:/etc/fstab开机自动挂载

[root@localhost ~]# tail /etc/fstab |column -t

 

proc                                     

 /proc     

 proc       

  defaults       

0       

   0

设备名称(磁盘分区名称  光盘)

挂载点

文件系统类型

挂载参数,默认default

备份

检查

/dev/cdrom

/mnt

Iso9660

Defaults

0

0

 

1.2   raid 磁盘冗余阵列

1.2.1  磁盘冗余阵列的作用

得到更高的容量

得到更高的冗余

得到更高的性能

 

RAID是“Redundant Array of Independent Disk”的缩写

RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将RAID分为不同的级别。 其中提高传输速率和提供容错功能是最大的优点。其特色是N台硬盘同时读取速度加快及提供容错性Fault Tolerant,所以RAID主要是解决访问数据的存储速度问题(Storage)不是备份问题(Backup Solution)。

1.2.2  Raid特点

 技术分享图片

 

 

1.2.2.1  Raid0

 

同时访问多个磁盘这样访问读取速度加快。在系统眼中,raid0这几块盘是一块盘。

1.2.2.2  Raid1

又叫镜像盘,只能有两块硬盘,另一块作为备份使用。

 

1.2.2.3  Raid 5

每写3个信息,下面就有一个校验信息,作用就是当一块硬盘坏了,通过奇偶校验恢复

 技术分享图片

如上图显示raid5的存储数据的特点,,我们一般做raid5的时候加一块热备盘。

1.2.2.4  Raid10

 技术分享图片

Raid10的写入数据原理如上图一样,但并不是先做成raid1后做成raid0而是直接做成raid10.

注意raid10是两块两块扩展。

 

1.3   增加swap

内存不足,使用swap,swap不足增加swap

 

 

1.3.1  增加swap

查看内存:

[root@localhost ~]# free -h

             total            used       free     shared    buffers     cached

Mem:          980M       403M            577M       1.1M        59M       147M

                         -( buffer+cache)  +(buffer+cache)

-/+ buffers/cache:       196M       784M

Swap:         1.9G         0B       1.9G

 

-------->linux把用过的文件 数据临时缓存起来

 

[root@localhost ~]# dd   if=/dev/zero     of=/tmp/100m   bs=1M        count=100

[root@localhost ~]#

[root@localhost ~]# mkswap  /tmp/100m    转成swap

1.3.2  临时激活swap文件

 

[root@localhost ~]# swapon /tmp/100m

 

[root@localhost ~]# free -h

             total       used       free     shared    buffers     cached

Mem:          980M       507M       473M       1.1M        59M       247M

-/+ buffers/cache:       199M       781M

Swap:         2.0G         0B       2.0G

 

1.3.3  查看swap由什么组成

[root@localhost ~]# swapon -s 

1.3.4  取消文件的swap功能

[root@localhost ~]# swapoff /tmp/100m

 

1.3.5  永久增加swap,重启服务器后生效

[root@localhost ~]# vim /etc/fstab

 

/tmp/100m            swap                     swap     defaults     0  0

 

 

1.4   查看系统性能的命令

 

1.4.1  查看CPU性能

Cpu的路、颗、核、线程的理解

路就是颗,相当于房子,核相当于房间里的人,“核”是在一物理CPU内部封装的CPU核心数量,线程相当于人同时做的事情。

[root@localhost ~]# lscpu    查看cpu信息

Architecture:          i686                            #架构686
CPU(s):                2                                   #逻辑cpu颗数是2
Thread(s) per core:    1                           #每个核心线程数是1                 
Core(s) per socket:    2                           #每个cpu插槽核数/每颗物理cpu核数是2
CPU socket(s):         1                            #cpu插槽数是1
Vendor ID:             GenuineIntel           #cpu厂商ID是GenuineIntel
CPU family:            6                              #cpu系列是6
Model:                 23                                #型号23
Stepping:              10                              #步进是10
CPU MHz:               800.000                 #cpu主频是800MHz
Virtualization:        VT-x                         #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item/5d8e0488def3a998a5c272c0.html)
L1d cache:             32K                         #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache:             32K                          #一级缓存32K(具体为L1指令缓存为32K)
L2 cache:              3072K                      #二级缓存3072K

socket就是主板上插cpu的槽的数目,也就是可以插入的物理CPU的个数。

core就是我们平时说的“核“,每个物理CPU可以双核,四核等等。

thread就是每个core的硬件线程数,即超线程

 

[root@localhost ~]# cat /proc/cpuinfo

physical id   : 0

processor     : 0   (应该是逻辑CPU)

siblings         : 1

core id          : 0

cpu cores     : 1

  1. 拥有相同 physical id 的所有逻辑处理器共享同一个物理插座,每个 physical id 代表一个唯一的物理封装。

 2. Siblings 表示位于这一物理封装上的逻辑处理器的数量,它们可能支持也可能不支持超线程(HT)技术。
 3. 每个 core id 均代表一个唯一的处理器内核,所有带有相同 core id 的逻辑处理器均位于同一个处理器内核上。简单的说:“siblings”指的是一个物理CPU有几个逻辑                      CPU,”cpu cores“指的是一个物理CPU有几个核。
4. 如果有一个以上逻辑处理器拥有相同的 core id 和 physical id,则说明系统支持超线程(HT)技术。
 5. 如果有两个或两个以上的逻辑处理器拥有相同的 physical id,但是 core id不同,则说明这是一个多内核处理器。cpu cores条目也可以表示是否支持多内核。

[root@localhost ~]# top

top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached

解释:

  • top - 09:44:56[当前系统时间],
  • 16 days[系统已经运行了16天],
  • 1 user[个用户当前登录],
  • load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度]
  • Tasks: 145 total[总进程数],
  • 2 running[正在运行的进程数],
  • 143 sleeping[睡眠的进程数],
  • 0 stopped[停止的进程数],
  • 0 zombie[冻结进程数],
  • Cpu(s): 99.8%us[用户空间占用CPU百分比],
  • 0.1%sy[内核空间占用CPU百分比],
  • 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
  • 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
  • 0.0%hi[],
  • 0.0%st[],
  • Mem: 4147888k total[物理内存总量],
  • 2493092k used[使用的物理内存总量],
  • 1654796k free[空闲内存总量],
  • 158188k buffers[用作内核缓存的内存量]
  • Swap:  5144568k total[交换区总量],
  • 56k used[使用的交换区总量],
  • 5144512k free[空闲交换区总量],
  • 2013180k cached[缓冲的交换区总量],

[root@localhost ~]# htop

 

vmstat

1.4.2  查看内存信息

1)、cat /proc/meminfo
2)、free 命令
             total       used       free     shared    buffers     cached
Mem:      65973912   32496232   33477680          0     906932    6452984
-/+ buffers/cache:   25136316   40837596
Swap:     41943032      13204   41929828

 

top

1.4.3  查看负载

W

Top

Uptime

 

2       Shell

2.1   变量的分类

2.1.1  全局变量

又称环境变量

 

2.1.2  局部变量

由数字、字母、下划线组成,以字母、下划线开头

2.1.3  特殊变量

$0

脚本名

$数字

脚本的第几个参数

$#

参数的个数

$?

上一个命令是否执行成功,0成功,非0失败

 

 

 

[root@localhost test]# read -p "input  num :" num1

input  num :oldboyedu 

[root@localhost test]# echo $num1

oldboyedu

 

#书写脚本 计算10和3的加减乘除 

[root@localhost test]# sh +x test.sh 10 3

13 7 30 3.33333

[root@localhost test]# cat test.sh

#!/bin/bash

awk -va=$1 -vb=$2 ‘BEGIN {print a+b,a-b,a*b,a/b}‘

 

Linux运维--磁盘&shell编程基础

标签:硬盘驱动器   字母   磁盘格式   order   否支持   man   工作站   mnt   bubuko   

原文地址:https://www.cnblogs.com/lilz/p/9438866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!