10人参与 • 2025-06-06 • Linux
rm
命令删除文件时,系统只是将文件的inode标记为可用# 1. 立即停止对该分区的写操作 sudo mount -o remount,ro /path/to/partition # 2. 卸载相关分区(如果可能) sudo umount /path/to/partition # 3. 创建磁盘镜像备份 sudo dd if=/dev/sdx of=/backup/disk_image.img bs=4m
功能强大的数据恢复工具,支持多种文件系统。
# 安装testdisk sudo apt-get install testdisk # ubuntu/debian sudo yum install testdisk # centos/rhel # 使用testdisk sudo testdisk
使用步骤:
testdisk套件中的文件恢复工具,专门用于恢复各种文件格式。
# 启动photorec sudo photorec
专门针对ext文件系统的恢复工具。
# 安装extundelete sudo apt-get install extundelete # 恢复指定文件 sudo extundelete /dev/sdx1 --restore-file path/to/deleted/file # 恢复指定目录 sudo extundelete /dev/sdx1 --restore-directory path/to/deleted/directory # 恢复所有删除的文件 sudo extundelete /dev/sdx1 --restore-all
基于文件头和尾部特征的数据雕刻工具。
# 安装scalpel sudo apt-get install scalpel # 配置文件位置 sudo nano /etc/scalpel/scalpel.conf # 运行恢复 sudo scalpel -o /recovery/output /dev/sdx1
另一个优秀的文件雕刻工具。
# 安装foremost sudo apt-get install foremost # 恢复文件 sudo foremost -i /dev/sdx1 -o /recovery/output
# 查看二进制日志 mysql> show binary logs; # 查看日志内容 mysqlbinlog /var/lib/mysql/mysql-bin.000001 # 从指定时间点恢复 mysqlbinlog --start-datetime="2024-01-01 10:00:00" \ --stop-datetime="2024-01-01 11:00:00" \ /var/lib/mysql/mysql-bin.000001 | mysql -u root -p
# 恢复完整备份 mysql -u root -p database_name < backup.sql # 恢复特定表 mysql -u root -p -e "source /path/to/table_backup.sql" database_name
# 恢复到特定位置 mysqlbinlog --start-position=154 --stop-position=368 \ /var/lib/mysql/mysql-bin.000001 | mysql -u root -p
# 配置恢复 echo "restore_command = 'cp /archive/%f %p'" >> recovery.conf echo "recovery_target_time = '2024-01-01 10:30:00'" >> recovery.conf # 启动恢复模式 pg_ctl start -d /var/lib/postgresql/data
# 恢复数据库 pg_restore -d database_name backup.dump # 恢复特定表 pg_restore -d database_name -t table_name backup.dump
# 恢复整个数据库 mongorestore --db database_name /path/to/backup/ # 恢复特定集合 mongorestore --db database_name --collection collection_name /path/to/backup/
# 查看oplog mongo --eval "db.oplog.rs.find().sort({ts:-1}).limit(10)" # 从oplog恢复 mongorestore --oplogreplay --oploglimit 1640995200:1 /path/to/backup/
# 搜索特定字符串 sudo dd if=/dev/sdx1 | strings | grep "search_pattern" # 十六进制查看 sudo hexdump -c /dev/sdx1 | grep "pattern"
# 使用xfs_repair sudo xfs_repair -n /dev/sdx1 # 检查模式 sudo xfs_repair /dev/sdx1 # 修复模式
# 检查文件系统 sudo btrfs check /dev/sdx1 # 恢复超级块 sudo btrfs rescue super-recover /dev/sdx1
# 查看raid状态 cat /proc/mdstat # 重新组装raid sudo mdadm --assemble --scan # 强制组装 sudo mdadm --assemble --force /dev/md0 /dev/sd[abc]1
# 创建自动备份脚本 #!/bin/bash backup_dir="/backup/$(date +%y%m%d)" mkdir -p $backup_dir tar -czf $backup_dir/home_backup.tar.gz /home tar -czf $backup_dir/etc_backup.tar.gz /etc
# lvm快照 sudo lvcreate -l 1g -s -n home_snapshot /dev/vg0/home # btrfs快照 sudo btrfs subvolume snapshot /home /home/.snapshots/$(date +%y%m%d)
# 安装trash-cli sudo apt-get install trash-cli # 使用trash代替rm alias rm='trash' # 恢复文件 trash-restore
# 使用安全删除别名 alias rm='rm -i' # 交互式删除 alias rm='echo "use trash command instead"' # 禁用rm
# 设置文件不可删除属性 sudo chattr +i important_file # 移除保护属性 sudo chattr -i important_file
# 使用inotify监控 sudo apt-get install inotify-tools inotifywait -m -r -e delete /important/directory
文件恢复的成功率很大程度上取决于:
建议建立完善的备份策略,这是最可靠的数据保护方法。当发生数据丢失时,保持冷静,按照本文档的步骤进行操作,可以最大化数据恢复的成功率。
以上就是linux系统意外删除文件后的恢复方法小结的详细内容,更多关于linux删除文件恢复方法的资料请关注代码网其它相关文章!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论