技術領域
本發(fā)明涉及數(shù)據(jù)安全技術,具體的說是一種基于Shell的安全刪除和恢復文件的方法。
背景技術:
由于目前使用的Linux文件系統(tǒng)大多是Ext4格式的,文件一旦刪除,很可能無法恢復,即便可以恢復也十分麻煩。所以執(zhí)行rm命令變得異常危險,并且rm命令缺乏一定得靈活性。為此,本發(fā)明通過編寫兩個Shell腳本來實現(xiàn)安全刪除和恢復文件的功能。
技術實現(xiàn)要素:
本發(fā)明針對目前技術發(fā)展的需求和不足之處,提供一種基于Shell的安全刪除和恢復文件的方法。
本發(fā)明所述一種基于Shell的安全刪除和恢復文件的方法,解決上述技術問題采用的技術方案如下:所述一種基于Shell的安全刪除和恢復文件的方法,在Linux系統(tǒng)下創(chuàng)建文件刪除、文件恢復腳本文件來替代rm操作,當對文件進行刪除操作后,文件并不會被真正的刪除,而是被移動到一個特定的目錄下;當用戶需要將其恢復時,可從特定目錄下進行恢復。
優(yōu)選的,在Linux系統(tǒng)下使用Shell編寫文件刪除腳本erase、文件恢復腳本unerase。
優(yōu)選的,通過Linux系統(tǒng)自帶的crond服務定時清理文件存放目錄,對特定目錄下文件進行刪除。
本發(fā)明所述一種基于Shell的安全刪除和恢復文件的方法與現(xiàn)有技術相比具有的有益效果是:通過本發(fā)明,當對文件進行刪除操作后,文件并不會被真正的刪除,而是被移動到一個特定的目錄下,當用戶需要將其恢復時,可從特定目錄下進行恢復,從而避免了因用戶誤操作而導致的數(shù)據(jù)丟失的情況;通過操作系統(tǒng)定時任務,對特定目錄下文件進行刪除,避免了因刪除大量文件而導致磁盤空間滿的情況;本方法非常靈活的實現(xiàn)文件的刪除恢復操作,減少因誤刪除導致數(shù)據(jù)丟失的風險,很好的保證了系統(tǒng)數(shù)據(jù)的安全性,非常實用。
文件刪除恢復腳本使用Shell腳本編寫,通用性強,可跨平臺使用;另外,可以自定義被刪除文件暫存的文件目錄和清理文件存放目錄時間間隔非常靈活方便。本方法無需安裝第三方軟件,具有簡單易用、通用性強、便于移植等特點。
附圖說明
附圖1為所述基于Shell的安全刪除和恢復文件的方法的示意框圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結合具體實施例,對本發(fā)明所述一種基于Shell的安全刪除和恢復文件的方法進一步詳細說明。
本發(fā)明所述一種基于Shell的安全刪除和恢復文件的方法,在Linux系統(tǒng)下創(chuàng)建兩個腳本文件來替代rm操作,當對文件進行刪除操作后,文件并不會被真正的刪除,而是被移動到一個特定的目錄下。當用戶需要將其恢復時,可從特定目錄下進行恢復,從而避免了因用戶誤操作而導致的數(shù)據(jù)丟失的情況。通過操作系統(tǒng)定時任務,對特定目錄下文件進行刪除,避免了因刪除大量文件而導致磁盤空間滿的情況。這樣,通過本發(fā)明所述方法,能夠很好的實現(xiàn)Linux下文件的安全刪除和恢復功能。
實施例:
本實施例一種基于Shell的安全刪除和恢復文件的方法,在Linux系統(tǒng)下使用Shell腳本編寫文件刪除、恢復腳本,來替代rm操作,自定義文件刪除后存放的目錄,當刪除文件操作發(fā)生時,將文件移動到該目錄;當需要恢復時通過文件刪除恢復腳本來進行恢復文件。
此外,為了防止因刪除大量文件而導致磁盤空間滿的情況發(fā)生,本實施例所述基于Shell的安全刪除和恢復文件的方法,通過Linux系統(tǒng)自帶的crond服務定時清理文件存放目錄,避免了因刪除大量文件而導致磁盤空間滿的情況,保證操作系統(tǒng)正常運行。
附圖1為所述基于Shell的安全刪除和恢復文件的方法的流程圖,如附圖1所示,首先配置文件刪除腳本erase、文件恢復腳本unerase,并配置crond服務,使用erase替代rm操作,判斷是否有誤刪除操作,若存在誤刪除,則通過unerase恢復文件,若刪除恰當,則根據(jù)故障日志對故障進行處理,通過crond服務定時清理。
本實施例所述基于Shell的安全刪除和恢復文件的方法,所使用文件刪除腳本erase,其程序文件如下:
#! /bin/bash
RecycleBin=~/.temp
(($#==0)) && { echo "No paraments!";exit 1; }
if [ ! -d $RecycleBin ]; then
mkdir $RecycleBin
fi
for i in $*
do
if test -e $i
then
cd $(dirname $i)
mv -f $(basename $i) $RecycleBin/$(find $(pwd) -maxdepth 1 -name $(basename $i) | tr "/" "=")
cd -
else
echo "$i:No such file or directory!"
fi
done
說明:RecycleBin=~/.temp為自定義刪除文件后暫存目錄。
所使用文件恢復腳本unerase,其程序文件如下:
#! /bin/bash
cd ~/.temp
list=$(for i in $*; do ls |grep "\<$i\>"; done)
(($#==0)) && { list=$(ls|grep ""); }
for j in $list
do
file=$(echo $j | tr "=" "/")
mv $j ${file%/*}/${file##*/}
done
說明:cd ~/.temp為自定義刪除文件后暫存目錄,與erase腳本中定義目錄相對應。
同時需要使用系統(tǒng)自帶的crond服務來定時清除暫存目錄下的內容,定義方法如下:
[root@mu01 ~]# crontab -e
59 23 * * * rm -rf /root/.temp/*
保存退出。
說明:59 23 * * * rm -rf /root/.temp/*為每天23時59分刪除自定義的文件刪除暫存目錄。
所述基于Shell的安全刪除和恢復文件的方法,其具體實施過程如下:
1、在節(jié)點上編寫定義erase和unerase腳本,自定義文件刪除暫存目錄,可自定義任意目錄,以~/.temp目錄為例。通過命令“chmod +x erase”“chmod +x unerase”授予erase和unerase腳本可執(zhí)行權限,復制腳本文件至/usr/bin/目錄下;
2、自定義crond服務,定義方法如下:
[root@mu01 ~]# crontab -e
59 23 * * * rm -rf /root/.temp/*
保存退出。以每天23時59分刪除自定義的文件刪除暫存目錄為例;
3、腳本命令使用方法舉例
(1)在/opt/test/目錄下創(chuàng)建1、3、5、7文件以及2、4、6、8目錄;
(2)使用命令erase 1刪除1文件、2目錄,ls命令查詢發(fā)現(xiàn)1文件和2目錄在當前目錄下被刪除。進入~/.temp目錄,使用ls命令查詢發(fā)現(xiàn)被刪除的1文件和2目錄,并且以=opt=test=1、=opt=test=2的方式命名;
(3)使用命令unerase 1恢復被刪除文件1,查詢后發(fā)現(xiàn)1文件已經從~/.temp目錄下恢復到/opt/test目錄。使用命令unerase 2恢復被刪除的目錄2,也同樣可以恢復到/opt/test目錄中。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的權利要求書的且任何所屬技術領域的普通技術人員對其所做的適當變化或替換,皆應落入本發(fā)明的專利保護范圍。