--delete-excluded 究竟会为 rsync 做什么?

ujj*_*ain 38 backup debian rsync rsnapshot

我很高兴使用 rsync 来备份我的服务器,尽管我对--delete-excluded参数有疑问。

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded     --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01
Run Code Online (Sandbox Code Playgroud)

来自man rsync

 --delete-excluded       also delete excluded files from dest dirs
Run Code Online (Sandbox Code Playgroud)

对我来说,一个非英语母语者,这意味着 rsync 将从远程服务器上的实际目标目录中删除排除的目录,所以如果我有/home/backup并且/home/settings在我的排除文件夹中,这些文件夹实际上将从远程服务器中删除

从其他几个资源来看,它似乎会从本地备份文件夹中删除文件以节省空间。例如,您可以在服务器本身上创建小型备份并排除这些数据,这样您就不会浪费存储空间。

尽管 rsync 只能以一种方式完成它的工作,但对我来说这很重要,因为人们说它可以正常工作,但我不想在拥有删除远程服务器上的文件/目录的软件时冒任何风险。

Der*_*rfK 45

你的解释是正确的。如果您已排除传输的文件或目录,--delete-excluded 将从目标端删除它们(这不必是“远程服务器”,您可以使用rsync从服务器复制到本地计算机)如果它在那里找到它们。例如,如果您使用--exclude=*.o --delete-excluded,那么如果 rsync 在目标端找到任何以 .o 结尾的文件,它将删除它们,无论它们是否存在于源目录中。

  • 我最近发现“--delete-excluded”完全等同于“--delete --delete-excluded”。在上面提供的答案示例中,源端不存在的远程文件也将被删除。 (4认同)
  • @chronoz 如果要从远程服务器复制到本地计算机,则目标是本地计算机。如果要从本地计算机复制到远程服务器,则目标是远程服务器。目的地在这里很重要。如果目标是远程服务器,那么它将从远程服务器中删除文件。 (3认同)