在我的开发设置中,我有一个带有多个窗口的活动会话,我想将 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
),而不仅仅是一个目标会话。