Bash 如何通过脚本通过ssh查看远程shell中的日志,并按住ctrl+;C

Bash 如何通过脚本通过ssh查看远程shell中的日志,并按住ctrl+;C,bash,shell,ssh,Bash,Shell,Ssh,我正在尝试自动化一项每天必须重复执行的简单任务:在ssh后查看远程服务器的日志 我已经编写了一个脚本来实现这一点,但问题是,如果在查看日志的任何时候,如果我按下ctrl+C,它会将我从服务器中注销。下面是我手动执行的流程: ssh-t-p端口号user@remote sudo su docker日志-f service\u name 然后,我有时也会按ctrl+C在远程服务器上执行一些命令,然后我会再次查看日志 为了实现上述三个步骤的自动化,我尝试了几种方法,而且效果也很好,但每当我按下ctrl

我正在尝试自动化一项每天必须重复执行的简单任务:在ssh后查看远程服务器的日志

我已经编写了一个脚本来实现这一点,但问题是,如果在查看日志的任何时候,如果我按下
ctrl+C
,它会将我从服务器中注销。下面是我手动执行的流程:

  • ssh-t-p端口号user@remote
  • sudo su
  • docker日志-f service\u name
  • 然后,我有时也会按ctrl+C在远程服务器上执行一些命令,然后我会再次查看日志

    为了实现上述三个步骤的自动化,我尝试了几种方法,而且效果也很好,但每当我按下
    ctrl+C
    ,它都不会停留在远程位置并断开连接

    以下是我迄今为止所做的尝试:
    1.(最天真)

  • 我现在没有主意了,任何帮助都值得推荐。

    对我来说很好:

    ssh -t "servername" -l "username" "sudo docker logs -f service_name"
    pause
    

    所以,您希望ssh带有一个初始命令,但当该命令完成后,您希望保持在ssh会话中吗<代码>ssh-t-p端口号user@remotebash--init file'@Amadan非常感谢!您的解决方案确实有效,并且足以满足我的需要,但我只期望多一点。使用您的解决方案,我在服务器上被标识为
    bash-4.2$
    (在查看日志时按
    ctrl+C
    后,我看到了这一点),并且我没有root权限。我希望在按下
    ctrl+C
    后以root用户身份登录,就像我在手动流程中通常做的那样。在中断sudo命令后,您不能成为root用户,除非您使用root@remote. 无论如何,我会考虑使用屏幕。
    ssh -t -p port_num user@remote << HERE
    > sudo su -
    > docker logs -f service_name
    > HERE
    
    ssh -t -p port_num user@remote 'bash -s' < /path_to_file/test.sh
    
    ssh -t -p port_num user@remote "sudo docker logs -f service_name; bash"
    
    ssh -t "servername" -l "username" "sudo docker logs -f service_name"
    pause