Shell 进入root,创建tmux,发送命令,然后附加-所有这些都通过bash脚本中的单个SSH命令完成
如何通过SSH发送命令:Shell 进入root,创建tmux,发送命令,然后附加-所有这些都通过bash脚本中的单个SSH命令完成,shell,ssh,root,tmux,Shell,Ssh,Root,Tmux,如何通过SSH发送命令: ssh user@server -t 它将创建一个tmux会话,向它发送命令,然后附加-允许您手动处理命令中显示的交互?这必须在以root用户身份登录的同时完成,而不是通过sudo ssh user@server -t "bash -c \"su - -c \"tmux -d \; apt-get update \; apt-get upgrade\" root\"" 或者干脆不使用bash-c(这是一种试图让SSH显示tmux窗口的尝试),因为它(当使用su而不是
ssh user@server -t
它将创建一个tmux会话,向它发送命令,然后附加-允许您手动处理命令中显示的交互?这必须在以root用户身份登录的同时完成,而不是通过sudo
ssh user@server -t "bash -c \"su - -c \"tmux -d \; apt-get update \; apt-get upgrade\" root\""
或者干脆不使用bash-c(这是一种试图让SSH显示tmux窗口的尝试),因为它(当使用su而不是sudo时)不会显示shell。这只是在从脚本运行它时发生的,当直接作为shell命令运行时没有问题
另一个尝试是:
ssh user@server -t "su - -c \"tmux new-session -n $session_name && tmux send-keys -t $session_name \"$command\"\" root"
后一种方法工作得比较好——只不过它连接到tmux会话,因此命令只能在手动退出tmux后发送
这个想法基本上是自动创建一个tmux会话,在其中运行一些命令,然后附加到它。这是作为bash脚本的一部分来完成的
有什么想法吗?对于那些感兴趣的人,我发现有效的命令是:
ssh -p22 user@server -t "su - root -c \"tmux -d $session_name\;\"-t $session_name -c \"apt-get update\"\" \; \"-t $session_name -c \"apt-get upgrade\"\"\""
但是,它不会让你输入tmux——只是将tmux的输入返回给用户。这是朝着正确方向迈出的一步,但并不完全正确
对于那些感兴趣的人来说,我发现有效的命令是:
ssh -p22 user@server -t "su - root -c \"tmux -d $session_name\;\"-t $session_name -c \"apt-get update\"\" \; \"-t $session_name -c \"apt-get upgrade\"\"\""
但是,它不会让你输入tmux——只是将tmux的输入返回给用户。这是朝着正确方向迈出的一步,但并不完全正确
非常开放的更有效的答案