Dan*_*der 53 terminal command-line scp sftp
也许我的 google-foo 在这里失败了......我想使用我的 ssh 配置文件通过终端使用 SFTP 或 SCP 连接并上传一个 mysql 转储文件到我的远程服务器。根据我找到的文档,我应该能够做到这一点:
sftp -F db.sql.gz webost@staging2.example.com /tmp
Run Code Online (Sandbox Code Playgroud)
我也厌倦了配置中的别名:
sftp -F db.sql.gz myalias /tmp
Run Code Online (Sandbox Code Playgroud)
当我执行上述两个操作时,我只是打印出可能的命令,-F成为其中之一。
我已经可以使用本地配置中的快捷方式通过 ssh 连接就好了,所以我知道它有效:
ssh myalias
Run Code Online (Sandbox Code Playgroud)
**注意:我使用私钥/公钥对进行连接,因此我从不需要输入密码。密钥对确实有一个与之关联的密码短语,但 OS X Keychain 记得我第一次连接时。
......所以我不确定我做错了什么。
use*_*686 64
来自帮助文本:“ ... [-F ssh_config] ...”
根据上述内容,-F需要一个参数:OpenSSH 配置文件的路径,~/.ssh/config或类似的。但是你给它一个 gzip 压缩的 SQL 转储。
由于plainssh myalias已经在工作,您甚至不需要-F这里的选项。只是sftp myalias会连接到服务器。
但是,OpenSSHsftp客户端不支持像您尝试的那样上传文件;它只能下载文件(使用语法host:path)或在交互模式下工作。对于上传,您需要使用交互模式...
$ sftp myalias
sftp> cd /tmp
sftp> put db.sql.gz
Run Code Online (Sandbox Code Playgroud)
...或scp工具:
scp db.sql.gz myalias:/tmp
Run Code Online (Sandbox Code Playgroud)
或者
scp db.sql.gz webost@staging2.example.com:/tmp
Run Code Online (Sandbox Code Playgroud)(sftp 确实有一个批处理模式,它可以从文件中读取命令,使用-b,但scp用于单次上传更简单。)
还有其他 SFTP 客户端——lftp适合交互式使用,而curl可以更容易自动化。对于备份等,您还可以使用rsync(它运行自己的协议,但仍在 SSH 中)。
| 归档时间: |
|
| 查看次数: |
64034 次 |
| 最近记录: |