Linux自定義防誤刪腳本

之前看公司師傅做了一個linux下的回收站腳本。感覺很有想法,因此作文檔以記錄。
其原理爲:修改系統內部的rm命令使用mv命令代提後將刪除的文件保存在某個目錄下,避免刪除誤操作。
後續可以使用cron定期的在回收站目錄下的文件,也可用於恢復。
備註:cron定時任務中的/bin/rm可以使用系統的環境變量, 不受用戶的環境變量影響。
以下是腳本內容:
#!/bin/bash
#Description:
#Author:L.Wang
#Version:1.0
#CreateTime:2018-10-23 17:08:56

#!/bin/bash
#定義rm刪除腳本
CMD_SCRIPTS=$HOME/.rm_scripts.sh

#定義回收站目錄
RECYCLE_DIR=$HOME/.RECYCLE_DIR
BASHRC=$HOME/.bashrc

[ ! -d ${RECYCLE_DIR} ] && mkdir -p ${RECYCLE_DIR}

cat > ${CMD_SCRIPTS} << EOF
PARA_CNT=\$# #將參數個數傳遞給變量PARACNT
RECYCLE
DIR=$RECYCLE_DIR #定義部分變量,不可刪除。

for i in \$*;do
DATE=\$(date +%F-%T)
filename=\$(basename \$i)
mv \$i \$RECYCLE_DIR/\$filename.\$DATE
done
EOF

sed -i "s@$(grep 'alias rm=' $BASHRC)@alias rm='bash ${CMD_SCRIPTS}'@g" $BASHRC #替換本身的rm命令
. $BASHRC #重新加載配置。

echo "設置定時任務刪除幾天前的文件,結合實際補充 。"
echo "刪除目錄: $RECYCLE_DIR"
echo "刪除腳本: $CMD_SCRIPTS"
echo "請執行:source $BASHRC來加載文件或者退出當前shell重新登錄!"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章