【问题标题】:Continue/run commands after ssh into VM在 ssh 进入 VM 后继续/运行命令
【发布时间】:2015-12-30 11:21:37
【问题描述】:

在进入我需要的文件之前,我必须采取相当多的步骤,这就是为什么我试图在我的终端中设置一个别名,通过运行该别名让我进入该文件。

需要以下步骤才能到达我必须到达的地方:

  1. cd Sites
  2. vagrant ssh
  3. cd /var/www/miniportal.billetten.dk/logs/
  4. sudo -s
  5. cd /etc/apache2/sites-available/
  6. nano 25-av_miniportal.conf
  7. 编辑该文件中的第 33 行(我想可以跳转到该行)

我尝试设置这样的别名,但问题是它在我通过 SSH 连接到 Vagrant 后停止运行其余命令。如果我手动exit Vagrant,它会继续执行命令(当然会返回错误,因为没有这样的文件夹)。

问题是:如何确保在步骤 2 通过 SSH 登录后执行步骤 3 中的所有内容?

我的最终目标是建立一个 Apple Automator 程序,让我输入一个在第 33 行输入的值,但我现在只需要一个别名就可以了。

【问题讨论】:

  • 您想在每次执行 vagrant ssh 时运行它还是仅在初始化 vm (vagrant up) 时运行它?在第一种情况下,您需要为 3-7 创建别名并添加到您的 .bash;在第二个你可以使用脚本配置
  • 不,我不想每次执行vagrant ssh 时都运行它,因为我还必须在其中执行一些其他操作(很少,但确实会发生)。我发现不可能从我自己的机器向 Vagrant 发送命令,所以我现在设置了一个我在 SSH 到 Vagrant 后手动运行的操作。这将 4 个步骤变成了一个步骤,所以这是一个相当大的改进!

标签: command-line ssh terminal vagrant


【解决方案1】:

我知道我很久以前就问过这个问题,但与此同时我找到了解决方案,却忘记了我发布过这个问题。

我在.zshrc 文件中的别名如下所示:

alias changeCust='ssh -t root@192.168.56.101 "nano +32 /etc/apache2/sites-enabled/25-av_miniportal.conf && service apache2 reload"'

换句话说,它以 root 身份通过 SSH 连接到 vagrant(它会询问我的密码),将 nanos 连接到第 32 行(或您需要的任何行)的文件中,然后,当文件保存时,它会重新加载 apache2 和更改已应用。

只需使用下面的值并更改值。

alias AliasName='ssh -t root@your.ip.addres.here "nano +lineNumber /path/to/file"'

【讨论】:

    猜你喜欢
    • 2014-08-29
    • 2022-08-24
    • 2023-03-23
    • 2017-11-16
    • 1970-01-01
    • 2015-04-08
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多