设为首页 收藏本站
查看: 1286|回复: 0

[经验分享] Linux文件管理和恢复误删除的文件

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-15 08:26:27 | 显示全部楼层 |阅读模式
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文件。几乎所有的应用程序都须要用到这些共享库。
绝对路径/相对路径:
[iyunv@xuegod163etc]# cd /boot/
[iyunv@xuegod163boot]# cd grub/

  表示当前目录

wKiom1ZXGVvC-f-xAABgz4E6y4k251.jpg

创建/查看/复制/删除 文件和文件夹
创建文件和文件夹
touch 
作用:常用来创建空文件
语法: touch 文件名
[iyunv@xuegod163 ~]# touch momo

mkdir
作用:创建目录
语法:mkdir 目录名
[iyunv@xuegod163~]# mkdir sljz
[iyunv@xuegod163~]# mkdir -p  sljz/syex/xbk
-p连同父目录一起创建

[iyunv@xuegod163 ~]# touch a
[iyunv@xuegod163 ~]# 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 数字   显示多少行
[iyunv@xuegod163 ~]# 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  动态显示数据(不关闭)  常用来查看日志
[iyunv@xuegod163~]# 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'
显示文件的第五行
[iyunv@xuegod163~]# head -5 /etc/passwd  | tail -1
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
复制文件:
cp
作用:复制文件
语法:cp 源文件 目标文件
[iyunv@xuegod163~]# cp /etc/passwd  /root/

-r 包含子目录和文件  。

[iyunv@xuegod163 ~]# cp  -r /boot/grub/   /opt/

删除文件和文件夹
rm
作用:删除文件或目录
语法: rm -rf  文件或目录名
-r  递归删除(可以删除目录和目录里面的东西)
-f  强行删除
[iyunv@xuegod163~]# rm -rf passwd
重命名:
mv  
语法:mv 源:文件或目录名    目标:文件或目录名
[iyunv@xuegod163 ~]# mvpasswd  xiaochuan


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

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

首先准备测试文件
[iyunv@xuegod163 ~]#cp/etc/passwd  /sda3
[iyunv@xuegod163 ~]#mkdir/sda3/test

1)对整个分区进行备份
[iyunv@xuegod163 ~]#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


非交互式进行备份
[iyunv@xuegod163 ~]#xfsdump -f /opt/dump_sda3 /sda3  -Ldump_sda3 -M media0

针对指定文件或目录进行备份
[iyunv@xuegod163~]# xfsdump -f /opt/dump_sda3_a -s  test/sda3  -L dump_sda3_a -M media1
注意:a  /sda3中间有空格,前后都不能加“/”

查看备份文件是否生成
[iyunv@xuegod163 ~]# ls/opt/
dump_sda3  dump_sda3_test  rh

克隆目录到另外一个目录
[iyunv@xuegod163 ~]#mkdir /data
[iyunv@xuegod163 ~]#xfsdump - /sda3  | xfsrestore  - /data/
克隆指定的目录
[iyunv@xuegod163~]# xfsdump --s test /sda3 |xfsrestore - /data

查看备份信息
[iyunv@xuegod163data]# 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

文件系统恢复
首先,模拟数据被删除
[iyunv@xuegod163~]# rm -rf /sda3/*
恢复
[iyunv@xuegod163~]# xfsrestore -f /opt/dump_sda3 /sda3/
只恢复单个的目录或文件
[iyunv@xuegod163 ~]#xfsrestore -f /opt/dump_sda3_test -s test /sda3

恢复之前查看备份文件的内容
[iyunv@xuegod163~]# xfsrestore  -f /opt/dump_sda3 –t


没有基础的同学了解【redhat6.5】
实战:恢复误删除的文件
exetundelete
首先、上传软件包
用xshell进行上传
[iyunv@xuegod163 ~]# 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软件包
[iyunv@xuegod163 ~]# tar jxvfextundelete-0.2.4.tar.bz2                     #解压
[iyunv@xuegod163 ~]# cdextundelete-0.2.4
[root@xuegod163extundelete-0.2.4]# ./configure
Configuring extundelete 0.2.4
configure: error: Can't find ext2fslibrary

解决办法
[root@xuegod163extundelete-0.2.4]# uname -r
2.6.32-431.el6.x86_64
[root@xuegod163extundelete-0.2.4]# rpm –ihv   
/mnt/Packages/e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

[root@xuegod163extundelete-0.2.4]# ./configure                             #配置
[root@xuegod163extundelete-0.2.4]# make                                     #编译
make -s all-recursive
Making all in src
extundelete.cc:571: warning:unused parameter ‘flags’
[root@xuegod163extundelete-0.2.4]# make install                           #安装
Making install in src
  /usr/bin/install -c extundelete'/usr/local/bin'

准备测试分区
[iyunv@xuegod163 ~]# 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重启系统
[iyunv@xuegod163 ~]#mkfs.ext4  /dev/sda4                              #格式化分区
[iyunv@xuegod163 ~]# mkdir/sda4                                             #创建挂载点
[iyunv@xuegod163 ~]# mount/dev/sda4 /sda4/                         #挂载分区
[iyunv@xuegod163 ~]# 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

准备测试文件
[iyunv@xuegod163 ~]# cp/etc/passwd  /sda4/
[iyunv@xuegod163 ~]# cp/etc/hosts   /sda4/
[iyunv@xuegod163 ~]# mkdir -p/sda4/a/b/c
[iyunv@xuegod163 ~]# cp/etc/passwd  /sda4/a/
[iyunv@xuegod163 ~]# touch/sda4/a/b/kong.txt

删除文件
[iyunv@xuegod163 ~]# cd  /sda4/
[iyunv@xuegod163 sda4]# ls
a  hostslost+foundpasswd
[iyunv@xuegod163 sda4]# rm -rfa hosts  passwd

卸载要恢复的分区或者以只读的方式进行挂载
[iyunv@xuegod163 ~]# umount/dev/sda4

恢复文件
查看要恢复分区的文件删除状态信息
[iyunv@xuegod163 ~]#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进行恢复
[iyunv@xuegod163 test]#extundelete /dev/sda4  --restore-inode 12
[iyunv@xuegod163 test]# lsRECOVERED_FILES/
file.12
[iyunv@xuegod163 test]# diff/etc/passwd RECOVERED_FILES/file.12

方法二:通过文件名进行恢复
[iyunv@xuegod163 test]#extundelete /dev/sda4 --restore-file  passwd

方法三:通过目录进行恢复
[iyunv@xuegod163 test]#extundelete /dev/sda4 --restore-directory  a

方法四:恢复所有文件
[iyunv@xuegod163 test]#extundelete /dev/sda4  --restore-all

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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151268-1-1.html 上篇帖子: rhel7 vim编辑器的使用和Xmanager远程工具的使用 下篇帖子: Linux基本命令和配置服务器来电后自动开机 文件管理 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表