磁盘管理、定时任务

磁盘的基本结构

盘片

磁道

扇区 512B

柱面

磁头

分区主要分三类:主分区<-----扩展分区<-------逻辑分区
逻辑分区属于扩展分区,扩展分区属于主分区

MBR与GPT区别:MBR最大支持2TB,最大支持4个分区,GPT可以最多分128个分区
MBR ----->分区工具fdisk(最多可分4个分区,通常用于<2TB的磁盘空间)
GPT ------>分区工具gdisk(最多可分128个分区,通常用于>2TB的磁盘空间)
fdisk分区
命令:m 查看帮助
q 退出
n 新建分区(p主分区 e扩展分区)
p
w 保存
d 删除分区
l 查看分区

制作文件系统并挂载(暂时挂载)
mount 磁盘分区(源) 文件夹 #挂载
umount 文件夹 #卸载
mount -a 让/etc/fstab配置文件立即生效
mount -o 挂载选项的指定

使用文件系统的流程

1、装硬盘

2、查看当前系统硬盘
[root@localhost a]# lsblk 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   18G  0 lvm  /
  └─centos-swap 253:1    0    1G  0 lvm  [SWAP]
sdb               8:16   0   40G  0 disk 
sdc               8:32   0  3.9T  0 disk 
sr0              11:0    1  4.3G  0 rom  

3、分区
	2TB 以下的硬盘,使用MBR分区
	2TB 以上的硬盘,使用GPT分区
	
	fdisk /dev/sdb

4、格式化分区(将分区做成文件系统)
	mkfs.xfs /dev/sdb1

5、挂载分区
	mount /dev/sdb1  /a

6、检测
	df
		-h : 显示硬盘大小单位

#注:挂载哪个硬盘则显示对应硬盘里面的内容

开机自动挂载
mkfs # 格式化分区
cat /etc/fstab #存放挂载的磁盘文件
fstab文件格式:
UUID 挂载点
查看UUID:blkid
partprobe #更新分区表
lsblk #查看所有硬盘下的分区

GPT的分区方式
1、GPT和MBR之间的区别?
MBR分区格式支持2TB以下硬盘分区,GPT分区格式支持2TB以上硬盘分区。

2、准备一块2TB以上硬盘
#注:分2TB以上硬盘,fdisk可以使用但是不推荐。

3、GPT分区步骤
n : 创建一个新的分区
d : 删除一个分区
p : 查看分区列表
w : 保存分区
?: 查看帮助

4、格式化文件系统
mkfs.xfs /dev/sdc1

5、挂载目录
mount /dev/sdc /a

3、硬盘自动挂载
1、开机自动挂载
开机自动执行:/etc/rc.local

chmod +x /etc/ec.local

echo "mount /dev/sdc1 /root/test" >> /etc/rc.local

2、修改配置文件 /etc/fstab
/dev/sdc100 /opt xfs defaults 0 0
设备 挂载点 文件系统类型 挂载类型 是否备份 是否检测
UUID=1327e665-44b3-4223-a93b-69c36ec602f9 /root/oldboy xfs defaults 0 0

/dev/sdc100 等价于 UUID

3、查询设备UUID
[root@localhost ~]# blkid
/dev/sdc1: UUID=“b5797ad6-9b98-452c-8962-fa12f6590fa6” TYPE=“xfs” PARTLABEL=“Linux filesystem”

4、制作SWAP分区
1、创建一个硬盘分区

2、制作swap分区
mkswap /dev/sdb3

3、激活swap
swapon /dev/sdb3

4、关闭swap
swapoff

5、自动挂载
5.1、
echo “mkswap /dev/sdb3” >> /etc/rc.local
echo “swapon /dev/sdb3” >> /etc/rc.local
5.2、
echo “/dev/sdb3 swap swap defaults 0 0” >> /etc/fstab

5、修复服务器⽂件系统

1.dd命令(模拟服务器系统故障)
dd if=/dev/zero of=/dev/sdb bs=500M count=1 
 
if : 从哪里读文件
of : 写入到哪里
bs : 写入500M
count : 写一块

2、模拟文件系统出问题

1、直接向硬盘中写数据,不能测试向分区写数据
2、卸载之后重新挂载
[root@localhost ~]# mount /dev/sdc1 /root/test
mount: mount /dev/sdc1 on /root/test failed: Structure needs cleaning

3、对文件系统进行修复
xfs_repair [磁盘或分区路径]

注: xfs_repair修改硬盘之后,硬盘数据丢失,所以对重要的数据要进行数据备份

3、文件系统的备份与恢复
备份:另外在保存一份
恢复:将以前保存的数据进行还原

touch 1.txt
echo aaaa > 1.txt
cp 1.txt 2.txt

rm 1.txt

cp 2.txt 1.txt

1.log 1T = 1024G

全量备份和增量备份
全量备份:将需要备份的文件全部复制一份
增量备份:在原来备份基础上,把新增数据重新备份一份

备份与恢复的命令
xfsdump : 备份的命令
xfsrestore : 恢复的命令

备份的步骤

1、安装备份命令
[root@localhost test]# yum install xfsdump -y

2、备份的等级
0 全量备份

1 ~ 9 增量备份(等级)

