您的位置:首页 > 运维架构 > Linux

在linux设置回收站 - 防止失误操作造成数据清空,并定期清理

2017-08-04 16:19 309 查看


安装trash

sudo apt-get install trash-chi


原理

执行trash命令后,是将文件移动了用户的回收站,每个用户的回收站路径为$HOME/.local/share/Trash,比如用户asin的回收站位于/home/asin/.local/share/Trash,用户root的回收站位于/root/.local/share/Trash。

每个用户删除自己的文件后,都会将该文件移动到自己的回收站中。

rm命令,运行该命令后,文件基本就无法恢复

查看已经删除的文件

lstrash


恢复已经删除的文件

restore-trash


设置别名

1.若要每次登入就自动生效别名,则把别名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc

2. 若要让每一位用户都生效别名,则把别名加在/etc/bash.bashrc最后面,然后# source /etc/bash.bashrc

alias rm=trash
alias lstrash=trash-list
alias rm!="/bin/rm-vi"


source /etc/bash.bashrc
bash


删除别名

格式:unalias name
#  unalias cp


查看别名 

alias


强制清空回收站

rm -fr $HOME/.local/share/Trash/files/*
rm -fr $HOME/.local/share/Trash/info/*


自动定期清理 trash 目录

删除存在回收站超过 7 天的文件并删除.log 中相应记录

arrayA=($(find ~/trash/* -mtime +7 | awk '{print $1}'))
for file in ${arrayA[@]}
do
$(rm -rf "${file}")
filename="${file##*/}"
echo $filename
$(sed -i /$filename/'d' "$HOME/trash/.log")
done


脚本编写完成后通过 chmod 命令赋予其执行权限,然后运过 crontab –e 命令添加一条新的任务调度:

10 18 * * * /bin/ cleanTrashCan


该语句的含义为,在每天的下午 6 点 10 分执行 cleanTrashCan 脚本

通过这条任务调度,trash 的大小会得到有效的控制,不会持续增大以致影响用户的正常操作。

参考文献

Shell Script实现回收站功能

回收站功能在 Linux 中的实现

如何在linux设置回收站 - 防止失误操作造成数据清空

crontab的使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: