linux 创建一个垃圾篓防误删及其误删文件恢复
生活随笔
收集整理的這篇文章主要介紹了
linux 创建一个垃圾篓防误删及其误删文件恢复
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、創建一個垃圾簍
給你的linux創建一個垃圾簍/回收站,防誤刪
創建一個垃圾回收站,保存被刪除距今3天的文件,過期則被刪除
1. 在你的主目錄下,創建文件夾 .trash
cd ~ mkdir .trash2. 在你的常用腳本目錄下創建這倆腳本
#!/bin/bash TRASH_DIR="/home/lixy/.trash"for i in $*; doSTAMP=`date +%s`fileName=`basename $i`if [[ -d $TRASH_DIR/$fileName.$STAMP ]];thenmkdir $TRASH_DIR/$fileName.$STAMPfimv $i $TRASH_DIR/$fileName.$STAMP done ################################################## # File Name : /home/lixy/bin/removeRF.sh # Author : biolxy # E-mail : biolxy@aliyun.com # Created Time: Wed 17 Apr 2019 02:48:47 PM CST ################################################## #!/bin/bash # 該文件夾下文件名字格式為 : JZ201810081226.1555481687 # 文件夾即為你設置的垃圾箱地 : /home/lixy/.trash inputdir=`realpath $1` STAMP=`date +%s` cd ${inputdir} for i in `ls -a $inputdir ` dofileRemoveTime=${i##*.} # 表示從左邊開始刪除最后(最右邊)一個 . 號及左邊的所有字符#if [ $fileRemoveTime ] # 檢測字符串是否為空,不為空返回 true。# ${#fileRemoveTime} 返回字符串長度,也是一個strif [ ${#fileRemoveTime} = 10 ] # = 檢測兩個字符串是否相等,相等返回 true; 檢測字符串長度是否等于10,等于則返回 true。then# echo $STAMP $fileRemoveTime# echo ${#fileRemoveTime}difference=$[ $STAMP - $fileRemoveTime ] # 支持的運算符與let相同,但也只支持整數運算# echo $difference# 24 * 60 * 60 * 3 = 259200 s 即 3 天if [ $difference -gt 259200 ];thenecho "# `date` : rm file $i"/usr/bin/rm -rf $ififi done3. 用 remove.sh 替換 rm
vim ~/.bashrc # 你用的是zsh的話就改為 ~/.zshrc chmod +x /home/lixy/bin/remove.sh # 給remove.sh 添加可執行權限 alias rm='/home/lixy/bin/remove.sh' # 替換rm, 保存退出 source ~/.bashrc # 刷新環境變量替換過之后,rm?刪除的文件,會被移動到 /home/lixy/.trash 文件夾,并且會在文件后添加?.1555481687的后綴,該后綴為刪除時的時間(秒)
4. 添加定時任務
30 6 * * * /bin/bash /home/lixy/bin/removeRF.sh /home/lixy/.trash > /home/lixy/.trash/remove.log每天早上6.30 調用腳本,刪除指定的.trash?文件夾下的文件,腳本中會根據文件移動到.trash 時添加的后綴,判斷移動時間,移動時間大于3天的,即被?/usr/bin/rm?強制刪除
二、誤刪恢復
好的,現在就該神器extundelete上場了。
1、安裝
apt install extundelete?2、查找要恢復的驅動器名
df -h or lsblk Filesystem?????????????1K-blocks?????Used???Available?Use%?Mounted?on /dev/sda1?????????????????495844????64150??????406094??14%?/boot3、運行恢復
默認恢復到當前目錄下的RECOVERED_FILES目錄中去
恢復單個文件
extundelete?/dev/sdb1?--restore-file?hosts恢復一個目錄
extundelete?/dev/sdb1?--restore-files?test/恢復整個分區
extundelete?/dev/sdb1?–-restore-all這個工具貌似支持EXT4文件系統,經過實際測試,restore-all比較好用,在初次刪除后可以很好的恢復文件及目錄結構,但是如果我在相同位置新建了相同的文件名或者目錄名,就會恢復失敗(找不到了)。而恢復單獨的文件或者目錄則沒有成功,如果有成功的可以告訴我。
總結
以上是生活随笔為你收集整理的linux 创建一个垃圾篓防误删及其误删文件恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比较决策的收益(洛谷P2705题题解,J
- 下一篇: Linux 文件系统之 inode 概述