ftp 支持将put "|..." "remote-file.name"
数据通过管道传输到 ftp 连接的命令。sftp 有类似的东西吗?
在 sftp 中,我收到以下错误:
sftp 'jmw@backupsrv:/uploads'
sftp> put "| tar -cx /storage" "backup-2012-06-19--17-51.tgz"
stat | tar -cv /storage: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如上所述,sftp 客户端显然没有执行命令。
我想使用管道命令直接将文件流重定向到 sftp。(因为在将其上传到 sftp 服务器之前,没有足够的空间在同一磁盘上创建备份文件。)
小智 5
由于这是您通过谷歌搜索此问题找到的第一个结果,并且尚未提及,因此我还将添加我在此处找到的解决方案:
您可以为此使用 curls sftp 实现。由于 curl 可能已经安装在许多系统上,因此这可能比使用自定义客户端的解决方案更受欢迎。
用法示例:
pg_dump -d database | pigz -1 | curl -u username -T - sftp://sftpserver/folder/dbbackup.sql.gz
Run Code Online (Sandbox Code Playgroud)
curl
使用您的.ssh/known_hosts
文件进行密钥验证。如果您的 ssh 客户端确实使用了 curl 中使用的库不支持的较新的加密标准,这可能会失败
要解决此问题,您可以使用以下命令将其他密钥类型添加到已知主机文件中:
ssh-keyscan sftpserver >> ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
或者您可以使用该-k
标志禁用密钥验证(不过我不建议这样做)
归档时间: |
|
查看次数: |
15463 次 |
最近记录: |