【教程】Linux使用git自动备份和使用支持文件恢复的rm命令

这篇具有很好参考价值的文章主要介绍了【教程】Linux使用git自动备份和使用支持文件恢复的rm命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

【教程】Linux使用git自动备份和使用支持文件恢复的rm命令,学习之旅,linux,运维,服务器,rm,trash

背景介绍

        首先非常不幸地告诉你:Linux 系统的标准 rm 命令不支持文件恢复功能。一旦使用 rm 删除了文件或目录,它们就会从文件系统中永久删除,除非你使用专门的文件恢复工具尝试恢复这些文件。

        不过,为了提供文件恢复功能,存在一些替代方案,其中 trash-cli 是一个非常流行的选择,它为命令行环境提供了回收站功能。

        很心疼,我的工程又一次被我误删了。

方案介绍

使用git自动备份

        这个方法大家都知道,每次记得提交一下,如果误删除了可以回退,只是每次要提交很麻烦。

参考的自动提交脚本auto_git.sh

#!/bin/bash

# 指定git仓库的目录
repo_dir="/mnt/disk/test"
# 指定日志文件路径
log_file="/mnt/disk/test/git_backup.log"

# 记录操作开始的时间
echo "Auto Backup Start at $(date)" >> "$log_file"

# 检查是否为git仓库,如果不是则初始化
if [ ! -d "$repo_dir/.git" ]; then
    echo "Initializing git repository in $repo_dir" >> "$log_file"
    git -C "$repo_dir" init >> "$log_file" 2>&1
fi

# 执行git操作
cd "$repo_dir" || exit
git add .
git commit -m "Auto Backup on $(date +'%Y-%m-%d %H:%M:%S')"
# git push origin main >> "$log_file" 2>&1

# 记录操作结束的时间
echo "Backup completed at $(date)" >> "$log_file"

加入crontab:

crontab -e

添加内容:*/10 * * * * /mnt/disk/test/auto_git.sh

备份效果:

【教程】Linux使用git自动备份和使用支持文件恢复的rm命令,学习之旅,linux,运维,服务器,rm,trash

使用trash-cli代替rm

   trash-cli 提供了一系列命令行工具,模拟了图形界面下回收站的行为,允许用户将文件“删除”到回收站,从而可以在需要时恢复这些文件。如果你想要一个支持文件恢复的 rm 指令,可以考虑将 trash-cli 集成到你的工作流程中。

安装trash-cli

在Ubuntu系统上,你可以通过以下命令安装trash-cli

sudo apt update

sudo apt install trash-cli

使用trash-cli的基本命令

官方文档:https://github.com/andreafrancia/trash-cli/blob/master/README_zh-CN.rst

trash-cli 提供以下命令:

trash-put           把文件或目录移动到回收站
trash-empty         清空回收站
trash-list          列出回收站文件
trash-restore       恢复回收站文件
trash-rm            删除回收站文件
  • 删除文件或目录: 使用trash-put命令将文件或目录放入垃圾箱。例如,要删除名为example.txt的文件,你可以使用:

    trash-put example.txt
  • 列出垃圾箱中的内容: 使用trash-list命令查看垃圾箱中的文件。这将显示垃圾箱中所有文件的列表,包括删除日期。

    trash-list
  • 恢复垃圾箱中的文件: 使用trash-restore命令从垃圾箱中恢复文件。这个命令会启动一个交互式界面,让你选择要恢复的文件。

    trash-restore
  • 清空垃圾箱: 使用trash-empty命令清空垃圾箱中的所有内容。你也可以指定保留最近N天内删除的文件不被删除,例如,保留最近7天内删除的文件:

    trash-empty 7

    不带参数运行trash-empty将清空垃圾箱中的所有文件。

  • 删除特定文件: 如果你知道要删除的文件的确切名称,可以使用trash-rm命令从垃圾箱中删除特定文件。例如,删除垃圾箱中所有名为example.txt的文件:

    trash-rm example.txt

    注意事项

  • 使用trash-cli时,删除的文件会被移动到一个专门的目录(通常是~/.local/share/Trash),而不是被立即从文件系统中永久删除。
  • trash-cli提供了一种安全删除文件的方式,因为你有机会恢复错误删除的文件。
  • 确保定期检查和清理垃圾箱,以避免它占用过多的磁盘空间。

创建别名以替代 rm

        如果你习惯于使用 rm 命令,并且想要一个不那么永久的删除操作,可以通过在你的 shell 配置文件中(如 .bashrc.zshrc)设置别名来实现。通过设置别名,当你输入 rm 时,实际上可以调用 trash-put

        在你的 .bashrc.zshrc 文件中添加以下行:

alias rm='trash-put'

        保存文件并重新加载配置(通过执行 source ~/.bashrcsource ~/.zshrc),之后,当你在终端中使用 rm 命令时,实际上会使用 trash-put,这样删除的文件就可以恢复了。

附:使用文件恢复工具

