【问题标题】:how to ssh run a tail and then send data to a mysql database如何 ssh 运行 tail 然后将数据发送到 mysql 数据库
【发布时间】:2015-08-29 21:45:04
【问题描述】:

此代码 SSH,然后在远程热点上运行 tail 命令。我现在想使用名为 insertPerfmon.sh 的本地脚本将尾数据传递到 mysql 数据库中。

如何将 ssh 会话中生成的数据传递到本地 shell 脚本 insertPerfmon.sh。本地 shell 脚本将向数据库发送数据。不过,我需要先把它弄到那里。

             ( ssh -nq -o StrictHostKeyChecking=no \
              -i $PEM_PATH/$PEM_FILE $USER@${host} -p $REMOTE_PORT \
             tail -n 5  $REMOTE_HOME/data/PerfMon*  |insertPerfmon.sh)

【问题讨论】:

    标签: linux bash unix ubuntu ssh


    【解决方案1】:

    如果insertPerfmon.sh 是:

    #!/bin/bash
    mydata=$(cat)
    echo $mydata
    # process & send $mydata to database
    

    以下应该有效:

    <your_ssh_command> | bash insertPerfmon.sh
    

    【讨论】:

    • 嗨,我如上所述添加了 bash insertPerfmon.sh。但是,没有数据传递给它。 Perfmon.sh 如下。 echo "Perfmon Data=$1"
    • 你的 ssh 命令输出什么?剥离 | bash insertPerfmon.sh 并显示输出。
    • @Sascha:您应该根据答案修改 *.sh 脚本。再试一次。您应该使用Perfmon_Data=$(cat) 而不是Perfmon_Data=$1 从标准输入读取数据。
    • 当我将它写入文件时,它很好。但是,我想将它保存在一个变量中,然后发送到数据库。下面的示例数据:1434273570748,193682,localhost Network I/O unit=kb:bytesrecv,,,,,true,0,0,0,0,ip-172-31-14-229,0,0 1434273570748,0, localhost 交换单位=mb:used,,,,,true,0,0,0,0,ip-172-31-14-229,0,0 1434273571748,148
    • 不要使用Perfmon_Data=$1。使用Perfmon_Data=$(cat)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多