如何附加到具有特定窗口的活动会话并运行 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 ] [-C开始目录] [-F格式 ] [-n窗口名称 ] [-t目标窗口] [shell 命令]

[...]

如果-d给出后,会话不会使新窗口成为当前窗口。

所以你的脚本将需要单个命令:

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

:请注意,会话名称后面有一个。对于该new-window命令,该-t选项需要一个目标窗口(格式为session:window),而不仅仅是一个目标会话。

相关内容