前言
使用指令碼刪除檔案,刪除的同時指令碼對刪除的檔案進行了備份。倘若我們是誤刪除的那麼可以到達指定的備份目錄下選擇恢復。
一、指令碼內容
[root@hya shell]# vim rm.backup.sh
#!/bin/bash
name=$1
now=`date +%y%m%d%h%m`
read -p "你確定要刪除當前的檔案或者資料夾嗎 yes|no:" inpt
read -p "請在確定一次 是否刪除檔案或者資料夾 yes|no:" input
if [ $input == "yes" ] ||[ $input == "y" ];then
mkdir -p /data/.$now
#### 判斷rsync是否已經安裝
rsync=`rpm -qa rsync |wc -l`
if [ $rsync -ne 0 ];then
echo "現在開始備份資料"
else
#### 如果沒有rsync就先安裝rsync並啟動
yum install xinetd rsync -y
useradd -s /sbin/nologin -m rsync
mkdir -p /data
chown -r rsync.rsync /data/
echo "rsync_backup:123456" >/etc/rsync.password
chmod 600 /etc/rsync.password
fi rsync --daemon
#### 判斷要刪除的檔案是否存在
if [ -f $1 ] || [ -d $1 ];then
### 如果要刪除的檔案存在則開始備份
rsync -ar $1 /data/.$now/$1/
echo "資料備份成功"
else
echo "檔案不存在,請重新確認檔案名字"
exit 1
fiecho "開始刪除資料"
/bin/rm -rf $1
echo "檔案刪除成功,若需要恢復請到 /data/.$now/路徑下恢復"
elif [ $input == "no" ] ||[ $input == "n" ]
then
exit 0
else
echo "請輸入yes|no"
exit
fi
二、實操營
[root@hya shell]# chmod +x rm.backup.sh #授權 (給指令碼執行的許可權)
[root@hya ~]# cd /etc/
[root@hya etc]# sh /usr/local/shell/rm.backup.sh /etc/
你確定要刪除當前的檔案或者資料夾嗎 yes|no:yes
請在確定一次 是否刪除檔案或者資料夾 yes|no:yes
現在開始備份資料
資料備份成功
開始刪除資料
檔案刪除成功,若需要恢復請到 /data/.202006291515/路徑下恢復
##檢視是否刪除
[root@hya etc]# ls -l
總用量 0
恢復[root@hya etc]# mv /data/.202006291515/etc/* /etc/
[root@hya etc]# ls
etc
總結
此指令碼可用於日常的檔案誤刪除,一般情況下都可以。
AIX系統 dev null檔案誤刪後的恢復
dev null是個特殊的字元型裝置檔案,它是個虛擬的裝置,可以形象的理解為乙個無底黑洞,吞噬萬物的黑洞,且永遠填不滿。對系統非常重要,不需要儲存的資訊都可以丟到 dev null。testterm1 ls l dev null crw rw rw 1 root system 2,2 jul 31 ...
AIX系統 dev null檔案誤刪後的恢復
dev null是個特殊的字元型裝置檔案,它是個虛擬的裝置,可以形象的理解為乙個無底黑洞,吞噬萬物的黑洞,且永遠填不滿。對系統非常重要,不需要儲存的資訊都可以丟到 dev null。testterm1 ls l dev null crw rw rw 1 root system 2,2 jul 31 ...
誤刪除了Oracle的dbf檔案後的解決方法
問題描述 誤刪除oracle資料庫的dbf檔案,在啟動和關閉資料庫是會提示錯誤。ora 01157 無法標識 鎖定資料檔案 ora 01110 資料檔案 x1000 1.dbf 未找到 解決方法 1 sql alter system set allow resetlogs corruption tr...