我想知道一种简单的方法来使用scp来复制文件系统上不同路径中存在的文件和文件夹.ssh目标服务器请求密码,我不能把它放在配置文件中.我知道scp没有我可以从脚本提供的密码参数,所以现在我必须逐个复制每个文件或目录,每次都写入我的密码.
Hac*_*chi 12
除了已经提到过的glob:
您可以使用{,}在一个语句中定义备用路径/路径部分
例如: scp user@host:/{PATH1,PATH2} DESTINATION
aer*_*man 10
从这个网站:
SSHSOCKET=~/.ssh/myUsername@targetServerName
ssh -M -f -N -o ControlPath=$SSHSOCKET myUsername@targetServerName
scp -o ControlPath=$SSHSOCKET myUsername@targetServerName:remoteFile.txt ./
ssh -S $SSHSOCKET -O exit myUsername@targetServerName
它直观,比创建密钥对更安全,比创建压缩文件更快,对我有用!
如果您可以使用单个 glob 模式表达要从远程系统复制的文件的所有名称,那么您可以在单个scp命令中完成此操作。不过,此用法仅支持本地系统上所有文件的单个目标文件夹。例如:
scp 'RemoteHost:/tmp/[abc]*/*.tar.gz' .
Run Code Online (Sandbox Code Playgroud)
复制远程系统中名称以、或(something).tar.gz开头的子目录中的所有文件。单引号是为了保护 glob 模式不被本地系统上的 shell 解释。/tmpabc
如果您无法将要复制的所有文件表示为单个 glob 模式,并且您仍然希望使用单个命令(以及单个 SSH 连接,该连接仅要求您输入密码一次)来完成复制,那么您可以:
scp,例如sftpor rsync、 or| 归档时间: |
|
| 查看次数: |
17427 次 |
| 最近记录: |