如何修改我的脚本来备份我的文件

如何修改我的脚本来备份我的文件

我已将我的文件(只是文本文件、jpeg、电影)从我的旧 Windows 电脑转移到我刚刚购买的独立 Linux 笔记本电脑(s/h Dell Linux Mint 17.1)。要将这些文件备份到USB,备份工具有两个问题:

  • (1) 该工具不会从 USB 中删除我从笔记本电脑中删除的文件,这意味着要通过 USB 来删除它们,
  • (2)每次要备份都需要设置Tool,很烦人。

我只用了几周时间就了解了 Linux。我编写了以下脚本,从终端快速运行:

#!/bin/bash
rsync -arh --quiet --delete ~/ /media/my-laptop/my-usb

我怀疑这有问题。一切似乎都或多或少地工作正常(即每次运行脚本后的USB都有硬盘上内容的精确副本),但是(使用ctrl h)我看到隐藏文件也被复制,并生成过程中出现很多错误信息,例如:

rsync : mkstemp “media/my-pc/my-usm/.local/share/Trash/files/. …...” failed : Invalid argument (22). 

rsync : symlink “media/my-pc/my-usm/.local/share/Trash/files/….”  →  “….”  failed : Operation not permitted (1). 

请简单修改一下我的2行#!上面的脚本允许我备份我的文件,并且只是我的文件,没有隐藏文件和相关的错误消息?

答案1

与其试图避免备份点文件,不如查看这些文件备份失败的原因。

您的备份目标可能是 FAT 文件系统。这无法处理与您的文件关联的所有元数据(所有权、权限等),因此您不会制作数据的“真实”副本。

这里的一种选择是将设备重新格式化为ext4文件系统并备份到该文件系统。您可以获得适用于 Windows 的 FOSS 驱动程序来读取ext4文件系统,这样您就不会孤立数据。

如果您要重新格式化 USB 设备,请仔细检查您要格式化的设备是否正确。如果你删除了根文件系统,那么恢复起来会非常困难。

我希望它是就像是 /dev/sdb1但不是/dev/sda*。您也许可以使用命令确定设备mount | grep /media,但请确保设备名称与从 获得的设备名称不同mount | grep '/$'。如果有疑问,请使用命令的完整结果更新您的问题mount

另一种选择是使用增量备份工具,例如duplicity.

答案2

如果你这样做不是想要包含“隐藏”文件,您可以告诉rsync忽略那些:

--exclude=".*"

所以,根据你的例子,它会是这样的:

rsync -arh --quiet --exclude=".*" --delete ~/ /media/my-laptop/my-usb


编辑: 但请注意,这种方法意味着您将不是备份任何.您的配置文件(以文件名开头的“隐藏”文件)。

相关内容