rm替换方案

hcwei 2020年06月10日 468次浏览

背景

由于在服务器上执行rm命令是相当危险的行为,所以需要找到更合适的方案去替换rm命令,以减少误操作带来的危害。

1.新建remove.sh脚本,脚本内容如下:

#!/bin/bash
#create recycle dir.
REC_DIR="/home/.recycle"
[ ! -d ${REC_DIR} ] && mkdir ${REC_DIR}
for i in $*
do
#ignore "^-"
  if [[ $i =~ ^- ]]
  then
    continue
  else
    REC_TIME=`date +%Y-%m-%d-%H:%M:%S`
    REC_NAME=`basename $i`
    mv $i ${REC_DIR}/${REC_NAME}_${REC_TIME}
  fi
done

2.修改/root/.bashrc文件,如下:

[root@ ~]# cat /root/.bashrc 

# .bashrc
# User specific aliases and functions
#alias rm='rm -i'
alias rm='sh /tools/scripts/remove.sh' # 添加alias指定运行脚本
alias cp='cp -i'
alias mv='mv -i'
alias ss='netstat -lntup'
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

3.重新加载/root/.bashrc文件

source /root/.bashrc 

4.添加定时任务,定期清理/home/.recycle

echo "#clear recycle refuse"
echo "0 3 * * 1 find /home/.recycle -mtime +30 | xargs /usr/bin/rm -rf &>/dev/null" >>/var/spool/cron/root