3、备份的参数
-L :记录每次备份的地方
-M :注释,此次备份的注释
-l :指定备份的等级
-f :备份的文件名称
-I :查看备份信息

4、备份的条件(限制)
1、必须使用root权限
2、只能备份已经挂载的内容
3、只能备份xfs文件系统
4、只能够用xfsrestore来恢复

5、备份的命令格式
xfsdump [参数] 备份路径
xfsdump -L sdb1_bak -M “sbd1_from_xxx” -l 0 -f sdb1_from_bak_1 /root/oldboy

6、数据恢复
xfsrestore

7、恢复数据的参数
-f : 指定备份的文件路径

8、恢复的格式
xfsrestore [参数] 恢复的路径
[root@localhost oldboy]# xfsrestore -f /root/sdb1_from_bak_3 /root/oldboy/

4、LVM

1、什么是lvm

你如何保证你的硬盘空间恰好够用?
如果你的硬盘你够用了怎么扩容?

LVM是文件系统管理工具

/root/oldboy —> lv[5G]
/root/oldboy —> lv[3G]

2、LVM的优点
1、可以动态扩容与缩容
2、可以将新增加的硬盘添加到VG存储池
3、可以突破物理存储卷的限制

3、使用lvm
1、安装lvm软件包
yum install lvm2 -y
2、将磁盘交给pv
pvreate [磁盘|磁盘分区]
3、查看pv
pvs
pvscan
4、创建vg
vgcreate [vg名称] [pv路径]
5、查看vg
6、创建lvm逻辑卷(lv)
-L : 创建逻辑卷的大小
-n : 逻辑卷的名字
lvcreate [参数] 逻辑卷名称
7、制作文件系统
mkfs.xfs /dev/vg1/xxx

8、挂载文件系统
	mount [lv的路径] [挂载点的路径]

动态扩容

1、增加一块硬盘

2、创建pv
	pvcreate  /dev/sdd

3、直接扩容给VG
	vgextend [vg的名称] [pv]

4、扩容给LV
	lvextend -L [+100G] [lv路径]

5、刷新
	xfs_growfs /dev/vg1/vg1_test01

动态缩容

1、卸载lv
[root@www ~]# umount /root/vg02

2、删除lv
[root@www ~]# lvremove /dev/vg1/vg1_test01 
Do you really want to remove active logical volume vg1/vg1_test01? [y/n]: y
  Logical volume "vg1_test01" successfully removed
  
3、删除vg
[root@www ~]# vgremove vg1
  Volume group "vg1" successfully removed

4、删除PV
[root@www ~]# pvremove /dev/sdb1 
  Labels on physical volume "/dev/sdb1" successfully wiped.
[root@www ~]# pvremove /dev/sdc 
  Labels on physical volume "/dev/sdc" successfully wiped.
[root@www ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/sda2  centos lvm2 a--   <19.00g       0 
  /dev/sdb2  vg2    lvm2 a--   <40.00g  <40.00g
  /dev/sdd   vg2    lvm2 a--  <100.00g <100.00g
快照

1、挂载硬盘

2、创建PV

3、创建VG

4、创建LV

5、格式化文件系统

6、挂载

7、造数据
[root@www ~]# echo 111 >> /vg/1.txt

8、拍摄快照
[root@www ~]# lvcreate -L +1G -s -n vg_from_vg100_bak /dev/vg100/vg_from_vg100
Logical volume “vg_from_vg100_bak” created.

lvcreate -L [快照大小] -s(创建快照) -n [快照的名字] [拍摄快照的目标]

9、查看快照
[root@www ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Conver
vg_from_vg100 vg100 owi-aos— 1.00t
vg_from_vg100_bak vg100 swi-a-s— 1.00g vg_from_vg100 0.01
10、恢复数据
[root@www ~]# mount -o nouuid /dev/vg100/vg_from_vg100_bak /vg_bak
#备注:同一个UUID只能挂载一次,如果需要挂载多次,则需要使用(-o nouuid)
快照恢复相当于重新挂载,优点是占用空间小。

定时任务1

Crontab表达式

*  *  *  * * 
分 时 日 月 周

每天的凌晨2点   02:00     00 02 * * *
每月执行一次    00  00  01  * *
每个月的一号零点零时零分同时这一天时星期六 00  00  01  *  6

2、系统级别的计划任务
1、/etc/crontab
2、如下的目录
/etc/cron.hourly/ # 系统定时任务每个⼩时运⾏这个⽬录⾥的内容
/etc/cron.daily/ # 系统定时任务每天运⾏这个⽬录⾥的内容
/etc/cron.weekly/ # 系统定时任务每周运⾏这个⽬录⾥的内容
/etc/cron.monthly/ # 系统定时任务每⽉运⾏这个⽬录⾥的内容
3、用户级别的计划任务
crontab -e
-e : 编辑计划任务
-l : 查看计划任务
#注:用户级别的计划任务存放在/var/spool/cron/,不同的用户存放的计划任务是以其自己的名字命名的脚本
4、crontab语法
#1 3 5
00 00 1,3,5 * *

#1到5号
00 00 1-5

#每几分钟,每几个小数,每几天
0/2 /2
00 0/2 00 /2
00 00 0/2 00 00 /2

猜你喜欢

转载自blog.csdn.net/givenchy_yzl/article/details/114834959