1.1 Linux系统目录结构,相对/绝对路径。
1.2 创建/复制/删除文件,rm -rf / 意外事故
1.3 查看文件内容
1.4 xfs文件系统的备份和恢复
在Linux当中一切都是文件
1.1.1 linux系统目录结构
[root@centos7 /]# ll
total 32
lrwxrwxrwx. 1 root root 7 Aug 17 01:00 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Nov 9 16:45 boot
drwxr-xr-x. 20 root root 3260 Dec 26 17:07 dev
drwxr-xr-x. 86 root root 8192 Nov 30 20:09 etc
drwxr-xr-x. 5 root root 157 Oct 31 19:03 home
lrwxrwxrwx. 1 root root 7 Aug 17 01:00 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 17 01:00 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Nov 5 2016 media
drwxr-xr-x. 2 root root 6 Nov 5 2016 mnt
drwxr-xr-x. 2 root root 6 Nov 5 2016 opt
dr-xr-xr-x. 108 root root 0 Dec 26 17:06 proc
dr-xr-x---. 10 root root 4096 Dec 25 10:02 root
drwxr-xr-x. 25 root root 680 Dec 27 11:12 run
lrwxrwxrwx. 1 root root 8 Aug 17 01:00 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Nov 5 2016 srv
dr-xr-xr-x. 13 root root 0 Dec 26 17:07 sys
drwxrwxrwt. 23 root root 4096 Dec 27 03:42 tmp
drwxr-xr-x. 13 root root 155 Aug 17 01:00 usr
drwxr-xr-x. 20 root root 278 Nov 9 10:09 var
***************************************************************************************************************************
/ /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;
[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 显示多少行
-f 动态显示数据(不关闭) 常用来查看日志
[root@xuegod60 ~]# useradd nginx
[root@xuegod60 ~]# tail -1 /etc/passwd
nginx:x:1002:1002::/home/nginx:/bin/bash
复制文件: 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 命令,需要安装xfsdump: yum install xfsdump -y
[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/