rsync bash 脚本“无法统计”

rsync bash 脚本“无法统计”

我正在编写一个 bash 脚本,通过 LAN 上的 ssh 从一台机器 rsync 到另一台机器。它给了我一个 link_stat 错误,并引用了一个我完全不确定来源的目录。

这个错误提示什么,这个路径在脚本中来自哪里?

备份文件夹的位置是/home/user/rsynctest/

#!/bin/bash
rsync -av ssh ../Backup/ 192.168.100.120:/media/storage1/Backup

错误...

    sending incremental file list
    rsync: link_stat "/home/user/rsynctest/Backup/ssh" failed: No such file or directory (2)

    sent 270 bytes  received 16 bytes  572.00 bytes/sec
    total size is 23  speedup is 0.08
    rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]

答案1

您不需要告诉rsync使用 ssh。当给定远程路径时,它将默认使用它。命令行上的“ssh”被解释为要复制的另一个文件路径。由于 rsync 进程无法找到该名称的文件,因此它会抱怨(然后继续复制给定的下一个路径)。

所以改变

rsync -av ssh ../Backup/ 192.168.100.120:/media/storage1/Backup

rsync -av ../Backup/ 192.168.100.120:/media/storage1/Backup

答案2

尝试使用以下内容,

rsync -av ../Backup/ -e ssh 192.168.100.120:/media/storage1/Backup 

或者

rsync -ave ssh ../Backup/ 192.168.100.120:/media/storage1/Backup 

不工作原因:

当您要用来ssh传输文件时,您必须使用该-e标志。从联机帮助页来看,

-e, --rsh=COMMAND 指定要使用的远程 shell

在这里,通过使用,-e ssh您指定要通过 来连接到远程 shell ssh stream。如果您想了解更多sshrsync 的工作原理,请检查以下 URL,

rysnc 如何通过 ssh 工作?

相关内容