防止rm误删数据
背景:常在河边走,哪有不湿鞋。为了防止在linux服务器执行了"rm -rf"误删除重要数据。
下面提供如下选择方案:
1、建立回收站机制.
当你在删除数据的时候,并不是真的在删除数据,而是将文件移动到一个特定的目录中。相当于看似执行的是 rm 命令实际上执行的是 mv 命令。
1.1 下载下面脚本,将文件复制粘贴到~/.bashrc的下面
https://files.cnblogs.com/files/SyXk/rm%E5%9B%9E%E6%94%B6%E7%AB%99%E8%84%9A%E6%9C%AC_trash.rar
1.2 测试验证
准备环境如下:
验证结果如下:
2、使用trash-cli工具
trash-cli是一个使用 python 开发的软件包,包含 trash-put、restore-trash、trash-list、trash-empty、trash-rm等命令,我们可以通过这写命令,将文件移动到回收站,或者还原删除了的文件。
2.1 下载trash-cli安装包
2.2 开始安装
2.3 安装成功后,系统上就会有以下工具
功能说明:
trash-put 将文件或目录移入回收站
trash-empty 清空回收站
trash-list 列出回收站中的文件
trash-restore 还原回收站中的文件
trash-rm 删除回首站中的单个文件
2.4 安装完毕后,进行如下配置。用trash-put替换rm命令
2.5 测试验证
删除测试:
还原删除的文件
备注:
trash-put命令会把我们想要删除的文件移动到~/.local/share/Trash/files 中。
相关信息记录在~/.local/share/Trash/info中。
3、使用safe-rm工具
safe-rm ,它具有 rm 命令的所有功能,不过 safe-rm 命令可以设置路径黑名单,也就是说在黑名单中的目录或文件将不会被删除;我们把 rm 命令替换为 safe-rm ,之后执行 rm 命令也就相当于执行 safe-rm 命令,也就不会误删除黑名单中的目录或文件了。注意:一些脚本中使用完全路径/bin/rm则不会受此影响。
3.1 下载safe-rm安装包
wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz
tar -xf safe-rm-0.12.tar.gz
cp safe-rm-0.12/safe-rm /usr/local/bin/
3.2 替换safe-rm为系统默认的rm命令
做一个 rm 命令的符号链接,之后执行 rm 命令就相当于执行 safe-rm
设置环境变量,要保证/usr/local/bin在其他变量路径前面
先查看当前变量的顺序,可以看到/usr/local/bin没有在其他路径的最前面。
3.3 设置路径黑名单
创建/etc/safe-rm.conf文件,将重要文件或者目录的完整路径输入进去保存就可以了,每条以回车分隔。
vim /etc/safe-rm.conf
/
/bin
/boot
/dev
/etc
/home
/lib
/lib64
/media
/mnt
/opt
/proc
/run
/sbin
/root
/sbin
/sys
/srv
/usr
/usr/bin
/usr/include
/usr/lib
/usr/local
/usr/local/bin
/usr/local/include
/usr/local/sbin
/usr/local/share
/usr/sbin
/usr/share
/usr/src
/var
3.4 测试验证
说明:显示/bin/rm: missing operand,代表成功。如果不成功会显示"rm: missing operand"
测试删除目录
使用绝对路径:
可见:但使用绝对路径/bin/rm时。文件已经都被删除。系统崩坏。
4、使用chattr命令
对于文件而言:
chattr 操作符 属性 文件名
操作符: + :给文件增加属性 - :去除文件属性
属 性: a- 允许给文件追加内容 i- 保护模式(不允许删除或修改)
给文件增加+i属性.
可见:文件已经不允许进行删除与修改.
对于目录而言:
给目录增加+i属性.
可见:目录已经不允许进行删除与修改.
5、服务器定期做快照.
6、做好账号权限管理.
只允许哪些人有较高权限,而不允许哪些人执行哪些操作(如:不允许执行rm)。
7、部署堡垒机jumpserver
其他
问题1:ImportError:No module named psutil解决方案:
https://blog.51cto.com/chenql/2126694
问题2:pip安装软件时出现Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build*的解决方案
https://blog.csdn.net/qq_37110648/article/details/86982877
出处:https://www.cnblogs.com/syxk
^_^如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,您的“推荐” 将是我最大的写作动力^_^。
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。