【发布时间】:2017-09-12 19:57:51
【问题描述】:
我将此 ssh 调用放在我们的 Linux 机器上名为“tstz”的以下 shell 脚本中,然后使用 linux“at”命令调用它,以便安排它稍后执行。
tstz 脚本:
#! /bin/ksh
/usr/bin/ssh -tt <remote windows server> pmcmds ${fl} ${wf} < /dev/null >/tmp/test1.log 2>&1
at 命令语法:
在 -f tstz 现在 + 1 分钟
ssh 调用按预期执行远程命令,但 ssh 连接在远程命令完成之前立即关闭。我需要连接保持打开状态,直到远程命令完成,然后以退出状态将控制权返回给 tstz 脚本。
这是我在 /tmp/test1.log 中遇到的错误:
tcgetattr:设备的 ioctl 不合适 ^[[2J与dc01nj2dwifdv02.nj.core.him的连接关闭。^M
注意:使用“at”命令调度tstz时,如果我不使用-tt,ssh命令将不会执行远程命令“pmcmds ${fl} ${wf}”。我相信这是因为需要终端。但是,我可以在前台的 Linux 命令提示符下运行 tstz,而无需在 ssh 命令行上使用 -tt,它会按预期运行。
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
/usr/bin/ssh -tt pmcmds ${fl} ${wf} /null >/tmp/test1.log 2>&1
-
本地 shell 正在处理您的重定向。单引号或 dbl-quote 您需要在远程 shell 上执行的命令,因此它被视为远程 shell 的命令。祝你好运。
-
我尝试了 'pmcmds DFD_ETIME wf_TESTa' 和 "pmcmds DFD_ETIME wf_TESTa" 没有 -tt 选项,当我使用 -tt 时,ssh 命令仍然在启动远程命令后立即退出。跨度>