Running remote commands after vagrant ssh
vagrant ssh -- EXTRA SSH ARGS应该允许额外的参数传递给ssh。
vagrant ssh -- -t 'cd /var/www'应该ssh变为vagrant,将目录改为/var/www但不能,而是返回
ssh: Could not resolve hostname ls: nodename nor servname provided, or not known
我错过了什么?
这对我很有用:
1
| vagrant ssh -- -t 'cd /var/www; /bin/bash' |
- 啊哈!灿烂的。启动bash,使其不会立即退出。谢谢您!你也可以做vagrant ssh -c 'echo hello; /bin/bash'。
- -t是做什么的?我在手册上找不到
- @Guysoft请参阅以下说明unix.stackexchange.com/a/119899/99295
- @对于流浪汉C来说,这不适用,但这个答案是可行的。
- 什么是——做什么?没有它就不起作用。
- @progonkpa请参阅vagrantup.com/docs/cli/ssh.html,了解有关--
- "如果在命令行上找到一个——(两个连字符),那么之后的任何参数都会直接传递到ssh可执行文件中。这允许您传递任意的命令来做一些事情,比如反向隧道向下进入ssh程序。"这对于bash通常是有效的,而不仅仅是对vagrant有效。
要远程运行对移动设备的命令,请执行以下操作:
1
| vagrant ssh -c"COMMAND; COMMAND1" |
如果你需要,可以试试vagrant ssh --help。
- 在我的案例中,这个答案不起作用,它执行vagrant ssh -c"bundle exec rake some_task"。当命令包括exec时,它似乎失败了,emyl的回答也很好。