计划任务
-
概念:实现进程调度管理,在特定的时间(时间点)完成特定的任务(命令);
-
作用:周期性备份、定期更新系统、完成某一个特定的任务;
-
一次计划任务:
- 流程
启动atd服务-->at(时间:例:at 00:17 2017-11-1)-->任务(命令)-->ctrl+d(提交)-->atq(查看)-->atrm 任务编号(删除)
- 流程
-
周期性计划任务:
- 了解crond:周期性执行命令,由crontabs软件提供系统计划任务内容;crond提供程序或用户自定义计划任务。
- 计划任务的格式:分 时 日 月 周 要执行的命令 ##用户可以不指定,默认为root用户
- .时间的表示:所有时间为正常标准,特殊的表示以下:
- *:表示任意时间,可用在除分钟外的其他时间
- -:表示连续的时间
- /:表示时间的频率,如*/3表示每隔3
- ,:表示不连续的时间,如1,3,5
- 设置周期性计划任务的方式:
crontab -e -u 用户 -->时间 命令-->:wq --> crontab -l -->crontab -r (删除用户的所有计划任务)
echo‘时间 命令’>>/var/spool/cron/用户名 --> crontab -l (查看)
进程管理
一、进程
程序是保存在硬盘中的可执行代码或数据的静态集合;
进程是cpu及内存中处于动态执行状态的计算机程序;
进程由程序运行后产生,需要消耗cpu和内存,分为父子进程,子进程向父进程申请或提交;
线程:包含在进程中的一个实体,与所在的进程共用计算机资源;
单线程:串行化处理;
多线程:并行化处理;
二、进程的管理:增(启动)、删(杀死或关闭)、查(显示进程)
-
查:查找进程 ps/top/pgrep/pstree
-
语法:ps aux ##静态查看进程
RSS:物理内存,不包括swap,单位kb
VSZ:虚拟内存
STAT:进程状态:R运行、S休眠、Z僵尸、s父进程、<高优先级、N低优先级、+前台进程 -
语法:top ##动态显示进程的列表,相当于windows下的任务管理器
k--输入PID--9代表强制杀死--15代表正常杀死(windows关机时 有未关闭的程序时的提醒)
大写P按cpu使用情况进行将进程排序、shift < 或 shift > 进行翻页、q退出
- 清除内存的缓存命令:echo 3 >/proc/sys/vm/drop_caches
- pgrep命令 :按条件查看进程;
语法:pgrep -l 关键字 ##查看包含关键字的进程
pgrep -l -u 用户名 ##查看该用户的进程 - pstree命令:树形显示进程列表,显示包含其子进程;
语法:
pstree -aup ##查看当前系统的进程树
pstree -ap 用户名 ##查看某用户的进程树
-
-
增:启动进程
- 启动方式:
手动启动:手动执行命令进行开启进程;
调度启动:根据任务计划定时自动启动进程; - 进程类型:
前台进程:在界面运行,必须等待结束后才能继续执行命令;
后台进程:不在操作界面运行。 - 前后台进程的管理:
- 启动前台进程:
- 启动后台进程:
运行命令加上 &,将现在运行的进程放到后台运行;例:cat /dev/zero >/dev/null & - 挂起前台进程到后台:
ctrl z ##将正在运行的前台进程调到后台并暂停; - 查看后台进程:
jobs -l - 恢复后台进程到前台:
fg 后台进程编号(并非pid) ##将后台暂停的进程调到前台继续运行
- 启动方式:
-
删:停止进程 kill/killall/pkill
- ctrl c ##终止前台正在运行的进程
- kill -9 PID ##强制终止单个进程
- killall -9 进程名 ##强制终止此进程名称的所有有关进程
- pkill -9 -u 用户名 ##针对此用户的所有进程强制终止
恢复误删除文件
- 恢复的工具:extundelete(无法恢复空文件)
- 恢复的原理:
在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区;
如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这样做的原因很简单,因为将文件删除后,仅仅是将文件的inode节点中的扇区link指针-1,实际文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统在创建新文件时重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,恢复工具也无力回天。所以!以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据成功的比例。 - 案例:
[root@localhost ~]# fdisk /dev/sdb ##分区为sdb1
[root@localhost ~]# partx -a /dev/sdb
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
[root@localhost ~]# mkdir /benet
[root@localhost ~]# mount /dev/sdb1 /benet
[root@localhost ~]# df -hT
[root@localhost ~]# touch /benet/1.file
[root@localhost ~]# cp /etc/fstab /benet
[root@localhost ~]# cp /etc/inittab /benet
[root@localhost ~]# echo "haha" >>/benet/haha.txt
[root@localhost ~]# ls /benet
1.file fstab inittab haha.txt
[root@localhost ~]# rm -rf /benet/*
[root@localhost ~]# ls /benet
[root@localhost ~]# umount /benet
[root@localhost ~]# yum -y install *2fs*
[root@localhost ~]# tar jxvf extundelete-0.2.4.tar.bz2
[root@localhost ~]# cd extundelete-0.2.4
[root@localhost extundelete-0.2.4]#./configure
[root@localhost extundelete-0.2.4]# make
[root@localhost extundelete-0.2.4]# make install
[root@localhost extundelete-0.2.4]# cd
[root@localhost ~]# extundelete /dev/sdb1 --inode 2 ##查看可以恢复的文件
[root@localhost ~]# extundelete /dev/sdb1 --restore-all ##恢复所有文件
[root@localhost ~]# ls RECOVERED_FILES/ ##验证恢复的文件
1.file fstab haha inittab
extundelete命令其他语法:
extundelete /dev/sdb1 --restore-file 文件名 ##恢复单个文件,只指定文件名,不指定文件的任何路径
extundelete /dev/sdb1 --restore-directory 目录名 ##恢复目录
raid管理
一、raid磁盘阵列概述
概述:
raid(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。
raid就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。raid可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。
二、raid工作模式
-
raid0(分条)
可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁盘的性能和吞吐量。
RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数据安全性要求不高的情况下才被使用。
容错性: | 无 | 冗余类型: | 无 |
---|---|---|---|
热备盘: | 无 | 读性能: | 高 |
随机写性能: | 高 | 连续写性能: | 高 |
需要的磁盘数: | 1+N(N不能为0) | 可用容量: | N*(多个磁盘的容量总和) |
典型应用 : 对数据安全性要求不高,但对读写性能要求极高,如图形工作站等应用
-
raid1(镜像)
把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,
具有很高的数据冗余能力,但磁盘利用率为50%,故成本最高,多用在保存关键性的重要数据的场合。
raid 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
容错性: | 有 | 冗余类型: | 镜像 |
---|---|---|---|
热备盘: | 有 | 读性能: | 低(与单块磁盘一样) |
随机写性能: | 低 | 连续写性能: | 低 |
需要的磁盘数: | 2*N(N代表磁盘数量) | 可用容量: | 50% |
典型应用 :对数据安全性可靠性要求高,但是读写效率低,用于服务器或数据库存储等;
-
raid5(奇偶校验)
raid 5可以理解为是raid 0和raid 1的折中方案。
raid 5可以为系统提供数据安全保障,但保障程度要比raid1低而磁盘空间利用率要比Mirror高。
raid 5具有和raid 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。
同时由于多个数据对应一个奇偶校验信息,raid 5的磁盘空间利用率要比raid 1高,存储成本相对较低。
容错性: | 有 | 冗余类型: | 奇偶校验信息存储 |
---|---|---|---|
热备盘: | 有 | 读性能: | 高(与raid0相近) |
随机写性能: | 较低 | 连续写性能: | 较低 |
需要的磁盘数: | 大于等于3 | 可用容量: | n-1 |
典型应用 :随机数据传输要求安全性高,如金融、数据库、存储等。
-
raid1+0(分条+镜像)
raid 10是一个raid 0与Raid1的组合体,所以它继承了raid0的快速和raid1的安全。
raid 1在这里就是一个冗余的备份阵列,而raid 0则负责数据的读写阵列。
情况是从主通路分出两路,做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。
容错性: | 有 | 冗余类型: | 镜像 |
---|---|---|---|
热备盘: | 有 | 读性能: | 高(与raid0相近) |
随机写性能: | 较低 | 连续写性能: | 较低 |
需要的磁盘数: | N*2 | 可用容量: | n/2 |
典型应用 :集成了RAID0和RAID1的优点;
总结:
三、制作raid
-
硬raid制作
- 戴尔R410服务器配置硬raid1: http://m.ouyaoxiazai.com/article/20/702.html
- IBM X3650服务器配置硬raid: http://blog.itpub.net/27771627/viewspace-1246405/
-
戴尔R740服务器配置硬raid
- 开机按f2进入system setup界面选择Device Settings
- 选择第1个进入raid卡配置
- 选择第1个 Configuration Management,进入raid卡管理
- 选择第1个 Configuration Management,进入raid卡管理
- 选择第二个 Create Virtual Disk,创建raid
- 创建双盘600G raid1
- 点击OK
- 鼠标下拉在Default Intialization 选择fast后,点击Create virtual Disk创建
- 选中Confirm后,点击yes
- 点击OK,完成raid1创建
- raid 0步骤一致
- 查看raid配置情况,可esc进入raid卡管理中选中第三个查看
- 最后点击右上角exit,退出f2,配置完成
- 开机按f2进入system setup界面选择Device Settings
-
软raid0制作:在本地虚拟机演示
- 添加三块硬盘sdb和sdc并进行分区,分为sdb1、sdc1,各5G,将其文件系统类型ID改为fd;
- 重读分区表;
- 安装软件包parted和mdadm工具;
-
mdadm命令创建raid 0;
mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
选项:
-C 指定Raid卷位置
-l 执行Raid等级
-n 指定分区数量 - 查看raid卷初始化进度,完成后/dev/md0卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md0 - 格式化/dev/md0卷;
- 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:0 /data1/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
-
软raid1制作:
- 分区为sdb2、sdc2,各5G,将其文件系统类型ID改为fd;
- 重读分区表;
- mdadm命令创建raid 1;
mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb2 /dev/sdc2 - 查看/dev/md1卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md1 - 格式化/dev/md1卷;
- 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:1 /data2/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
-
软raid5制作:
- 分区为sdb3、sdc3、sdd1,各5G,将其文件系统类型ID改为fd;
- 重读分区表;
- mdadm命令创建raid 5;
mdadm -C /dev/md2 -l 5 -n 3 /dev/sdb3 /dev/sdc3 /dev/sdd1 - 查看/dev/md2卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md1 - 格式化/dev/md2卷;
- 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:2 /data3/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
-
为raid1添加热备盘
注意
新增加的硬盘的容量大小需要大于等于原有硬盘;
如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘;
步骤- 分区为sdd2,大小为5G,并将文件系统类型改为fd,并且重读分区表;
- 将/dev/sdd2添加到RAID1,作为热备盘;
mdadm /dev/md/localhost:1 --add /dev/sdd2 - 查看raid1卷的详细信息;
cat /proc/mdstat
mdadm -D /dev/md/localhost:1 - 将raid1卷中的活跃卷/dev/sdb2模拟故障;
mdadm /dev/md/localhost:1 --fail /dev/sdb2 - 查看raid1卷的详细信息;
mdadm -D /dev/md/localhost:1 - 将故障卷在RAID1中进行移除;
mdadm /dev/md/localhost:1 -r /dev/sdb2 - 查看raid1卷的详细信息;
mdadm -D /dev/md/localhost:1
-
为raid进行动态扩容:
注解- raid0的存储方式为散列存储,无法进行扩容;
- 如若为raid1进行扩容,需要进行添加比当前工作硬盘容量大的硬盘,然后逐一替换掉原有工作硬盘,命令如下:
mdadm /dev/md/localhost:1 --add /dev/sdb3 ##添加热备盘
mdadm --grow /dev/md/localhost:1 --raid-devices=3 ##将默认两块工作硬盘数量调整到三块,热备盘自动变为工作磁盘
mdadm -D /dev/md/localhost:1 ##查看复制状态
mdadm /dev/md/localhost:1 --fail /dev/sdb2 ##模拟磁盘分区故障
mdadm /dev/md/localhost:1 -r /dev/sdb2 ##删除原有小的工作磁盘
mdadm -G /dev/md/localhost:1 --size=20G ##重新加载扩容后的大小
resize2fs /dev/md/localhost:1 ##重新读取大小 - 如若为raid5进行扩容,则直接添加硬盘即可,命令如下;
mdadm /dev/md/localhost:1 --add /dev/sdb3
mdadm --grow /dev/md/localhost:1 --raid-devices=4
mdadm -D /dev/md/localhost:1
resize2fs /dev/md/localhost:1 ##重新加载磁盘大小
-
制作raid1+0
- 分区为sdb4、sdc4、sdd3、sdd4各4G,将其文件系统类型ID改为fd;
- 重读分区表;
- mdadm命令创建第一个raid 1;
mdadm -C /dev/md3 -l 1 -n 2 /dev/sdb4 /dev/sdc4 - 查看/dev/md3卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md3 - mdadm命令创建第二个raid1;
mdadm -C /dev/md4 -l 1 -n 2 /dev/sdd3 /dev/sdd4 - 查看/dev/md4卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md4 - 格式化两个raid 1卷;
mkfs -t ext4 /dev/md3
mkfs -t ext4 /dev/md4 - 重启服务器,使其重新加载raid关系;
- 将上述两个raid1卷制作成为一个raid0;
mdadm -C /dev/md5 -l 0 -n 2 /dev/md/localhost:3 /dev/md/localhost:4 - 查看/dev/md5卷的详细信息;
cat /proc/mdstat
mdadm --detail /dev/md5 - 格式化新创建的raid0卷/dev/md5;
mkfs -t ext4 /dev/md5 - 重启服务器,使其重新加载raid关系;
- 挂载使用;
vi /etc/fstab
/dev/md/localhost:5 /data4/ ext4 defaults 0 0 - df -hT验证磁盘使用情况;
LVM逻辑卷管理与磁盘配额
一、LVM的基本概述和LVM的基本管理流程
-
LVM的基本概述
-
LVM的基本命令管理
功能 | 物理卷(PV) | 卷组(VG) | 逻辑卷(LV) |
---|---|---|---|
scan扫描 | pvscan 设备名 | vgscan | lvscan |
create建立 | pvcreate 设备名 | vgcreate | lvcreate |
display显示 | pvdisplay 设备名 | vgdisplay | lvdisplay |
remove删除 | pvremove 设备名 | vgremove 设备名 | lvremove |
extend扩展 | vgextend | lvextend | |
reduce减少 | vgreduce | lvreduce |
- VG卷组管理命令语法
vgscan ##扫描系统中已经存在的LVM卷组
vgcreate 自定义卷组名 添加到此卷组的物理卷名称 ##将一个或多个物理卷创建成一个卷组
vgdisplay 卷组名 ##显示系统中此卷组的详细信息
vgremove 卷组名 ##删除系统中的此卷组
vgextend 卷组名 物理卷名称 ##将新物理卷添加到已有卷组中,扩容
vgreduce 卷组名 物理卷名称 ##将已在卷组中的此物理卷在此卷组中删除
- LV逻辑卷管理命令语法
lvscan ##扫描系统中已建立的逻辑卷
lvcreate -L 容量 -n 逻辑卷名 卷组名 ##在指定的卷组中分割逻辑卷
lvdisplay 逻辑卷目录 ##查看此逻辑卷的详细信息
lvextend -L +扩容大小 /dev/卷组名/逻辑卷名 ##在当前卷组中为逻辑卷扩容
resize2fs /dev/卷组名/逻辑卷名 ##使系统重新读取文件系统大小
lvremove 逻辑卷目录 ##删除指定的逻辑卷
lvreduce -L -缩减大小 /dev/卷组名/逻辑卷名 ##缩小指定的逻辑卷容量
二、LVM卷的基本管理流程
a.添加硬盘,创建主分区(fdisk ),将其文件系统ID更改为8e,并重新读取分区表(partx -a),不格式化;
b.创建PV物理卷(pvcreate 分区名称),可指定多个分区,用空格隔开;
c.创建VG卷组(vgcreate 自定义卷组名 物理卷名),可添加多个物理卷,用空格隔开;
d.创建LV逻辑卷(lvcreate -L 容量-n 逻辑卷名 卷组名);
e.格式化LV逻辑卷(mkfs -t ext4 逻辑卷目录);
f.挂载使用,临时挂载(mount 逻辑卷目录 挂载点),永久挂载(vi /etc/fstab 逻辑卷目录 挂载点 ext4 defaults 0 0);
三、LVM卷的动态扩容
- 若卷组VG有可扩展空间
lvextend -L +扩容大小 逻辑卷目录
resize2fs 逻辑卷目录 ##重新读取逻辑卷大小
df -hT ##验证逻辑卷的大小
- 若卷组VG内无空间,则需要先添加物理卷,扩容卷组,在进行扩容逻辑卷
fdisk 磁盘名称 ##为新添加的硬盘分主分区,ID为8e
partx -a 磁盘设备名 ##重读分区表
pvcreate 分区名称 ##将新建的分区更改为物理卷
vgextend 卷组名 分区的目录 ##将刚创建完成的物理卷扩容到已有卷组中
lvextend -L +扩容大小 逻辑卷目录 ##将卷组VG中的容量扩容给逻辑卷
或lvextend 逻辑卷目录 物理卷目录 ##将物理卷中的所有PE都添加给逻辑卷
resize2fs 逻辑卷目录 ##重新读取逻辑卷大小
df -hT ##验证逻辑卷的大小
五、磁盘配额
-
作用:限制普通用户使用磁盘资源;
-
条件:需要linux内核支持,安装quota软件;
-
作用范围:文件系统(分区);
-
应用对象:用户(指定的账户)、组账户(注:组必须为基本组,否则不会生效,对组中所有以此组为基本组的用户生效,而不是组内所有用户,并且符合条件的组中用户共用一个配额,并且某个用户);
-
限制类型:
- 硬盘容量:限制用户可用此磁盘的大小,默认单位为KB;
- 文件数量:限制用户可在此磁盘内拥有的文件个数(通过i节点进行限制);
-
限制方法:
- 软限制:软性限制,可以被超越,但会有警告;
- 硬限制:硬性限制,不可以被逾越;
-
总结:linux的磁盘限额是通过软、硬限制用户或组使用文件系统中的磁盘大小和文件数量;
-
流程
- 安装quota工具;
mount /dev/cdrom /mnt ##挂载光盘 rpm -ivh /mnt/Packages/quota-3.17-20.el6.x86_64.rpm --nodeps ##安装quota工具
- 关闭selinux;
getenforce sed -i "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config reboot
-
分区、格式化在此不再过多介绍,以支持配额的方式进行挂载;
- 临时挂载:
mount -o remount,usrquota,grpquota 分区目录 挂载点
- 永久挂载:
vi /etc/fstab 分区目录 挂载点 文件系统格式 defaults,usrquota,grpquota 0 0
-
生成配额文件到挂载点目录;
quotacheck -ugcv 挂载点目录 ls 挂载点目录 ##验证配额文件的生成
- 准备需要做配额的用户和组,并且赋予挂载点目录的权限;
useradd 或groupadd 创建用户或者组 usermod -g 修改用户的基本组 passwd 用户名 设置用户的密码 chmod 777 挂载点目录 ##为测试挂载点目录给予最大权限
- 设置用户或者组的配额;
setquota -u 用户名 磁盘大小软限制 磁盘大小硬限制 文件数量软限制 文件数量硬限制 挂载点 setquota -g 组名 磁盘大小软限制 磁盘大小硬限制 文件数量软限制 文件数量硬限制 挂载点 注:硬盘大小限制单位为KB,文件数量单位为个;
- 启用配额;
quotaon -a 或quotaon -ugv 挂载点 #两种方法都可以,前者较为常用
- 验证配额是否成功;
su - 用户名 ##切换至测试用户 touch 命令创建文件 ##验证文件数量配额限制 dd if=/dev/zero of=测试目录下文件 bs=每次拷贝的大小 count=次数 ##根据实际情况,复制数据流到测试目录中
- 查看分区或用户的配额使用情况;
quota -u 用户名 ##查看此用户的配额使用情况 quota -g 组名 ##查看此组的配额使用情况 repquota 挂载点 ##查看分区的配额使用情况
文件存储与磁盘管理
一、认识文件存储
-
-
结构
inode节点:简称i节点,存放文件的信息(权限、时间等),以及文件的信息所在的Block位置;
Block块:以扇区(每个512字节)组成,每个Block 4K的大小,真正存放数据的单位;注:文件的文件名并没有存储在文件的i节点或者Block内,而是存放在文件所在目录的Block中;
-
读取操作
系统受到对改文件名的请求,找到文件名所在的目录,找到目录的Block后搜寻该文件名的i节点号码,进而获取到该文件的i节点信息,验证权限、读取该文件所在的Block,最后找到该Block,进行读取; -
删除操作
删除操作其实只是删除了目录的Block中的文件名,然而i节点和文件所属Block块并没有删除,但是文件的i节点处会标记一个值为link,表示i节点无任何链接的文件名,那么系统就会认为此i节点无占用。当新建文件后,新文件会优先占用这些有link标记的i节点,进而覆盖i节点所关联的block。当无此类i节点,那么新建文件时,就会创建新的i节点。也就是说磁盘存放数据时,考虑的因素有两个,一个是Block块,也就是容量,另一个就是i节点的数量值; -
文件的软连接
在源文件的基础上,在软连接所在的目录Block中创建文件名,同时为软连接创建新的i节点,但是i节点指定的文件存放位置就是源文件的位置,也就是说源文件的更改、删除操作会直接影响软连接文件; -
文件的硬连接
在原有文件的基础上,并无新建i节点、Block,而是新建一个硬连接文件名,该文件与源文件使用同一i节点、Block块。但是在源文件的i节点的link标记处会+1,表示该i节点关联了两个文件名,即使源文件被删除,那么只会在源文件的i节点的link处-1,系统不会认为该i节点无用,所以硬连接文件工作正常,但由于两者使用相同i节点,硬连接文件会根据源文件内容的改变而改变;
那么硬连接与复制文件的不同之处就是:节省i节点的占用,并且可以实现两个文件的内容同步,而复制文件无法做到以上两点;stat 文件位置 #此命令可以查看文件的i节点、Block块、权限等所有详细信息
-
管理磁盘分区
-
何为磁盘?何为文件系统?
为了碰见系统出现磁盘不足的情况,应添加磁盘增大存储空间;
若把磁盘必做楼盘的话,那么分区则是每一间屋子,文件系统就是没意见物资的装修方式(机房、教室);- 文件系统:外部存储设备上管理和组织文件的方法
-
分区方式:
- MBR:支持单个磁盘分区数量为4个
- GPT:支持单个磁盘分区数量为128个
-
磁盘的分区类型
-
磁盘分区流程
[root@localhost ~]# fdisk -l /dev/sdb
-
流程
- fdisk -l #查看系统磁盘设备
- fdisk #磁盘设备名称
- 按n #新建分区
- 按p 新建主分区,e为扩展分区,l为逻辑分区
- 按顺序输入编号
- 开始位置默认回车即可
- 结束位置,手动输入大小+5G,可随意指定大小,若直接回车则使用磁盘的所有空间
- p验证分区情况,w保存退出,q不保存退出,d删除分区,t用来更改分区的文件系统类型,L查看文件系统类型的列表
三、管理文件系统
- 文件系统:明确主机中的磁盘或者分区上文件的方法和数据结构
- 配置系统分区:
mkfs -t ext4分区设备名称 #格式化文件系统为ext4格式的分区
mount 分区设备名称 挂载点 #挂载到系统
- 配置交换分区
mkswap 分区设备名称 #格式化文件系统为swap格式的分区,注:分区是需要指定分区类型为82
swapon 分区设备名称 #开启交换分区
free -m #查看系统内存信息
四、挂载分区或文件到系统
-
挂载分到系统中
- 临时挂载:mount命令
语法: 例如: mount /dev/sdb1 /data1 #挂载点必须存在,可提前创建
- 永久挂载
vi /etc/fstab #开机加载此文件 /dev/sdb1 /data1 ext4 defaults 0 0 mount -a #重新读取文件,加载挂载关系 df -h mount #查看系统中所有文件挂载关系
-
挂载iso镜像文件到系统中
- 临时挂载
语法: mount -o loop 镜像文件位置 挂载点
- 永久挂载
vi /etc/fstab #开机加载此文件 iso存放位置 挂载点 iso9660 defaults,loop 0 0
- 卸载
语法: umount 挂载点
五、扩展
- 当硬盘大于2T时,需要将其分区格式改成GPT,分区方式为parted
例如:
[root@localhost ~]# parted /dev/sdb
(parted) mklabel gpt
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志
(parted) mkpart primary 0 5GB
忽略/Ignore/放弃/Cancel? i
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 标志
1 17.4kB 5000MB 5000MB primary
(parted) quit
注:创建分区使用mkpart命令,删除分区使用rm 分区编号;
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
[root@localhost ~]# mount /dev/sdb1 /data1
[root@localhost ~]# ls /data1
- 挂载U盘
ntfs格式U盘:
编译安装ntfs-3g软件包
mount -t ntfs-3g /dev/sdb1 /data1
fat32格式U盘:
mount -t vfat /dev/sdb1 /data1
步骤:
1.插入U盘
2.重启服务器,开机后选择最后一块硬盘
3.如若U盘的文件系统格式是ntfs格式,那么需要编译安装软件包ntfs-3g,编译选项
./configure -->make -->make install
4.使用命令挂载
mount -t ntfs-3g /dev/sdb1 /data1
5.如若U盘格式是fat32,无需安装软件包,直接挂在使用
mount -t vfat /dev/sdb1 /data1