Linux使用find -delete恢復(fù)誤刪文件的方法
前言
在運(yùn)維工作中,誤刪文件是每個人都可能遇到的“噩夢”。本文記錄了一次真實(shí)的誤刪恢復(fù)案例,希望能為大家提供參考。
關(guān)鍵詞:數(shù)據(jù)恢復(fù)、Linux、extundelete、rsync、RMAN
一、事故經(jīng)過
某日,在執(zhí)行日常清理腳本時,誤執(zhí)行了以下命令:
find /app/middleware/middleware-project-module -type f -mtime +180 -delete
原本意圖是清理超過180天的舊文件,但由于路徑拼寫錯誤,導(dǎo)致目標(biāo)目錄下的文件被批量刪除。受影響的目錄包括:
lib/(依賴庫)bin/(啟動腳本)conf/(配置文件)
影響:服務(wù)無法啟動,項目中斷約30分鐘。
二、緊急止血
數(shù)據(jù)恢復(fù)的第一原則:立即停止對磁盤的寫入操作。
# 以只讀方式重新掛載分區(qū) sudo mount -o remount,ro /app/middleware
這一步可以最大程度防止已刪除的數(shù)據(jù)塊被新數(shù)據(jù)覆蓋。
三、恢復(fù)方案選擇
根據(jù)是否有備份,選擇不同的恢復(fù)策略:
| 場景 | 推薦方案 |
|---|---|
| 有完整備份包 | 重新解壓部署 |
| 有遠(yuǎn)程備份服務(wù)器 | 使用 rsync 同步 |
| 無備份 | 使用 extundelete 恢復(fù) |
方案一:重新解壓部署(最快)
如果項目有原始的 .tar.gz 安裝包:
tar -xzf middleware.tar.gz -C /app/middleware/
方案二:從備份服務(wù)器同步
rsync -avz --delete -e 'ssh -p 2222' \ root@192.168.x.x:/backup/middleware/ /app/middleware/
方案三:使用 extundelete 恢復(fù)
# 安裝工具 sudo yum install -y extundelete # 恢復(fù)指定目錄 sudo extundelete /dev/sdb1 --restore-directory /app/middleware/lib sudo extundelete /dev/sdb1 --restore-directory /app/middleware/bin sudo extundelete /dev/sdb1 --restore-directory /app/middleware/conf # 恢復(fù)的文件位于 ./RECOVERED_FILES/ ———————————————— 版權(quán)聲明:本文為CSDN博主「一十九的酒」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/gary192211112/article/details/160395102
四、權(quán)限修復(fù)
從 Windows 上傳或恢復(fù)的文件,用戶和權(quán)限可能不正確:
# 修改所有者和組
chown -R appuser:appgroup /app/middleware/
# 設(shè)置目錄權(quán)限
find /app/middleware/ -type d -exec chmod 755 {} \;
# 設(shè)置文件權(quán)限
find /app/middleware/ -type f -exec chmod 644 {} \;
# 設(shè)置可執(zhí)行腳本
chmod +x /app/middleware/bin/*.sh五、經(jīng)驗(yàn)總結(jié)
5.1 教訓(xùn)
find -delete極其危險,執(zhí)行前務(wù)必先用-ls預(yù)覽- 腳本路徑使用變量,避免硬編碼錯誤
- 重要操作前先備份
5.2 最佳實(shí)踐
# 安全刪除模板 find /target/path -type f -mtime +180 -ls # 先預(yù)覽 find /target/path -type f -mtime +180 -delete # 確認(rèn)后執(zhí)行
5.3 定期備份策略
| 備份類型 | 頻率 | 保留 |
|---|---|---|
| 全量備份 | 每周 | 28天 |
| 增量備份 | 每日 | 14天 |
| 歸檔日志 | 實(shí)時 | 14天 |
5.4 自動化備份腳本示例
#!/bin/bash
# 每周全量備份
BACKUP_DIR=/backup/project
rman target / << EOF
backup incremental level 0 tag 'FULL'
format '${BACKUP_DIR}/full_%d_%T_%s_%p' database;
delete noprompt backup completed before 'sysdate-28';
EOF
————————————————
版權(quán)聲明:本文為CSDN博主「一十九的酒」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/gary192211112/article/details/160395102六、結(jié)語
數(shù)據(jù)無價,預(yù)防勝于治療。建議:
- ? 重要文件定期備份
- ? 刪除操作使用
mv先移到臨時目錄 - ? 關(guān)鍵服務(wù)器配置堡壘機(jī)審計
- ? 定期演練恢復(fù)流程
你的備份策略,決定了你的恢復(fù)上限。
附錄:常用恢復(fù)命令速查
| 場景 | 命令 |
|---|---|
| 查看文件系統(tǒng) | df -Th |
| 只讀掛載 | mount -o remount,ro /dev/sdb1 |
| 安裝 extundelete | yum install -y extundelete |
| 恢復(fù)目錄 | extundelete /dev/sdb1 --restore-directory /path |
| 恢復(fù)全部 | extundelete /dev/sdb1 --restore-all |
| rsync 同步 | rsync -avz --delete user@host:/src/ /dst/ |
| 批量改權(quán)限 | chown -R user:group /path |
脫敏對照表(內(nèi)部參考)
| 原始內(nèi)容 | 脫敏后 |
|---|---|
/app/tomee/tomee-3dspace-cas3 | /app/middleware/middleware-project-module |
tomee.tar.gz | middleware.tar.gz |
tomee 用戶 | appuser |
oinstall 組 | appgroup |
/backup/PDM-DB01 | /backup/project |
PDMDB1 | PRODDB1 |
本文已脫敏處理,所有 IP、路徑、用戶名均為示例,請根據(jù)實(shí)際環(huán)境調(diào)整。
以上就是Linux使用find -delete恢復(fù)誤刪文件的方法的詳細(xì)內(nèi)容,更多關(guān)于Linux find -delete恢復(fù)誤刪文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux查看文件系統(tǒng)塊大小與內(nèi)存頁大小的簡單方法
下面小編就為大家?guī)硪黄猯inux查看文件系統(tǒng)塊大小與內(nèi)存頁大小的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11
詳解ubuntu20.04下CLion2020.1.3安裝配置ROS過程說明
這篇文章主要介紹了ubuntu20.04下CLion2020.1.3安裝配置ROS過程說明,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Linux下簡易進(jìn)度條的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄狶inux下簡易進(jìn)度條的實(shí)現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
NTP時間同步、ntpdate實(shí)現(xiàn)過程
本文主要介紹了NTP時間同步的方法,包括直接與外網(wǎng)時間服務(wù)器同步、搭建本地時間服務(wù)器同步,以及使用ntpdate命令手動同步時間,最后,還特別說明了Windows服務(wù)器設(shè)置NTP同步的方法2026-04-04

