Xiaohanshu Shell-실수로 파일을 삭제 한 후 복구

머리말

      스크립트를 사용하여 파일을 삭제하면 스크립트가 삭제 된 파일을 동시에 백업합니다. 실수로 삭제 한 경우 지정된 백업 디렉토리로 이동하여 복원을 선택할 수 있습니다.

1. 스크립트 내용

[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
fi
echo "开始删除数据"
/bin/rm  -rf $1 

echo "文件删除成功,若需要恢复请到 /data/.$now/路径下恢复"
elif [ $input == "no" ] ||[ $input == "n" ]
then
    exit 0
else
   echo "请输入yes|no"
   exit
fi

2. 실용 캠프

[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

요약하자면

      이 스크립트는 실수로 매일 파일을 삭제하는 데 사용할 수 있지만 일반적으로 괜찮습니다.

추천

출처blog.csdn.net/yeyslspi59/article/details/108702575