您的位置:首页 > 运维架构 > Linux

文件的基本管理和XFS文件系统备份恢复

2016-06-16 07:28 465 查看
1.1 Linux系统目录结构,相对/绝对路径。 1.2 创建/复制/删除文件,rm -rf / 意外事故 1.3查看文件内容 1.4实战-xfs文件系统的备份和恢复

1.1 Linux系统目录结构,相对/绝对路径。

1.1.1 linux系统目录结构

Linux系统中有没有所谓的本地磁盘C D E?
/ 通常称为根分区。 所有的文件和目录的起始点 只有root用户对此目录拥有写权限。

/etc /etc/passwd 账号文件 /etc/init.d/network等。
配置文件 包含所有应用程序的配置文件,也包含启动、关闭某个特定程序的脚本,

/boot 存放Linux系统启动时需要加载的文件。 grub2 kernel
/var 是一个可增长的目录,包含很经常变的文件。 例如,/var/log(系统日志)
/root 管理员所有数据。 root用户的家目录
/tmp 临时文件存储位置 不能存放重要的数据
/usr usr表示的是unix software source
/usr/src 源代码目录
/bin 命令 此目录包含二进制可执行文件。
/sbin 系统命令 ,此目录中的命令主要供系统管理员使用,以进行系统维护
/mnt 挂载目录 挂载点,系统管理员可用于临时挂载文件系统。/media
/dev 包含设备文件。在Linux中,一切都被看做文件。终端设备、磁盘等等都被看做文件.
/home 普通用户所有数据存放在这个目录下
/proc 我们可以通过直接访问这个目录来获取系统信息。
查看咱们的内存信息,CPU信息
cat /proc/meminfo | grep “Mem”

查看cpu
cat /proc/cpuinfo

/lib 存放系统的库文件
lib库包括动态运行库和静态库。
lib***.a是静态库
lib***.so是动态库

静态库在编译时被加载到二进制文件中
动态库在运行时加载到进程的内存空间中

其作用类似于Windows里的.dll文件
这些库就是为了让你的程序能够正常编译运行的。

总结:
本地管理员大多数情况下将额外的软件安装在/usr/local目录下并符号连接在/usr/local/bin下的主执行程序。

  ·系统的所有设置在/etc目录下。
不要修改根目录(“/”)或/usr目录下的任何内容,目录最好和LINUX发布时保持一致。 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin,
所有的文件在单一的目录树下。没有所谓的“驱动符

6 1

1.1.2 绝对路径和相对路径

路径:在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。
绝对路径:
在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从/开始的,它一定是绝对路径

[root@localhost ~]# pwd
注:判断用户当前所处的位置,也就是说他到底位于哪?
/root
注:用户当前位于/root;
[root@localhost ~]# cd /etc/sysconfig/network-scripts
:我们以绝对路径方式进入/目录下;
[root@localhost doc]# pwd
:判断用户当前所处的位置
/etc/sysconfig/network-scripts
注:用户位于/etc/sysconfig/network-scripts,看来已经达到我们的目的.

ok!!!
相对路径:
相对路径是以 . 或 .. 开始的,
.表示用户当前操作所处的位置
.. 表示上级目录

实验1 :

[root@localhost ~]# pwd
:通过pwd来判断当前用户所在的位置;
/root :得出目录处于/root目录中;
[root@localhost ~]# cd .

:我们进入.
[root@localhost ~]# pwd

:判断当前用户所处的位置;
/root

:得出在/root 目录中 ;

举例实验: 实验2
确定当前的位置是/root
[root@localhost ~]# cd ..

:我们切入/root的上级目录
[root@localhost /]# pwd

:判断当前用户所处的位置。
/

:用户当前位于/(根目录)中;

1.2. 创建/查看/复制/删除 文件和文件夹

1.2.1-1 创建文件和文件夹
touch 
作用:常用来创建空文件
语法: touch 文件名
[root@xuegod60 ~]# touch san.txt

mkdir
作用:创建目录
语法:mkdir 目录名
[root@xuegod60 ~]#mkdir test
[root@xuegod60~]# mkdir -p test/a/b/c 创建嵌套目录, test下包含a目录,a包含b,b包含c
-p 再创建时连通父目录一起创建

1.3 查看文件

cat

作用:查看文件内容
语法:cat 文件名

more + 文件名 分页

例:



more /etc/passwd
按下回车刷新一行,按下空格刷新一屏
q 退出

less  查看文件名字 分页

q 退出
使用光标键可以向上翻页

linux中more与less的区别
more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便。

less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。,空格键是向下翻页,Enter键是向下翻一行 只是没有%比

head 前几行

-n 数字 显示多少行
[root@xuegod60~]# head -3 /etc/passwd

tail

从第后一行开始,查看文件,默认显示最后10行
-n 显示多少行
-f 动态显示数据(不关闭)  常用来查看日志

实验

1.
root@xuegod61~]# vim aa.txt
[root@xuegod61~]# vim aa.txt
[root@xuegod61~]# cat aa.txt
11111111111111111
22222222222222222222
33333333333333333333
44444444444444444444
55555555555555555555
[root@xuegod61~]# head -3 aa.txt
11111111111111111
22222222222222222222
33333333333333333333
[root@xuegod61~]# head -3 aa.txt | tail -1
33333333333333333333
[rot@xuegod61~]#:

2. [root@xuegod61 ~]# cataa.txt
11111111111111111
22222222222222222222
33333333333333333333
44444444444444444444
55555555555555555555
[root@xuegod61~]# grep 3 aa.txt 3 关键字
33333333333333333333
[root@xuegod61~]#

