特定のウィンドウを使用してアクティブセッションに接続し、cronjobを実行する方法は?

特定のウィンドウを使用してアクティブセッションに接続し、cronjobを実行する方法は?

私の開発設定には複数のウィンドウを持つアクティブセッションがあり、cronjobの出力をこのアクティブセッションに出力したいと思います。特定のウィンドウ
私はcrontabに次のコマンドを書きました。

/bin/bash /home/user/backup.sh

したがって、バックアップスクリプトは非常に簡単に見えます。

#!/bin/bash
# Setting up all environment variables:
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
export PATH=$PATH:/usr/local/bin/
export DISPLAY=:0;

tmux new-session -d -s <session-name> -n <window name>
tmux send-keys "/usr/bin/rsync /home/user/input /home/user/output/" ENTER

しかし、スクリプトはtmuxの現在のアクティブウィンドウに出力を書き込みます。出力が次に移動することを確認するにはどうすればよいですか?ウィンドウ名私は台本でそのような話をしましたか?

みんなありがとうございます!

答え1

tmux new-windowオプションが含まれていて探しているようです-d。 ~からtmux(1):

新しい窓[-adkP ][-氏起動ディレクトリ] [- Fフォーマット] [-Nウィンドウ名] [-ティーターゲットウィンドウ] [シェルコマンド]

[...]

もし-D与えられると、セッションは新しいウィンドウを現在のウィンドウにしません。

したがって、スクリプトには単一のコマンドが必要です。

tmux new-window -d -n <new_window_name> -t <existing_session_name>: /usr/bin/rsync ...

:セッション名の後にあることに注意してください。このnew-windowコマンドの場合、このオプションにはターゲットセッションだけでなく、ターゲット-tウィンドウ(フォーマット)も必要です。session:window

関連情報