【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件

 

Linux基本文件管理

本节所讲内容:

Linux系统目录结构

相对/绝对路径

创建/复制/删除文件

rm -rf / 意外事故

查看文件内容

xfs文件系统的备份和恢复

extundelete恢复ext4文件系统中误删的文件

 

Linux系统目录结构

/   通常称为根分区。所有的文件和目录皆由此开始。只有root用户对此目录拥有写权限。

---/etc  配置文件  包含所有应用程序的配置文件,也包含启动、关闭某个特定程序的脚本,例如,

/etc/passwd,/etc/init.d/network等。

---/boot存放Linux系统启动时需要加载的文件。 (一般在另外一个磁盘分区里面保存) Kernel、grub等文件都存放在此。

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

---/root  管理员所有数据。  root用户的家目录

---/tmp  临时文件存储位置

---/usr  usr表示的是unix software source    

---/bin  命令  此目录包含二进制可执行文件。

---/sbin  系统命令 ,此目录中的命令主要供系统管理员使用,以进行系统维护。例如,iptables、reboot、fdisk等。

/mnt- 挂载目录  挂载点,系统管理员可用于临时挂载文件系统。     /media

---/dev  包含设备文件。在Linux中,一切都被看做文件。终端设备、USB、磁盘等等都被看做文件,如/dev/sda。

---/home  普通用户所有数据存放在这个目录下 

---/proc
  这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。

---/lib
  这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。

绝对路径/相对路径:

[[email protected]]# cd /boot/

[[email protected]]# cd grub/

  表示当前目录

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

 

创建文件和文件夹

touch 

作用:常用来创建空文件

语法: touch 文件名

[[email protected] ~]# touch momo

 

mkdir

作用:创建目录

语法:mkdir 目录名

[[email protected]~]# mkdir sljz

[[email protected]~]# mkdir -p  sljz/syex/xbk

-p连同父目录一起创建

 

[[email protected] ~]# touch a

[[email protected] ~]# mkdir a

