今天是一个难忘的日子,当时本来想清除主机上面data目录下的mysql8.0相关的数据文件的,进入mysql8.0的数据文件所在路径下,结果在执行rm -rf ./data/* 时打成了rm -rf /data/* ,一个回车下去,结果就悲剧了。整个/data目录下的所有文件全部删除了,瞬间奔溃了,真是欲哭无泪,索性之前主机做了快照备份的,立即回滚快照。
虽然最后解决了,但给我留下很大的阴影,为了避免以后才出现类似的情况,强烈建议生产环境中千万不要使用rm -rf 和 *这种操作,太危险了。删除了可以去回收站里面找,结果linux下还真有这样的工具,那就是使用 trash-cli。
trash-cli是一个使用 python 开发的软件包,包含 trash-put、restore-trash、trash-list、trash-empty、trash-rm等命令,我们可以通过这写命令,将文件移动到回收站,或者还原删除了的文件。
trash-cli的项目地址:trash-cli下载地址
1、下载trash-cli安装包
[root@VM_54_118_centos others]# git clone https://github.com/andreafrancia/trash-cli.git Cloning into 'trash-cli'... remote: Enumerating objects: 4556, done. remote: Total 4556 (delta 0), reused 0 (delta 0), pack-reused 4556 Receiving objects: 100% (4556/4556), 1.17 MiB | 716.00 KiB/s, done. Resolving deltas: 100% (2791/2791), done. 进入下载目录 [root@VM_54_118_centos others]# cd trash-cli/ [root@VM_54_118_centos trash-cli]# ll total 112 -rw-r--r-- 1 root root 251 Feb 2 17:29 bugs.txt -rw-r--r-- 1 root root 4766 Feb 2 17:29 check_release_installation.py -rw-r--r-- 1 root root 17992 Feb 2 17:29 COPYING -rw-r--r-- 1 root root 1432 Feb 2 17:29 CREDITS.txt drwxr-xr-x 3 root root 4096 Feb 2 17:29 docs -rw-r--r-- 1 root root 782 Feb 2 17:29 DONE.txt -rw-r--r-- 1 root root 3408 Feb 2 17:29 HISTORY.txt -rwxr-xr-x 1 root root 240 Feb 2 17:29 install-rpm.sh drwxr-xr-x 2 root root 4096 Feb 2 17:29 integration_tests drwxr-xr-x 3 root root 4096 Feb 2 17:29 man -rw-r--r-- 1 root root 78 Feb 2 17:29 MANIFEST.in -rw-r--r-- 1 root root 4774 Feb 2 17:29 README.rst -rw-r--r-- 1 root root 24 Feb 2 17:29 requirements-dev.txt -rwxr-xr-x 1 root root 293 Feb 2 17:29 setup.cfg -rw-r--r-- 1 root root 2423 Feb 2 17:29 setup.py drwxr-xr-x 2 root root 4096 Feb 2 17:29 tasks -rw-r--r-- 1 root root 799 Feb 2 17:29 TODO.txt drwxr-xr-x 2 root root 4096 Feb 2 17:29 trashcli -rwxr-xr-x 1 root root 127 Feb 2 17:29 trash-put -rwxr-xr-x 1 root root 126 Feb 2 17:29 trash-rm drwxr-xr-x 2 root root 4096 Feb 2 17:29 unit_tests -rw-r--r-- 1 root root 243 Feb 2 17:29 Vagrantfile
2、开始安装
[root@VM_54_118_centos trash-cli]# python setup.py install ....... running install_scripts copying build/scripts-2.7/trash-rm -> /usr/bin copying build/scripts-2.7/trash-list -> /usr/bin copying build/scripts-2.7/trash-put -> /usr/bin copying build/scripts-2.7/trash-empty -> /usr/bin copying build/scripts-2.7/trash -> /usr/bin copying build/scripts-2.7/trash-restore -> /usr/bin changing mode of /usr/bin/trash-rm to 755 changing mode of /usr/bin/trash-list to 755 changing mode of /usr/bin/trash-put to 755 changing mode of /usr/bin/trash-empty to 755 changing mode of /usr/bin/trash to 755 changing mode of /usr/bin/trash-restore to 755 running install_data copying man/man1/trash-empty.1 -> /usr/share/man/man1 copying man/man1/trash-list.1 -> /usr/share/man/man1 copying man/man1/trash-restore.1 -> /usr/share/man/man1 copying man/man1/trash-put.1 -> /usr/share/man/man1 copying man/man1/trash-rm.1 -> /usr/share/man/man1 running install_egg_info Writing /usr/lib/python2.7/site-packages/trash_cli-0.17.1.14-py2.7.egg-info
3、安装成功后我们的系统就有了以下工具.
[root@VM_54_118_centos ~]# ll /usr/bin/ | grep trash -rwxr-xr-x 1 root root 123 Feb 2 17:43 trash -rwxr-xr-x 1 root root 125 Feb 2 17:43 trash-empty -rwxr-xr-x 1 root root 124 Feb 2 17:43 trash-list -rwxr-xr-x 1 root root 123 Feb 2 17:43 trash-put -rwxr-xr-x 1 root root 127 Feb 2 17:43 trash-restore -rwxr-xr-x 1 root root 122 Feb 2 17:43 trash-rm
功能说明:
trash-put 将文件或目录移入回收站
trash-empty 清空回收站
trash-list 列出回收站中的文件
trash-restore还原回收站中的文件
trash-rm 删除回首站中的单个文件
4、安装完毕之后我们可以通过一些配置,用它替代 rm命令
[root@VM_54_118_centos ~]# vim .bashrc # .bashrc #alias rm='rm -i' alias rm='trash-put'
5、实验测试
删除测试:
[root@VM_54_118_centos ~]# rm -rf dump.rdb [root@VM_54_118_centos ~]# ll ~/.local/share/Trash/files -rw-r--r-- 1 root root 123 Jul 17 2018 dump.rdb [root@VM_54_118_centos ~]# trash-list 2019-02-02 18:02:33 /root/dump.rdb
还原删除的文件
[root@VM_54_118_centos ~]# trash-restore /root/dump.rdb 0 2019-02-02 18:01:08 /root/dump.rdb.bak 1 2019-02-02 18:02:33 /root/dump.rdb What file to restore [0..1]: 1 还原成功 [root@VM_54_118_centos ~]# ll /root/dump.rdb -rw-r--r-- 1 root root 123 Jul 17 2018 /root/dump.rdb
备注:
trash-put命令会把我们想要删除的文件移动到~/.local/share/Trash/files 中。
相关信息记录在~/.local/share/Trash/info中。