二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 最佳实践

  • 迎刃而解

  • Nginx

  • Php

  • Zabbix

  • AWS

  • Prometheus

  • Grafana

  • Loki

  • CentOS

    • Linux好用命令之w命令
    • Linux好用命令之top命令
    • Linux好用命令之free命令
    • Linux好用命令之lsof命令
    • Linux好用命令之expect命令
    • Linux好用命令之gzip保留原文件解压缩
    • Linux好用命令之dig命令
    • Linux好用命令之rsync命令
    • Linux好用命令之curl劫持请求的三种方式
    • Linux好用命令之base64命令
    • Linux好用命令之figlet命令
    • Linux好用命令之watch命令
    • 使用trash-cli给Linux服务器加一个回收站的功能
      • 1,安装。
        • 1,安装方法一。
        • 2,安装方法二。
      • 2,了解功能。
      • 3,添加 rm 别名。
      • 4,使用示例。
        • 1,创建示例文件。
        • 2,将其一并删除。
        • 3,使用命令查看。
        • 4,恢复文件。
        • 5,删除回收站的单个文件。
        • 6,清空回收站。
      • 5,安装。
      • 6,用法。
      • 7,配置。
    • CentOS-7中tmp目录的清理规则
    • 用yum的方式快速安装lnmp环境(MySQL5-5&5-7,php5-x&7-x)
    • CentOS系统里TCP状态中TIME_WAIT超过3万的分析与建议
    • CentOS-7如何释放主机根分区的磁盘空间
    • 实践一次抓包看到TCP的三次握手与四次挥手及其他
    • CentOS-arm架构下安装docker
    • Logrotate入门了解及生产实践
    • 为什么不建议Linux用root登陆或启动服务
  • Supervisord

  • Systemd

  • Docker

  • Docker-Compose

  • Rancher

  • Ansible

  • OpenLdap

  • GitLab

  • GitHub

  • Etcd

  • Consul

  • RabbitMQ

  • Kafka

  • Mysql

  • MongoDB

  • OpenVPN

  • Kvm

  • VMware

  • 配置文件详解

  • Other

  • 运维观止
  • CentOS
二丫讲梵
2019-02-20
目录

使用trash-cli给Linux服务器加一个回收站的功能

文章发布较早,内容可能过时,阅读注意甄别。

有些让人痛心的经历,会让你成长,我相信,所有开始使用这个工具,以及开始愿意去部署这个工具的人,应该都是有遭受过误删除所带给自己的那种恐慌以及无奈。

我也一样,所以,我打算了解一下回收站的事儿,就走进了开源工具trash-cli。地址如下:

trash-cli

回收站

- name: trash-cli
  desc: 回收站
  avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4 # 可选
  link: https://github.com/andreafrancia/trash-cli # 可选
  bgColor: "#0074ff" # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
  textColor: "#fff" # 可选,默认var(--textColor)
1
2
3
4
5
6

# 1,安装。

# 1,安装方法一。

安装非常简单,使用两条命令搞定。

yum install -y python-setuptools.noarch
easy_install trash-cli
1
2

一般情况下,没啥问题就安装成功了。

# 2,安装方法二。

如果主机内核还是 2.6 的 CentOS6,那么可以通过如下方式安装,这种安装方式,适用于 CentOS6 以及 CentOS7:

wget https://github.com/andreafrancia/trash-cli/archive/master.zip

unzip master.zip

cd trash-cli-master

python setup.py install
1
2
3
4
5
6
7

如果最后一步安装不报错,那就成功了。

有时候这种方式安装完成之后,可能无法在系统层面适用对应的命令,可以加入如下一条命令:

ln -s /usr/local/python/bin* /usr/bin/
1

即可正常使用!

# 2,了解功能。

安装之后,系统会新增几个工具:

[root@docker ~]$ls /usr/bin/ |grep trash
trash
trash-empty
trash-list
trash-put
trash-restore
trash-rm
1
2
3
4
5
6
7

说明:

trash-put          将文件或目录移入回收站
trash-empty        清空回收站
trash-list         列出回收站中的文件
trash-restore      还原回收站中的文件
trash-rm           删除回收站中的单个文件
1
2
3
4
5

image

# 3,添加 rm 别名。

直接在系统当中添加如下命令:

[root@docker ~]$echo "alias rm='trash-put'" >> /etc/bashrc

[root@docker ~]$source /etc/bashrc
1
2
3

虽然在 Github 中作者并不建议这么做,而是建议当使用 rm 的时候输出一段提示,作者原话说:

Can I alias rm to trash-put?
You can but you shouldn't. In the early days I thought it was good idea do that but now I changed my mind.
The interface of trash-put seems to be compatible with rm it has a different semantic that will cause you problems. For example, while rm requires -R for deleting directories trash-put does not.
But sometimes I forgot to use trash-put, really can't I?
You may alias rm to something that will remind you to not use it:
alias rm='echo "This is not the command you are looking for."; false'
If you really want use rm simply prepend a slash:
\rm file-without-hope
Note that Bash aliases are used only in interactive shells, so using this alias should not interfere with scripts that expects to use rm.
1
2
3
4
5
6
7
8
9

