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重新登录!"

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