【问题标题】:SSH and create a log file named as the machines nameSSH 并创建一个名为机器名称的日志文件
【发布时间】:2012-02-25 03:49:38
【问题描述】:

我运行一个 ssh 主机并运行 java 程序的脚本。我使用 nohup 并希望输出和错误日志文件名称为 hostnameoutput.log 和 hostnameerror.log。我无法运行该程序。我尝试将值保存在变量中并将其附加到日志文件名中,并尝试了直接方法。

以下是创建附加机器名称的日志文件的直接方法。这里有什么错误?

ssh $host "hostname; nohup java -cp program.jar >hostnameoutput.log 2>hostnameerror.log & "

【问题讨论】:

  • 这里似乎存在一些语法问题,例如一组不平衡的引号,这将阻止它执行。在不知道您输入的实际行的情况下很难调试。你能用你正在使用的实际行替换文本吗?
  • 很抱歉让您感到困惑。这是我执行的行。它做了 ssh 并向我展示了主机名。但是后来使用类似的命令,我尝试在机器名后面加上 output.log 和 error.log。这没用。 ssh $host "hostname; nohup java -cp program.jar >hostnameoutput.log 2>hostnameerror.log & "
  • 请编辑您的原始问题以反映您实际输入的内容,包括第二组引号的位置等。您可能还想回答下面有人提出的问题。
  • 感谢您的回复和建议。

标签: linux shell ssh nohup


【解决方案1】:

你想要日志文件在哪里 - 假设 /bin/bash

使用远程主机名创建远程日志文件:

ssh $host 'nohup java -cp program.jar >`hostname`output.log 2>`hostname`error.log &'

使用远程主机名创建本地日志文件

 nohup (ssh $host 'java -cp program.jar ' > ${host}.output.log 2> ${host}error.log ) &

我不能诚实地告诉你想要什么,请以此为起点。

【讨论】:

  • 很抱歉给您带来了困惑。谢谢你的帮助。
  • 实际上我创建的文件不在当前工作目录中,这让我感到困惑。默认情况下,它们会转到主目录。问题中的语法是正确的。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多