リモートシステムでtmuxセッションを開始し、そのtmuxセッションでコマンドを実行する方法

リモートシステムでtmuxセッションを開始し、そのtmuxセッションでコマンドを実行する方法

長年にわたって使用されてきましたが、最近システムをアップグレードしたとき(Ubuntu 14.04から16.04へ)、中断された次のコードがあります。

_SNAME=$1-$2

TERM=xterm ssh x.y.z.com -t tmux new-session -A -s $_SNAME \'ssh $1\'

これは私にとって効果的です。

  1. tmux セッションが存在する場合は、そのセッションに接続します。
  2. tmux セッションがない場合は、新しい tmux セッションを作成し、SSH 経由でリモートサーバーに接続します。

しかし、OSのアップグレード後に動作が停止し、今[exited]

\'ssh $1\'問題は、tmuxセッションで実行するコマンドを指定したときに発生するようです(一部)。

tmuxは構文を変更しましたか?これを行う別の方法を見つけましたtmux send-keysが、ほとんどきれいではありません。

ベストアンサー1

あなたの引用は(おそらく)混乱しています。おそらくあなたの命令が私に効果があるようです。一重引用符を送信しないで、コマンドが引用されていることを確認してください。

_SNAME="$1-$2"
TERM=xterm ssh -t x.y.z.com tmux new-session -A -s "$_SNAME" "ssh $1"

発生する可能性のある問題は、'sshコマンドが見つからないことです。

最後の引数として試してみることもできますが、"'ssh $1'"これはすでに試しているのと同じです。

おすすめ記事