mkdir: cannot create directory`a‘: File exists

 

查看文件方法:

cat

作用:查看文件内容

语法:cat 文件名

 

more  查看文件名字

例:

more  /etc/passwd

按下回车刷新一行,按下空格刷新一屏

q 退出

 

less  查看文件名字

q 退出

使用光标键可以向上翻页

linux中more与less的区别

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

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

 

 

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

-n 数字   显示多少行

[[email protected] ~]# 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  动态显示数据(不关闭)  常用来查看日志

[[email protected]~]# tail -f /var/log/messages

Nov26 01:59:46 xuegod163 dbus[918]: [system] Activating via systemd: servicename=‘net.reactivated.Fprint‘ unit=‘fprintd.service‘

Nov26 01:59:46 xuegod163 systemd: Starting Fingerprint Authentication Daemon...

Nov26 01:59:46 xuegod163 dbus-daemon: dbus[918]: [system] Successfully activatedservice ‘net.reactivated.Fprint‘

 

显示文件的第五行

[[email protected]~]# head -5 /etc/passwd  | tail -1

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

复制文件:

cp

作用:复制文件

语法:cp 源文件 目标文件

[[email protected]~]# cp /etc/passwd  /root/

-r 包含子目录和文件  。

[[email protected] ~]# cp  -r /boot/grub/   /opt/

删除文件和文件夹

rm 

作用:删除文件或目录

语法: rm -rf  文件或目录名

-r  递归删除(可以删除目录和目录里面的东西)

-f  强行删除

[[email protected]~]# rm -rf passwd

 

重命名:

mv 

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

[[email protected] ~]# mvpasswd  xiaochuan

 

 

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

 

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

 

首先准备测试文件

[[email protected] ~]#cp/etc/passwd  /sda3

[[email protected] ~]#mkdir/sda3/test

 

1)对整个分区进行备份

[[email protected] ~]#xfsdump  -f /opt/dump_sda3  /sda3

注意:备份的设备这里不能写成/sda3/

xfsdump: using filedump (drive_simple) strategy

xfsdump: version 3.1.4(dump format 3.0) - type ^C for status and control

 

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

 

please enter label forthis dump session (timeout in 300 sec)

 -> dump_sda3

#指定备份标签

session label entered:"dump_sda3"

 

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

 

xfsdump: level 0 dumpof xuegod163.cn:/sda3

xfsdump: dump date: TueNov 10 21:29:47 2015

xfsdump: session id:df2e3d9c-3217-4fba-858c-d22159d5a901

xfsdump: session label:"dump_sda3"

xfsdump: ino map phase1: constructing initial dump list

xfsdump: ino map phase2: skipping (no pruning necessary)

xfsdump: ino map phase3: skipping (only one dump stream)

xfsdump: ino mapconstruction complete

xfsdump: estimated dumpsize: 25536 bytes

xfsdump:/var/lib/xfsdump/inventory created

 

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

 

please enter label formedia in drive 0 (timeout in 300 sec)

 -> media0

#指定设备标签

media label entered:"media0"

 

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

 

xfsdump: creating dumpsession media file 0 (media 0, file 0)

xfsdump: dumping inomap

xfsdump: dumpingdirectories

xfsdump: dumpingnon-directory files

xfsdump: ending mediafile

xfsdump: media filesize 23720 bytes

xfsdump: dump size(non-dir files) : 2080 bytes

xfsdump: dump complete:12 seconds elapsed

xfsdump: Dump Summary:

xfsdump:   stream 0 /opt/dump_sda3 OK (success)

xfsdump: Dump Status:SUCCESS

 

 

非交互式进行备份

[[email protected] ~]#xfsdump -f /opt/dump_sda3 /sda3  -Ldump_sda3 -M media0

 

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

[[email protected]~]# xfsdump -f /opt/dump_sda3_a -s  test/sda3  -L dump_sda3_a -M media1

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

 

查看备份文件是否生成

[[email protected] ~]# ls/opt/

dump_sda3  dump_sda3_test  rh

 

克隆目录到另外一个目录

[[email protected] ~]#mkdir /data

[[email protected] ~]#xfsdump - /sda3  | xfsrestore  - /data/

克隆指定的目录

[[email protected]~]# xfsdump --s test /sda3 |xfsrestore - /data

 

查看备份信息

[[email protected]]# xfsdump -I

file system 0:

       fs id:              4df2c5b9-98c2-48c0-895f-227c9b816f68

       session 0:

              mount point:xuegod163.cn:/sda3

              device:           xuegod163.cn:/dev/sda3

              time:             Tue Nov 10 21:29:47 2015

              session label:"dump_sda3"

              session id:     df2e3d9c-3217-4fba-858c-d22159d5a901

              level:             0

              resumed:       NO

              subtree:  NO

              streams:1

              stream 0:

                     pathname:     /opt/dump_sda3

                     start:             ino 131 offset 0

                     end:        ino 132 offset 0

                     interrupted:   NO

                     media files:   1

                     media file 0:

                            mfile index:   0

                            mfile type:     data

                            mfile size:      23720

                            mfile start:    ino 131 offset 0

                            mfile end:      ino 132 offset 0

                            media label:  "media0"

                            media id:       2f7dd88f-1aca-4605-a14b-14bab8ea799b

 

文件系统恢复

首先,模拟数据被删除

[[email protected]~]# rm -rf /sda3/*

恢复

[[email protected]~]# xfsrestore -f /opt/dump_sda3 /sda3/

只恢复单个的目录或文件

[[email protected] ~]#xfsrestore -f /opt/dump_sda3_test -s test /sda3

 

恢复之前查看备份文件的内容

[[email protected]~]# xfsrestore  -f /opt/dump_sda3 –t

 

 

没有基础的同学了解【redhat6.5】

实战:恢复误删除的文件

exetundelete

首先、上传软件包

用xshell进行上传

[[email protected] ~]# rpm -ihv/mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm

warning: /mnt/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm:Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY

Preparing...               ########################################### [100%]

       package lrzsz-0.12.20-27.1.el6.x86_64 is already installed

 

rz上传

sz下载

 

安装extundelete软件包

[[email protected] ~]# tar jxvfextundelete-0.2.4.tar.bz2                     #解压

[[email protected] ~]# cdextundelete-0.2.4

[[email protected]]# ./configure

Configuring extundelete 0.2.4

configure: error: Can‘t find ext2fslibrary

 

解决办法

[[email protected]]# uname -r

2.6.32-431.el6.x86_64

[[email protected]]# rpm –ihv   

/mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

 

[[email protected]]# ./configure                             #配置

[[email protected]]# make                                     #编译

make -s all-recursive

Making all in src

extundelete.cc:571: warning:unused parameter ‘flags’

[[email protected]]# make install                           #安装

Making install in src

  /usr/bin/install -c extundelete‘/usr/local/bin‘

 

准备测试分区

[[email protected] ~]# fdisk/dev/sda

 

WARNING: DOS-compatible modeis deprecated. It‘s strongly recommended to

switch off the mode (command‘c‘) and change display units to

sectors (command ‘u‘).

 

Command (m for help): n

Command action

e   extended

p   primary partition (1-4)

p

Selected partition 4

First cylinder (1428-2610,default 1428): 

Using default value 1428

Last cylinder, +cylinders or+size{K,M,G} (1428-2610, default 2610): +1G

 

Command (m for help): p

 

Disk /dev/sda: 21.5 GB,21474836480 bytes

255 heads, 63 sectors/track,2610 cylinders

Units = cylinders of 16065 *512 = 8225280 bytes

Sector size(logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal):512 bytes / 512 bytes

Disk identifier: 0x0000fff2

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sda1   *          1          26      204800  83  Linux

Partition 1 does not end oncylinder boundary.

/dev/sda2              26        1301   10240000   83  Linux

/dev/sda3            1301        1428    1024000   82  Linux swap / Solaris

/dev/sda4            1428        1559    1052843+  83  Linux

 

Command (m for help): w

The partition table has beenaltered!

 

Calling ioctl() to re-readpartition table.

 

WARNING: Re-reading the partitiontable failed with error 16: Device or resource busy.

The kernel still uses the oldtable. The new table will be used at

the next reboot or after yourun partprobe(8) or kpartx(8)

Syncing disks.

 

 

reboot重启系统

[[email protected] ~]#mkfs.ext4  /dev/sda4                              #格式化分区

[[email protected] ~]# mkdir/sda4                                             #创建挂载点

[[email protected] ~]# mount/dev/sda4 /sda4/                         #挂载分区

[[email protected] ~]# df –h                                                       #查看挂载状况

FilesystemSize  Used Avail Use% Mounted on

/dev/sda2       9.7G 3.8G  5.4G  42% /

tmpfs           2.0G 224K  2.0G   1% /dev/shm

/dev/sda1       194M  34M  151M  19% /boot

/dev/sr0        3.6G 3.6G     0 100% /mnt

/dev/sda4      1012M  34M  928M   4% /sda4

 

准备测试文件

[[email protected] ~]# cp/etc/passwd  /sda4/

[[email protected] ~]# cp/etc/hosts   /sda4/

[[email protected] ~]# mkdir -p/sda4/a/b/c

[[email protected] ~]# cp/etc/passwd  /sda4/a/

[[email protected] ~]# touch/sda4/a/b/kong.txt

 

删除文件

[[email protected] ~]# cd  /sda4/

[[email protected] sda4]# ls

a  hostslost+foundpasswd

[[email protected] sda4]# rm -rfa hosts  passwd

 

卸载要恢复的分区或者以只读的方式进行挂载

[[email protected] ~]# umount/dev/sda4

 

恢复文件

查看要恢复分区的文件删除状态信息

[[email protected] ~]#extundelete /dev/sda4 --inode 2

………………

File name                                       | Inodenumber | Deleted status

.                                                 2

..                                               2

lost+found                                        11

passwd                                           12             Deleted

hosts                                             13             Deleted

a                                                7313           Deleted

a.txt                                            17             Deleted

 

方法一:通过inode进行恢复

[[email protected] test]#extundelete /dev/sda4  --restore-inode 12

[[email protected] test]# lsRECOVERED_FILES/

file.12

[[email protected] test]# diff/etc/passwd RECOVERED_FILES/file.12

 

方法二:通过文件名进行恢复

[[email protected] test]#extundelete /dev/sda4 --restore-file  passwd

 

方法三:通过目录进行恢复

[[email protected] test]#extundelete /dev/sda4 --restore-directory  a

 

方法四:恢复所有文件

[[email protected] test]#extundelete /dev/sda4  --restore-all

 

通过extundelete命令不能恢复空文件和空目录

 

学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762
学神IT-戚老师QQ:3341251313
学神IT-旭斌QQ:372469347
学神IT教育RHEL7交流群:468845589

时间: 2024-10-11 07:30:12

【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件的相关文章

linux下恢复误删除的文件方法(ext2及ext3)

linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,debugfs就无能为力了,好在我们有了ext3grep这个开源工具(http://code.google.com/p/ext3grep/)! 对于ext2 1.在/data(/dev/sdb)上创建并删除测试文件(作测试目的以plantodelete为例) #vi plantodelete 输入Thi

Linux下恢复误删除的文件

原文地址:http://www.libenfu.com/vim-分区下误删的文件,恢复文件全记录-转 当时我的工作目录是/source/needrecovered. $ pwd /source/needrecovered 原本打算清空其中的一个子文件, $ rm -rf canbedeleted/html 却打成如下命令: $ rm -rf canbedeleted/ * 当时我琢磨着今天怎么删个小文件夹这么慢呢.等我仔细看了下命令,反应过来的时候,已经太迟了,整个工作目录被清空了 . 没辙了,

linux lsof恢复误删除的文件

早上起来被告知昨晚误删除了3个mysql的文件,只能恢复了 这是删除前的文件信息: 首先lsof查看进程: 这里PID都是一样的,下面进入proc里ls -l查看: # cd /proc/8784/fd/ 这里可以看到ibdata1删除的信息了 接着直接cp复制 #cp 4 /tmp/ibdata1.bak 其余的2个同理恢复,下面是恢复后的文件: +++++++++++++++++++++++++++++++++++++++++++++ 虽然恢复了,但是事情绝对没有这么简单!!! 因为,在in

Linux中用extundelete恢复误删除的数据

extundelete是一个用来恢复ext3.ext4分区的文件的工具.它会利用分区中的日志信息尝试恢复被删除的文件.但是,并非每个被删除的文件都能确保被恢复,所以养成良好的备份习惯是非常重要的.extundelete恢复文件的原理在恢复文件时,extundelete会通过文件系统的inode信息(根目录的inode一般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inde.然后利用inode信息结合日志去查询该inode所在的block位置,包括直接

Linux ext4文件系统下 extundelete 恢复 误删除的文件

1.文件基本操作 1.1 查看文件 # ls   1.2 创建 1.2.1 创建文件 # touch {file_name} # vim {file_name}   1.2.2 创建目录 # mkdir -p {dir}   1.3 复制 1.3.1 复制文件 # cp {src_file} {dest_file}   1.3.2 复制目录 # cp -r {src_dir} {dest_dir}   1.4 删除 1.4.1 删除文件 # rm {file_name}   1.4.2 删除目录

【学神-RHEL7】1-16-RAID5和RAID10创建&LVM管理

本节所讲内容: RAID5.RAID10配置 RAID删除   建立RAID5 1)     创建RAID5 2)     停止阵列,重新激活阵列 3)     再添加新的1G热备盘,扩展阵列容量,从3磁盘个扩展到4个 实验环境: sde1,sde2,sde3,sde5,sde6 个主分区  每个1G   [[email protected] ~]# ll/dev/sde* brw-rw---- 1 root disk8, 64 Dec 12 20:35 /dev/sde brw-rw----

linux文件管理之bash shell

BASH Shell 对文件进行管理 ========================================================创建.复制.删除.移动.查看.编辑.压缩.查找 内容提要:Linux目录结构文件定位 路径文件管理 一.Linux目录结构Windows: 以多根的方式组织文件 C:\ D:\ E:\Linux: 以单根的方式组织文件 / /目录结构: FSH (Filesystem Hierarchy Standard)[root@localhost ~]# l

初识linux文件管理

初识linux文件管理 1.文件系统与目录结构 文件系统从根目录 下开始,用"/". 以. 开头的文件为隐藏文件,路径分隔用/表示.文件系统的层级结构是LSB(linux standard base),遵循文件系统层级标准(FHS ) 文件命名规则:   文件名最长255个字节,包括路径名在内共4095个字节 蓝色–> 目录 绿色–> 可执行文件 红色–> 压缩文件 浅蓝色–> 链接文件 灰色–> 除了斜杠和NUL, 所有字符都有效,但不推荐使用特殊字符,

Linux文件管理命令

Linux文件管理命令 Linux目录与路径 cd:切换目录 例如:cd ~willhua,则回到用户willhua的主文件夹  cd ~或者cd,则表示回到自己的的主文件夹  cd -,则表示回到上个目录 pwd:显示目前所在目录 参数: -p,显示当前路径,而非使用连接路径 mkdir:新建新目录 参数: -m:直接配置文件的权限,而不管默认权限umask,比如mkdir -m 711 test1,则test1的权限为711 -p:帮助你直接将所需要的目录递归创建起来,比如mkdir -p