【问题标题】:How to get complete console output from remote machine via SSH如何通过 SSH 从远程机器获取完整的控制台输出
【发布时间】:2021-03-17 20:23:04
【问题描述】:

我有一个普通的 bash 脚本,它将我本地开发的应用程序部署到测试服务器。脚本如下所示。

#!/usr/bin/env bash

ssh username@192.168.0.x "cd /my/directory/api && npm install"
ssh username@192.168.0.x "cd /my/directory/api && npm run build"
ssh username@192.168.0.x "cd /my/directory/api && npm run schema:drop"
ssh username@192.168.0.x "cd /my/directory/api && mysql -u username database_name < dump.sql"

现在我想在我的语言环境终端上获取此命令的输出。但是当命令失败时,我只会得到一些输出。如何获得完整的输出?

【问题讨论】:

    标签: shell npm ssh command-line terminal


    【解决方案1】:

    对同一主机重复运行ssh 命令是笨拙且低效的。

    ssh username@192.168.0.x "
        set -e  # abort on any failure
        cd /my/directory/api
        npm install
        npm run build
        npm run schema:drop
        mysql -u username database_name < dump.sql" >output.log 2&>1
    

    【讨论】:

    • 不完全确定set -e 会在这种模式下工作;如果它不是交互式的,它只会退出shell。不幸的是,我不在一个可以测试这个的地方。如果它在失败时没有中止,您可以更改命令的传递方式,使其不是交互式的,或者取出set -e,而是以&amp;&amp;结束每一行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-05
    • 2022-11-26
    • 1970-01-01
    • 2013-06-11
    • 2020-10-21
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多