2017-12-22 18 views
0

ローカルマシン上で正しく動作している以下のコマンドがあります。sshでウォッチを使用する

watch -t -n1 "echo `date '+%Y-%m-%d %H:%M:%S'` | tee -a Time.txt" &>/dev/null & 

しかし、私は、私が期待される出力すなわちTime.txtが作成されていないと、バックグラウンド・プロセスとして実行されませんが作成されませんリモートマシンからそれを実行します。

ssh ipaddress watch -t -n1 "echo `date '+%Y-%m-%d %H:%M:%S'` | tee -a Time.txt" &>/dev/null & 

私にこれを手伝ってください。私はwatchコマンドのために」、「パットのような複数のオプションを試してみましたが、それは私を助けていなかった

+0

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

+0

プログラミングについてのみです。私は自動化スクリプティングに悩まされている。誰でも助けることができると感謝します – sush

答えて

0
  • を出力するサブシェルの結果をechoを使用する必要が取り付けられていません。
  • teeをファイルに追加する必要はありません。
  • watchを1秒間スリープする必要はありません。

これを代わりにお試しください。

ssh -t ipaddress 'while sleep 1; do date +%Y-%m-%d\ %H:%M:%S >> Time.txt; done &' 
+0

ありがとうございます。それは動作している、すなわち、各1秒後にリモートマシン時間を更新する。しかし、バックグラウンドプロセスを止める方法。何か方法はありますか? – sush

+0

これを強制終了するには、[バックグラウンドプロセスのPID](https://stackoverflow.com/questions/1908610/how-to-get-pid-of-background-process)を保存する必要があります。 – ceving

+0

ありがとうございました。私はバックグラウンドで走っている睡眠プロセスをすべて殺してしまいました。 – sush

0

あなたは間違ったシェルの構文た:explainshell

を、コマンドを実行しているときに、このエラーがスローされます。

Error opening terminal: unknown. 

あなたはオプション-t

-t  Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a 
     remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t 
     options force tty allocation, even if ssh has no local tty. 

を使用して、コマンド全体を引用して、SSHに渡して、charactを脱出しなければなりません必要なときにers。 explainshell

ssh -t ipaddress 'watch -t -n1 "echo `date +%Y-%m-%d\ %H:%M:%S` | tee -a Time.txt" \&\>/dev/null \&' 
+0

それは働いていません。私はエラーをターミナル:未知数、私は-tオプションを置く場合でも開いている取得しています。 – sush

関連する問題