scp,文件结构保存不一致

时间:2016-11-13 06:57:12

标签: bash scp directory-structure

  • 我的任务:从多个服务器收集日志文件。
  • 服务器文件结构:" /remote/path/dir/sub-dirs/files.log",其中 在所有服务器上都是一样的。 (所有服务器都具有相同的设置 " sub-dirs",缺席可能发生,当然" files.log"名 不同)
  • 本地文件结构:" / local / path / logs"
  • 复印后我想拥有 " /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"
  • 为什么会发生这种情况,我该如何解决/解决它?

谢谢!

1 个答案:

答案 0 :(得分: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