Shell-Script

rsync bash腳本“無法統計”

  • October 4, 2017

我正在編寫一個 bash 腳本,以通過 LAN 上的 ssh 從一台機器同步到另一台機器。它給了我一個 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]

您無需告訴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

嘗試使用以下,

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您指定要通過ssh stream. 如果您想了解更多sshrsync 的工作原理,請查看以下 URL,

rysnc 如何在 ssh 上工作?

引用自:https://unix.stackexchange.com/questions/395940