有多种Linux文件恢复工具可用来尝试恢复删除的文件,例如:

  • TestDisk:一个强大的恢复工具,可以恢复丢失的分区和非常有效地恢复删除的文件。
  • PhotoRec:由TestDisk开发者创建,专注于恢复图像、视频、文档等文件类型,从磁盘、相机和内存卡中。
  • extundelete:对于使用Ext3或Ext4文件系统的磁盘,这个工具可以尝试恢复删除的文件。
  • foremost:是一个基于文件头和尾信息恢复文件的工具,可以工作在各种文件系统上。

(基本上用处不大的)文章来源地址https://www.toymoban.com/news/detail-831770.html

到了这里,关于【教程】Linux使用git自动备份和使用支持文件恢复的rm命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 思科路由器交换机IOS文件自动备份与还原设置教程

    思科IOS配置文件的自动备份与回退需要使用到IOS的archive归档配置模式功能。 一般来说,只有IOS的版本号在12.3(4) 与其之后的版本才带有归档配置模式功能。 思科IOS配置文件自动备份全部命令如下 : Router Routerenable Router#configure terminal Router(config)#archive Router(config-archive)#write-

    2024年02月05日
    浏览(47)
  • linux中用shell脚本定时备份重要日志等文件【命令结果输出也在内。按月份自动创建时间自动规划到月份中】、linux中用shell脚本备份文件并自动scp汇总到一个服务器上

    现在甲方有一个需求:要求每月备份系统日志 问题: 1、有37台服务器需要备份且汇总到一

    2024年02月19日
    浏览(58)
  • windows server : windows server backup 服务(自动定时备份,一次备份,恢复),安装&搭建&恢复(图形化)

    实验环境: Windows server 2016 ———— 搭建安装环境 图形化使用backup(自动,一次) 恢复 1.搭建安装环境 虚拟机需要需要多加一个硬盘进行备份,硬盘大小的选择,我推荐和要备份的盘一样大小,或者比要备份的再大一点,或者根据backup里的推荐大小去选择硬盘 我要备份的

    2024年02月03日
    浏览(68)
  • 如何使用Git暂存文件再恢复

    git stash 概念:git stash命令用于临时保存当前工作目录的修改,以便在需要的时候恢复。 下面是一些常用的git stash命令: 实际操作: 比如当前修改了文件,使用git status查看修改的情况。 接着,使用命令暂存4个文件: 查看暂存情况: 然后拉取最新的代码(使用硬拉方式)。

    2024年02月10日
    浏览(38)
  • ansible playbook 恢复备份文件

    有的时候我们用copy模块备份的文件想要回滚 那我们就可以用下面这种方式进行回滚 cat restore.hosts.yml cat saas_hosts_all ansible-playbook -i saas_hosts_all  restore.hosts.yml -C

    2024年01月20日
    浏览(42)
  • Clonezila备份Linux并恢复

    Clonezila备份Linux并恢复 Tuxboot制作U盘镜像: tuxboot-0.8.2.exe 镜像版本: clonezilla-live-2.7.3-19-amd62.4.zip ​ 制作完成后需在U盘中新建目录用于存放镜像 ​ 不同品牌的主板设置U盘启动的方式不同,请根据主板品牌进行设置 ​ 参照: CentOS系统备份/恢复(Clonezila) 2.4.1、选择Clonezi

    2024年02月14日
    浏览(30)
  • 【Linux】MySQL备份与恢复

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 备份的主要目的是灾难恢氨 在生产环境中,数据的安全性至关重要 任何数据的丢失都可能产生严重的后果 造成数据丢失的原因 ●程序错误 ●人为操作错误 ●运算错误 ●磁盘故障 ●灾难 (如火灾、地

    2024年02月10日
    浏览(31)
  • 机器人编程教程5使用Git和SD卡副本备份代码

    在本章中,您将学习到以下内容: 代码是如何破坏或丢失的 策略 1 - 将代码保存在电脑上并上传 策略 2:使用 Git 回溯历史 策略 3 - 制作 SD 卡备份 代码和它的近亲--配置,都需要时间和艰苦的努力。代码需要配置才能运行,例如 Raspberry Pi 操作系统配置、额外软件和必要的数

    2024年02月13日
    浏览(38)
  • 配置文件和IOS的备份与恢复

    实验1:备份配置文件和IOS 1.构建网络拓扑结构图 2.首先对路由器进行配置 3.配置路由器的ip和其他配置 4.配置服务器的ip地址 5.在路由器上测试网络的连通性 6.在服务器上选择TFTP,检查服务是否开启 7.将配置文件备份到文件服务器 8.回到服务器查看配置文件 9.拷贝路由器的

    2024年01月23日
    浏览(34)
  • JFrog Artifactory的数据备份与恢复教程

    目录 一、数据备份        1、使用管理员账号登录JFrog的后台,点击“Backups”选项        2、查看备份规则        3、修改备份规则          4、测试备份规则是否生效        5、查看备份进度 二、数据恢复         1、使用管理员账号登录JFrog的后台,点击“

    2023年04月24日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包