3

[root@xuegod61~]# cat aa.txt
11111111111111111
22222222222222222222
33333333333333333333
44444444444444444444
55555555555555555555
[root@xuegod61~]# tail -3 aa.txt
33333333333333333333
44444444444444444444
55555555555555555555
[root@xuegod61~]# tail -3 aa.txt | head -1
33333333333333333333
[root@xuegod61~]#

复制文件:

cp
cp
作用:复制文件
语法:cp 源文件 目标文件



-r 包含子目录和文件 。[root@xuegod60 ~]# cp-r /boot/grub2/ /root/ 注意:R可以大写



删除文件和文件夹

rm
作用:删除文件或目录
语法: rm -rf 文件或目录名
-r 递归删除(可以删除目录和目录里面的东西)
-f 强行删除

1.4 实战:xfs文件系统的备份和恢复

XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。与传统的UNIX文件系统不同,XFS不需要在dump前被卸载;对使用中的XFS文件系统做dump就可以保证镜像的一致性。这与XFS对快照的实现不同,XFS的dump和restore的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。

准备一个测试分区

添加一块磁盘:

准备一个测试分区

添加一块磁盘:
[root@xuegod60 ~]# fdisk /dev/sdb #指定分区的设备
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n #创建一个新的分区
Partition type:
p primary (2 primary, 0 extended, 2 free) #创建主分区
e extended #创建扩展分区
Select (default p):
Using default response p
Partition number (3,4, default 3): #指定分区号
First sector (25593856-41943039, default 25593856): #指定分区的开始柱面
Using default value 25593856
Last sector, +sectors or +size{K,M,G} (25593856-41943039, default41943039): +1G #指定分区大小
Partition 3 of type Linux and of size 1 GiB is set

Command (m for help): p #打印分区表

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00083333

Device Boot Start End Blocks Id System
/dev/sdb1 25593856 27691007 1048576 83 Linux

Command (m for help): w #保存
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device orresource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

重新获取分区表

[root@xuegod60 ~]# ls /dev/sdb*
/dev/sdb
[root@xuegod60 ~]# partprobe /dev/sdb
[root@xuegod60 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1

格式化分区,并进行挂载

[root@xuegod60 ~]# mkfs.xfs /dev/sdb1 #格式化分区
[root@xuegod60 ~]# mkdir /sdb1 #创建挂载点
[root@xuegod60 ~]# mount /dev/sdb1 /sdb1/ #挂载

准备备份测试文件
[root@xuegod60 ~]# cp /etc/passwd /sdb1/
[root@xuegod60 ~]# mkdir /sdb1/test
[root@xuegod60 ~]# ls /sdb1/
passwd test

1)对整个分区进行备份

[root@xuegod60~]# xfsdump -f /opt/dump_sdb1 /sdb1
注意:备份的设备这里不能写成/sdb1/
xfsdump:using file dump (drive_simple) strategy
xfsdump:version 3.1.4 (dump format 3.0) - type ^C for status and control

============================= dump labeldialog ==============================

pleaseenter label for this dump session (timeout in 300 sec)
-> dump_sdb1
#指定备份标签 备份后文件的名称
sessionlabel entered: "dump_sdb1"

---------------------------------end dialog ---------------------------------

xfsdump:level 0 dump of xuegod60.cn:/sdb1
xfsdump:dump date: Thu Jan 28 22:01:25 2016
xfsdump:session id: 29356f1f-8957-4fe0-ad70-2ae087f27abe
xfsdump:session label: "dump_sdb1"
xfsdump:ino map phase 1: constructing initial dump list
xfsdump:ino map phase 2: skipping (no pruning necessary)
xfsdump:ino map phase 3: skipping (only one dump stream)
xfsdump:ino map construction complete
xfsdump:estimated dump size: 25536 bytes
xfsdump:/var/lib/xfsdump/inventory created

============================= media labeldialog =============================

pleaseenter label for media in drive 0 (timeout in 300 sec)
-> media0
#指定设备标签
medialabel entered: "media0"

--------------------------------- end dialog---------------------------------

xfsdump:creating dump session media file 0 (media 0, file 0)
xfsdump:dumping ino map
xfsdump:dumping directories
xfsdump:dumping non-directory files
xfsdump:ending media file
xfsdump:media file size 24232 bytes
xfsdump:dump size (non-dir files) : 2592 bytes
xfsdump:dump complete: 48 seconds elapsed
xfsdump:Dump Summary:
xfsdump: stream 0 /opt/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS

查看opt目录有 内容OK
删除内容
进行非交互式

非交互式进行备份

针对分区
[root@xuegod60~]# xfsdump -f /opt/dump_sdb1 /sdb1 -L dump_sdb1 -M media0

查看内容

针对指定文件或目录进行备份
[root@xuegod60~]# xfsdump -f /opt/dump_sdb1_passwd -s passwd /sdb1 -L dump_sdb1_passwd -Mmedia1

查看内容

文件系统恢复
首先,模拟数据被删除
[root@xuegod60~]# rm -rf /sdb1/*
恢复
[root@xuegod60~]# /设备pt/dump_sdb1 /sdb1/

查看 /sdb1

删除passwd

只恢复单个的目录或文件
[root@xuegod60~]# xfsrestore -f /opt/dump_sdb1_passwd -s passwd /sdb1/

查看/sdb1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 文件 基本