如何备份CentOS回收站,确保数据不因系统故障或误操作而丢失?
- 内容介绍
- 文章标签
- 相关推荐
在 CentOS 程序里文件被误删后往往只能通过“回收站”或手动恢复来挽回,但这两种方法都存在缺陷:程序崩溃、磁盘损坏或误操作可能导致回收站里的文件彻底丢失。如果没有及时备份,一旦数据丢失,恢复几乎不可能。建立一个可靠的回收站备份方案很关键。
一、了解 CentOS 回收站的特殊性
与 Windows 的可视化回收站不同。CentOS 默认并没有一个统一的图形化回收站,而是依赖使用者自定义目录来存放被删除的文件。确认回收站的位置和类型是备份前的第一步先。按理说,
-
标准回收站: 位于
$HOME/.local/share/Trash/files与$HOME/.local/share/Trash/info - 自定义回收站: 有些使用者会把回收站放到其它方法。例如 /var/local/trash 等。
如何确认你的回收站位置?
从打开终端执行来看,
# 查看默认标准位置
ls -la $HOME/.local/share/Trash/files
ls -la $HOME/.local/share/Trash/info
# 如果你使用了自定义方法。请替换为对应目录
ls -la /var/local/trash/files
ls -la /var/local/trash/info
二、使用 tar 命令实现全量备份
痛点:你不想每次手动压缩整个目录,也不想因为忘记更新而导致旧版本残留。
# 备份脚本 backup_trash_tar.sh
#!/bin/bash
SRC="$HOME/.local/share/Trash"
DST="/backup/trash_$.tar.gz"
mkdir -p "$"
tar -czf "$DST" -C "$SRC" .
echo "✅ 已将 $SRC 备份到 $DST"
自动化建议:
- Create a cron job to run daily:
* * * * * /usr/local/bin/backup_trash_tar.sh>> /var/log/trash_backup.log 2>&1
三、使用 rsync 做增量同步 + 定时清理旧备份
痛点:你只想保存最近一周的历史,以免占用过多硬盘空间。
# 备份脚本 backup_trash_sync.sh
#!/bin/bash
SRC="$HOME/.local/share/Trash"
DST="/backup/trash"
mkdir -p "$DST"
# 同步 files 目录
rsync -a --delete "$SRC/files/" "$DST/files/"
# 同步 info 文件夹
rsync -a "$SRC/info/" "$DST/info/"
# 清理超过7天的旧目录
find "$DST" -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;echo "✅ 已同步并清理旧版本"
定时任务示例:
- Add to crontab :
@daily /usr/local/bin/backup_trash_sync.sh>> /var/log/trash_sync.log 2>&1
四、利用 trash-cli 工具简化操作与备份管理
- 安装 trash-cli:
# 在 CentOS 上安装 EPEL 并安装 trash-cli
sudo yum install epel-release
sudo yum install trash-cli
trash-put ~/Documents/confidential.txt
trash-list
trash-restore # 会弹出交互式列表供选择恢复
备份建议在使用 trash-cli 时可以结合上面提到的 tar 或 rsync 脚本定期打包当前 Trash 内容,以防止意外永久删除。
五、恢复数据与注意事项
"我需要从旧版本中恢复某个文件"
- 验证备份完整性:`tar tf backup_trash_20240818.tar.gz` 或 `rsync --list-only` 检查是否有损坏。
- Select correct backup snapshot:`cd /backup/trash_20240818` 并查看 `files` 与 `info` 子目录。
-
COPY & REPLACE:`cp --preserve=all files/
/path/to/destination`;随后可以用 `trash-restore` 或手动复制回来。 -
Avoid overwriting newer data:`mv files/
/path/to/destination .` 前请先检查目标位置是否已存在同名文件,并决定是否覆盖或重命名。 - "如果我不小心把整个 Trash 清空了怎么办?": 在上述脚本中已经包含了保留最近7天记录,你可以直接从对应日期的归档中提取所需文件。 若没有归档,则可能无法恢复。
说到恢复小贴士。先验证,再操作,怎么说呢,
- **永远不要直接写入原始 Trash 方法**——这样会把新数据覆盖掉老数据。导致恢复变得更难,最好先解压或同步到临时目录,再手工移动。
- **做好日志记录**——所有脚本都输出日志到 `/var/log/*_log`,方便排查问题。
- **定期检查硬盘空间**——因为归档堆积,磁盘很快就会满。如果发现可用空间不足,请及时扩容或调整保留周期。
- **测试还原流程**——每隔几个月模拟一次从归档中恢复一个文件,确保脚本无误且你熟悉流程。 .
让你的 CentOS 回收站安全无忧!
.
在 CentOS 程序里文件被误删后往往只能通过“回收站”或手动恢复来挽回,但这两种方法都存在缺陷:程序崩溃、磁盘损坏或误操作可能导致回收站里的文件彻底丢失。如果没有及时备份,一旦数据丢失,恢复几乎不可能。建立一个可靠的回收站备份方案很关键。
一、了解 CentOS 回收站的特殊性
与 Windows 的可视化回收站不同。CentOS 默认并没有一个统一的图形化回收站,而是依赖使用者自定义目录来存放被删除的文件。确认回收站的位置和类型是备份前的第一步先。按理说,
-
标准回收站: 位于
$HOME/.local/share/Trash/files与$HOME/.local/share/Trash/info - 自定义回收站: 有些使用者会把回收站放到其它方法。例如 /var/local/trash 等。
如何确认你的回收站位置?
从打开终端执行来看,
# 查看默认标准位置
ls -la $HOME/.local/share/Trash/files
ls -la $HOME/.local/share/Trash/info
# 如果你使用了自定义方法。请替换为对应目录
ls -la /var/local/trash/files
ls -la /var/local/trash/info
二、使用 tar 命令实现全量备份
痛点:你不想每次手动压缩整个目录,也不想因为忘记更新而导致旧版本残留。
# 备份脚本 backup_trash_tar.sh
#!/bin/bash
SRC="$HOME/.local/share/Trash"
DST="/backup/trash_$.tar.gz"
mkdir -p "$"
tar -czf "$DST" -C "$SRC" .
echo "✅ 已将 $SRC 备份到 $DST"
自动化建议:
- Create a cron job to run daily:
* * * * * /usr/local/bin/backup_trash_tar.sh>> /var/log/trash_backup.log 2>&1
三、使用 rsync 做增量同步 + 定时清理旧备份
痛点:你只想保存最近一周的历史,以免占用过多硬盘空间。
# 备份脚本 backup_trash_sync.sh
#!/bin/bash
SRC="$HOME/.local/share/Trash"
DST="/backup/trash"
mkdir -p "$DST"
# 同步 files 目录
rsync -a --delete "$SRC/files/" "$DST/files/"
# 同步 info 文件夹
rsync -a "$SRC/info/" "$DST/info/"
# 清理超过7天的旧目录
find "$DST" -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;echo "✅ 已同步并清理旧版本"
定时任务示例:
- Add to crontab :
@daily /usr/local/bin/backup_trash_sync.sh>> /var/log/trash_sync.log 2>&1
四、利用 trash-cli 工具简化操作与备份管理
- 安装 trash-cli:
# 在 CentOS 上安装 EPEL 并安装 trash-cli
sudo yum install epel-release
sudo yum install trash-cli
trash-put ~/Documents/confidential.txt
trash-list
trash-restore # 会弹出交互式列表供选择恢复
备份建议在使用 trash-cli 时可以结合上面提到的 tar 或 rsync 脚本定期打包当前 Trash 内容,以防止意外永久删除。
五、恢复数据与注意事项
"我需要从旧版本中恢复某个文件"
- 验证备份完整性:`tar tf backup_trash_20240818.tar.gz` 或 `rsync --list-only` 检查是否有损坏。
- Select correct backup snapshot:`cd /backup/trash_20240818` 并查看 `files` 与 `info` 子目录。
-
COPY & REPLACE:`cp --preserve=all files/
/path/to/destination`;随后可以用 `trash-restore` 或手动复制回来。 -
Avoid overwriting newer data:`mv files/
/path/to/destination .` 前请先检查目标位置是否已存在同名文件,并决定是否覆盖或重命名。 - "如果我不小心把整个 Trash 清空了怎么办?": 在上述脚本中已经包含了保留最近7天记录,你可以直接从对应日期的归档中提取所需文件。 若没有归档,则可能无法恢复。
说到恢复小贴士。先验证,再操作,怎么说呢,
- **永远不要直接写入原始 Trash 方法**——这样会把新数据覆盖掉老数据。导致恢复变得更难,最好先解压或同步到临时目录,再手工移动。
- **做好日志记录**——所有脚本都输出日志到 `/var/log/*_log`,方便排查问题。
- **定期检查硬盘空间**——因为归档堆积,磁盘很快就会满。如果发现可用空间不足,请及时扩容或调整保留周期。
- **测试还原流程**——每隔几个月模拟一次从归档中恢复一个文件,确保脚本无误且你熟悉流程。 .
让你的 CentOS 回收站安全无忧!
.

