【问题标题】:How to use scp in a bash script and wildcards如何在 bash 脚本和通配符中使用 scp
【发布时间】:2021-03-13 07:56:39
【问题描述】:

我有一个使用 scp 从远程服务器检索文件的 bash 脚本。

我的脚本如下所示:

read -p 'Enter pattern: ' VAR_DATE

SCPUSER='user'
SCPHOST='server.de'
SCPDIRECTORYREMOTE='/some/directory/remote'
LOCALDIR='/my/local/directory/somewhere'

scp $SCPUSER@$SCPHOST:"$SCPDIRECTORYREMOTE/test.txt" $LOCALDIR
scp $SCPUSER@$SCPHOST:"$SCPDIRECTORYREMOTE/*_$VAR_DATE.pdf" $LOCALDIR

不幸的是,只有第一个文件 (test.txt) 被下载。在我使用通配符 (*) 的所有其他文件中,我收到错误 scp: /some/directory/remote/*_MY_PATTERN No such file or directory

我尝试了很多solutions suggested 使用单引号和/或双引号。

到目前为止没有人工作。我做错了什么?

更新 这是bash -x的输出

+ read -p 'Enter pattern: ' VAR_DATE
Enter pattern: dffff
+ VAR_DATE=dffff
+ SCPUSER=user
+ SCPHOST=server.de
+ SCPDIRECTORYREMOTE=/some/directory/remote
+ LOCALDIR=/my/local/directory/somewhere
+ scp user@server.de:/some/directory/remote/test.txt /my/local/directory/somewhere
test.txt                                                                                       100% 2120    77.8KB/s   00:00    
+ scp 'user@server.de:/some/directory/remote/*_dffff' /my/local/directory/somewhere
scp: /some/directory/remote/*_dffff: No such file or directory

【问题讨论】:

  • 该错误消息看起来格式不正确,但如果您传入一个以 DOS 回车符结尾的字符串,它可能会出现格式错误。您能否提供一个示例运行的bash -x 成绩单?
  • 调试代码中的后缀.pdf 在哪里?
  • 为什么你认为应该有匹配这种模式的文件?就我们所知,错误信息只是陈述了一个无法回避的事实。
  • 文件在那里。当我直接在控制台中使用相同的 scp 命令时,它可以工作。

标签: bash ubuntu scp


【解决方案1】:

我怀疑本地 globbing 存在问题。这看起来是一个使用tarssh 的好地方。类似的,

ssh $SCPUSER@$SCPHOST "tar czf - $SCPDIRECTORYREMOTE/*_$VAR_DATE*" \
    | tar xvzf - -C $LOCALDIR

【讨论】:

  • xvzf 后面的减号是错字吗?
  • @codyLine 好问题!它不是。这表示从标准输入读取(在xvzf 之后)并写入标准输出(在czf 之后)。另请参阅 Unix Power Tools 10.13 Copying Directory Trees with tar and Pipes - 注意调整 tar 命令应该允许您使用一个命令传输所有相关文件。
  • 它不工作。我收到以下错误tar: /some/directory/remote/*_dffff: Cannot stat: No such file or directory tar: Exiting with failure status due to previous errors
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 2015-05-04
相关资源
最近更新 更多