博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第六天 基本文件管理与XFS文件系统备份恢复
阅读量:5457 次
发布时间:2019-06-15

本文共 7056 字,大约阅读时间需要 23 分钟。

 

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

在Linux当中一切都是文件

1.1.1  linux系统目录结构

 

/   /home   /root   /dev   /usr   /etc   /boot   /lib    /var   /tmp   /proc  /bin /sbin

/   根分区,所有的文件和目录的起始点,只有root用户对此目录拥有写权限。

/etc  配置文件  包含所有应用程序的配置文件

/boot 存放Linux系统启动时需要加载的文件, Kernel、grub等文件都存放在此。

/var  一个可增长的目录,包含很经常变的文件,例如,/var/log(系统日志)、/var/lib (包文件)

/root  root用户的家目录

/tmp  临时文件存储位置  ,不能存放重要的数据,默认会定时清除

/usr  usr表示的是unix software source     /usr/src   源代码目录

/bin  命令  此目录包含二进制可执行文件,普通用户命令

/sbin  系统命令 ,系统管理员使用,以进行系统维护

/dev  包含设备文件。在Linux中,一切都被看做文件,如/dev/sda。

/home  普通用户的家目录  

/srv  srv 代表服务包含服务器特定服务相关的数据。例如,/srv/cvs包含cvs相关的数据。

/sys 应该是存放的系统硬件的固定信息

/proc  这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

查看咱们的内存信息,CPU信 

cat /proc/meminfo  | grep “Mem”

cat /proc/cpuinfo

/lib   存放系统的库文件

lib***.a是静态库

lib***.so是动态库 

静态库在编译时被加载到二进制文件中

动态库在运行时加载到进程的内存空间中

简单的说,这些库就是为了让你的程序能够正常编译运行的。

其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

小结:

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

 · 系统的所有设置在/etc目录下。

 · 不要修改根目录(“/”)或/usr目录下的任何内容,目录最好和LINUX发布时保持一致。

 · 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin,

 · 所有的文件在单一的目录树下。没有所谓的“驱动符”。

 

 1.1.2      绝对路径和相对路径

路径

在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。

 

绝对路径:     

 在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从/开始的,它一定是绝对路径.

 pwd  判断位置

 [root@localhost ~]# pwd 注:判断用户当前所处的位置,也就是说他到底位于哪?

 用户当前位于/root;

 [root@localhost ~]# cd /etc/sysconfig/network-scripts

:我们以绝对路径方式进入/目录下

 相对路径:

  相对路径是以 . 或 .. 开始的,

 .表示用户当前操作所处的位置

 .. 表示上级目录

 在路径中

 .表示用户当前所处的目录,..上级目录.

 要把.和..当做目录来看。

 

 

 

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

1.2.1-1  创建文件和文件夹

touch 

作用:常用来创建空文件

语法: touch 文件名

[root@xuegod60 ~]# touch a.txt

 

mkdir

作用:创建目录

语法:mkdir 目录名

[root@xuegod60 ~]# mkdir test

[root@xuegod60 ~]# mkdir -p test/a/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

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

 

tail

从第后一行开始,查看文件,默认显示最后10行

-n  显示多少行

[root@xuegod60 ~]# useradd nginx

[root@xuegod60 ~]# tail -1 /etc/passwd

nginx:x:1002:1002::/home/nginx:/bin/bash

[root@xuegod60 ~]#

-f  动态显示数据(不关闭)  常用来查看日志

  

复制文件:

cp

作用:复制文件

语法:cp 源文件  目标文件

-r 包含子目录和文件  。

[root@xuegod60 ~]# cp -r /boot/grub2/ /root/

重命名:

mv 

语法:mv 源:文件或目录名    目标:文件或目录名

[root@xuegod60 ~]# mv rm.txt mk.txt

 

删除文件和文件夹

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拆分成多个数据流,每个数据流可以被发往不同的目的地。

 

首先了解一下xfsdump的备份级别有以下两种,默认为0(即完全备份)

0       完全备份

1       增量备份

参数说明

-f  指定备份文件目录

-L  指定 标签 session label

-M 指定 设备标签 media label

单个文件备份:

-s 参数可以备份单个文件,但是

xfsdump -f /opt/dump_passwd -s /sdb1/passwd -L dump_passwd -M passwd

 -s后面不能直接跟路径,应该是下面这样的:

xfsdump -f /opt/dump_passwd -s passwd /sdb1 -L dump_passwd -M passwd

 

实验环境 系统RHEL7.2 添加一块虚拟硬盘

准备一个测试分区

首先添加一块硬盘/dev/sdb,格式化为xfs文件系统

正常使用一块磁盘

添加磁盘à分区à格式化à挂载

[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, default 41943039): +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 or resource 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.

 

格式化分区,并进行挂载

建立了一个名为sdb1的目录,把/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)  对整个分区进行备份

2)如果没有找到xfsdump 命令

[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 label dialog ==============================

 

please enter label for this dump session (timeout in 300 sec)

 -> dump_sdb1

#指定备份会话标签

session label 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 label dialog =============================

 

please enter label for media in drive 0 (timeout in 300 sec)

 -> media0

#指定设备标签

media label 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

 

删除刚刚备份的文件

非交互式进行备份

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

 

注意:passwd  /sdb1中间有空格,前后都不能加“/”

 

 

针对指定文件或目录进行备份

[root@xuegod60 ~]# xfsdump -f /opt/dump_passwd -s passwd /sdb1 -L dump_sdb1_passwd -M media1

 

查看备份文件是否生成

[root@xuegod60 opt]# ls

查看备份信息

[root@xuegod60 ~]# xfsdump -I  (大写)

 

文件系统恢复

 

首先,模拟数据被删除

[root@xuegod60 ~]# rm -rf /sdb1/*

恢复

[root@xuegod60 ~]# xfsrestore -f /opt/dump_sdb1 /sdb1/

 

只恢复单个的目录或文件

[root@xuegod60 ~]# xfsrestore -f /opt/dump_sdb1_passwd  /sdb1/

 

转载于:https://www.cnblogs.com/tinfeng/p/6097792.html

你可能感兴趣的文章
MATLAB中的运算符和特殊字符说明
查看>>
EX——4 RPG游戏·改 (圣杯战争不完全版)
查看>>
idea创建Maven工程很慢的解决办法
查看>>
工作流引擎activiti入门
查看>>
cowboy rest
查看>>
setChecked方法触发onCheckedChanged监听器问题
查看>>
vim php代码规范
查看>>
numpy次方计算
查看>>
centos7 搭建LNMP
查看>>
Python OOP(1)
查看>>
delphi 数据库中Connection与Query连接数量问题思考
查看>>
JS图像变换效果的实现
查看>>
sql function递归
查看>>
【Alpha】Daily Scrum Meeting——blog2
查看>>
struts2 局部类型转换器
查看>>
all与any的用法
查看>>
SpringBoot入门教程(六)SpringBoot2.0统一处理404,500等http错误跳转页
查看>>
mysql 去除重复 Select中DISTINCT关键字的用法
查看>>
JSON
查看>>
poj1006
查看>>