但是我觉得这样也是可以的,配置方便,已用。

# 4,使用示例。

配置完成之后,我们可以正常的使用 rm 命令。

# 1,创建示例文件。

[root@docker opt]$touch a b c
[root@docker opt]$mkdir 1 2 3
[root@docker opt]$ls
1  2  3  a  b  c
1
2
3
4

# 2,将其一并删除。

[root@docker opt]$rm -rf ./*
[root@docker opt]$ls
1
2

# 3,使用命令查看。

[root@docker opt]$trash-list
2018-10-30 16:21:00 /opt/1
2018-10-30 16:21:00 /opt/2
2018-10-30 16:21:00 /opt/3
2018-10-30 16:21:00 /opt/a
2018-10-30 16:21:00 /opt/b
2018-10-30 16:21:00 /opt/c
1
2
3
4
5
6
7

这个时候,文件其实保存在$USER/.local/share/Trash/files下,可以用命令查看一下。

[root@docker opt]$ls /$USER/.local/share/Trash/files
1  2  3  a  b  c
1
2

# 4,恢复文件。

[root@docker opt]$trash-restore
   0 2018-10-30 16:21:00 /opt/1
   1 2018-10-30 16:21:00 /opt/2
   2 2018-10-30 16:21:00 /opt/3
   3 2018-10-30 16:21:00 /opt/a
   4 2018-10-30 16:21:00 /opt/b
   5 2018-10-30 16:21:00 /opt/c
What file to restore [0..5]: 0
[root@docker opt]$ls
1
1
2
3
4
5
6
7
8
9
10

通过每个文件前边的数字选择,从而判断恢复哪个文件,目前貌似没发现批量恢复的办法,当然你可以直接去目录下进行恢复。

# 5,删除回收站的单个文件。

[root@docker opt]$trash-rm 2
[root@docker opt]$trash-list
2018-10-30 16:21:00 /opt/3
2018-10-30 16:21:00 /opt/a
2018-10-30 16:21:00 /opt/b
2018-10-30 16:21:00 /opt/c
1
2
3
4
5
6

# 6,清空回收站。

[root@docker opt]$trash-empty
[root@docker opt]$trash-list
[root@docker opt]$
1
2
3

基本上用法就是这些用法,如果是普通用户,那么道理是一样的,这里的道理一样指的是普通用户使用此命令之后,也会在其家目录下生成一个回收站。

通常在配置了回收站机制之后,都要顺手将自动清空回收站的机制加上的,不然会导致一些文件没被及时清除,从而让系统磁盘压力过大。

前几天在服务器增加了回收站功能,所以磁盘空间可能会受到影响,因此就再做一个策略就是自动清理回收站几天前的东西。

现有一个工具是 autotrash。

autotrash

自动清理工具

- name: autotrash
  desc: 自动清理工具
  avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4 # 可选
  link: https://github.com/bneijt/autotrash # 可选
  bgColor: "#0074ff" # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
  textColor: "#fff" # 可选,默认var(--textColor)
1
2
3
4
5
6

# 5,安装。

可以直接从 github 下载:

$ wget https://github.com/bneijt/autotrash/archive/v0.2.1.zip
$ unzip v0.2.1.zip
$ cd autotrash-0.2.1
$ python setup.py install

$ whereis autotrash

autotrash: /usr/bin/autotrash
1
2
3
4
5
6
7
8

执行安装完成之后,对应的可执行文件就已经自动放入了/usr/bin下了。

注意 github 上直接下载的这个可能会报错,那么我将可用的已经上传了百度云,可在下边下载。

image

地址如下:

提取码在下边,根据提示获取即可。

提取码: tnq7

# 6,用法。

$ autotrash -d 30   #删除回收站中超过 30 天的文件
$ autotrash -td 30  #删除所有用户的回收站文件,上边的命令只删除当前用户对应的回收站文件
$ autotrash --max-free 1024 -d 30  #如果回收站的剩余的空间少于 1GB,那么 autotrash 将从回收站中清除超过 30 天的已删除文件
1
2
3

# 7,配置。

现实中我们将之写入到定时任务,从而让清理工作自动执行。

echo "#add clean tool" >> /var/spool/cron/root
echo "@daily /usr/bin/autotrash -d 7" >> /var/spool/cron/root
echo "#add clean tool" >> /var/spool/cron/test
echo "@daily /usr/bin/autotrash -d 7" >> /var/spool/cron/test
1
2
3
4

这样就实现了每天清理回收站 7 天前的文件了。

微信 支付宝
#centos#github
上次更新: 2024/07/04, 22:40:37
Linux好用命令之watch命令
CentOS-7中tmp目录的清理规则

← Linux好用命令之watch命令 CentOS-7中tmp目录的清理规则→

最近更新
01
睡着的人不关灯
06-12
02
学习周刊-总第215期-2025年第24周
06-12
03
学习周刊-总第214期-2025年第23周
06-05
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式