2016-11-13 60 views
1
  • 我的任務:從多個服務器收集日誌文件。
  • 服務器文件結構:「/remote/path/dir/sub-dirs/files.log」,其中 在所有服務器上都是相同的。 (所有服務器都相同的一組 「子迪爾斯」,沒有可能發生,當然「files.log」名稱 不同)
  • 本地文件結構:「/本地/路徑/日誌」
  • 後複製我想有 「/local/path/logs/dir/sub-dirs/files.log」
  • 方法(在服務器的whlile循環中):scp -r $ SERVERS:/ remote/path/dir/local/path/logs
  • 問題:由於我不明白的原因,第一個scp命令 忽略了「dir」文件夾,我得到了「/local/path/logs/sub-dirs/files.log」 但是遵循scp命令給我什麼,我打算 「/local/path/logs/dir/sub-dirs/files.log」
  • 爲什麼會這樣,我應該如何解決/避開它?

謝謝!scp,文件結構保存不一致

回答

0

這究竟是爲什麼[...]

在命令scp -r path/to/source dest

  • 如果dest不存在,dest將創建目錄,並path/to/source/*會複製到它。例如,如果您有path/to/source/X則將創建dest/X
  • 如果dest是一個目錄,那麼將會創建dest/source,並且將path/to/source/*複製到它。例如,如果您有path/to/source/X則將創建dest/source/X

[...]以及我該如何修復/解決它?

提前創建dest,例如:

mkdir -p /local/path/logs 
scp -r $SERVERS:/remote/path/dir /local/path/logs 
+0

感謝您的幫助了小白,亞諾什。現在問題已解決。 – fanz