1.linux系统文件属性
ls -lhi
-l 长格式
-h 人性化
-i inode
-d 看目录自身信息
Linux: ext4 xft
inode:
源自文件系统
inode包含文件的元信息,具体包含:
文件的字节数
文件拥有的user ID
文件的group ID
文件的读、写、执行权限
文件的时间戳,共有ctime:inode上次变动时间,mtime:上次内容变动时间,atime:上次打开时间
链接数,有多少个文件名指向这个inode
文件数据block位置
2.Linux系统文件类型
格式 说明
- 普通文件(文本、二进制、压缩、图片等)
d 目录文件
b 设备文件(块文件)存储设备硬盘 /dev/sda, /dev/sda1
c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
s 套接字文件,进程间通信
p 管道文件
l 链接文件
查看文件类型命令file
file /etc/hosts
file /bin/ls
file /dev/sda
file /dev/tty1
file /etc/grub2.cfg
file /home
file /run/systemd/initctl/fifo
3.Linux系统链接文件
3.1 软链接
软链接示例1:
# root下的file链接到/tmp下并重命名
touch /root/file
ln -s /root/file /tmp/file_bak
ll /tmp/file_bak
软链接示例2:
#目录软链接
mkdir /soft/nginx1.1 -p
ln -s /soft/nginx1.1/ /soft/nginx
ll /soft/nginx
软链接作用:
软件升级
企业代码发布
不方便移动目录
3.2 硬链接
多个文件名指向同一个索引节点(node)是正常且允许(文件有多个入口),成为硬链接。
格式:ln 源文件 硬链接文件
设置硬链接,防止重要文件误删
目录不能创建硬链接,硬链接可以用rm删除
示例:
ln /root/file /tmp/file_hard
ln /tmp/file_hard
3.3 软硬链接区别
1.ln创建硬链接,ln -s 创建软链接
2.目录不能创建硬链接,且硬链接不可跨分区系统
3.目录软链接支持跨分区
4.硬链接文件和源文件的inode相同,软链接文件和源文件的inode不同
5.删除软链接文件,对源文件无影响
6.删除硬链接,对源文件无影响
7.删除源文件,软链接失效,硬链接无影响
Linux压缩包管理
Linux常见后缀名对应的压缩工具
后缀 工具 说明
.gz gzip 压缩工具压缩的文件
.bz2 bzip2 压缩工具压缩的文件
.tar tar 无压缩功能,只是合并成一个文件
.tar.gz 先用tar打包,再用gzip压缩
.tar.bz2 先用tar打包,再使用bzip压缩
zip压缩工具
yum -y install zip unzip
zip:
-q #不显示执行过程
-m #压缩文件,删除源文件
-r #递归处理,将指定目录下的所有文件和子目录一并处理
unzip:
-d<目录> #指定文件解压后要存储的目录
-q #不显示执行过程
zip filename.zip filename
zip -r dir.zip dir/
unzip filename.zip
unzip filename.zip -d /usr/local
tar压缩工具
归档,不带压缩功能
语法:tar [-zjxcvfpP] filename
c 创建新的归档文件
x 解包
t 列出文件列表
v 输出过程
f 指定包文件名,f写在zuihou
C 指定解压目录
z 归档后,使用gzip压缩
j 归档后,使用bzip2压缩
J 归档后,使用xz压缩
X 排除多个文件,写入需要排除的文件名
h 打包软链接
--hard-dereference 打包硬链接
--exclude 打包时,写入要排除的文件或目录
P 参数作用: 保留绝对路径,即允许备份数据中含有根目录 ‘/’。
常用打包压缩组合
tar -czf #打包tar.gz
tar -cjf #打包tar.bz2
tar -zxf #解压tar.gz
tar -jxf #解压tar.bz2
tar -xf #自动选择解压模式
tar -tf #查看内容
yum install -y gzip bzip2 xz
1.打包
tar czf test.tar.gz test/ test2/
tar cjf test.tar.bz2 dir.txt dir/
#链接文件,真实文件
tar czfh local.tar.gz etc/rc.local
#打包/tmp下的所有文件
find tmp/ -type f | xargs tar czf tmp.tar.gz
tar czf tmp.tar.gz | xargs find tmp / -type f
tar czf tmp.tar.gz `find tmp/ -type f`
2.排除文件,并打包
#排除单个文件
tar czf etc.tar.gz --exclude=etc/services etc/
#排除多个文件,创建一个排除的文件列表
vim exclude.list
oldboy2.txt
oldboy5.txt
tar czfX test.tar.gz exclude.list oldboy*.txt
4.xfs文件系统恢复
提供了xfsdump和xfsrestore工具协助备份XFS文件系统的数据,xfs按inode顺序备份一个XFS文件系统。
centos7默认的文件系统xfs,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可支持8eb,单个文件16tb,扩展性高,还可以通过xfsdump,xfsrestore来备份和恢复。
原始备份方法:cp
XFS不需在备份前卸载,对使用中的XFS文件系统做备份就可以保证镜像的一致性,XFS的备份和恢复过程中可以中断,无须冻结文件系统,xfsdump提供了高性能的多线程备份操作-它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。
0级别 完成备份
1到9级别 增量备份
完成备份,备份所有文件
增量备份,将之前所有备份之后变化的文件做备份
差异备份,将第一次完成备份以来有变化的文件进行备份。
实验一:
添加硬盘-分区-格式化-挂载
ls /dev/sd*
fdisk /dev/sdb 第二块硬盘
p # 查看当前分区表
n #创建新的分区
p #主分区
+1G #分配大小
w #保存
ls /dev/sd* #查看
格式化
mkfs.xfs /dev/sdb1 --------mkfs.ext4 /dev/sdb1
mkdir /sdb1
mount /dev/sdb1 /sdb1/ #挂载
cd /sdb1/
cp /etc/passed ./
mkdir test
touch test/a
tree /sdb1/
备份整个分区
xfsdump -f 存放位置,要备份路径或者设备文件
xfsdump -f /opt/dump_sdb1 /dev/sdb1或者/sdb1 #备份sdb1整个分区
->dump_sdb01 #做个标识
->sdb1 #指定设备的标识
指定备份时免交互操作,定时备份用到。
xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M sdb1
-L 记录备份session的标识
-M 记录存储媒体的标识
指定只备份分区中的某个目录或文件
xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot
xfsdump -I #查看备份记录
xfsdump -i
ls /var/lib/xfsdump/inventory #备份记录 的文件位置
实验二:测试恢复:
删除备份的内容
ls
pwd
rm -rf ./*
文件系统的恢复
xfsrestore -f 指定恢复文件的位置 指定存放恢复后文件的路径
xfsrestore -f /opt/dump_sdb1 /sdb1 恢复到/sdb1下
恢复单个文件 -s 指定单个文件或目录 ,使用相对路径
xfsrestore -f /opt/dump_grub2 -s grub2/gurb.cfg /var/test/
xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/
xfsdump 注意事项
1.不支持没有挂载的文件系统备份。
2.必须使用root的权限
3.只能备份xfs文件系统
4.备份下来的数据只能让xfsrestore解析
5.透过文件系统的UUID来分辨各个备份档,因此不能备份具有相同uuid的文件系统。
增量备份:
在一次全备份或者上一次增量备份后,每次的备份只需备份与前一次相比增加或者被修改的文件,
这意味着,第一次增量备份的对象是进行全备份后所产生的增加或修改的问题件,第二次增量备份的对象是进行第一次增量备份后所产生的增加或修改的文件。
优点:备份的数据量小,备份时间段。
缺点: 恢复相对比较麻烦。
实验三:增量备份
xfsdump -f /opt/test-full /sdb1 -L test-full -M media0 #完全备份
对源文件 增加内容,然后进行第一次增量备份
xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0 # 做一个等级为1的备份
再次增加内容,进行level 2 级别的增量备份
xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0
根据备份的内容,进行数据恢复
1.恢复完全备份
2.恢复最后一次增量备份,(2次增量备份都是level 1)
3.如果级别是1.2. 按照先完全备份,再恢复level1,最后level2.按照顺序依次恢复。
xfsrestore -f /opt/test-full /sdb1/ #恢复完全的备份
tree /sdb1/
xfsrestore -f /opt/test-back1 /sdb1/ #恢复level1
xfsrestore -f /opt/test-back2 /sdb1/ #恢复level2