trzsz / trzsz-go

trzsz-go is the go version of trzsz, makes all terminals that support local shell to support trzsz ( trz / tsz ).

Home Page:https://trzsz.github.io/go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

manjaro konsole下,trz 和 tsz hanging up

pmzgit opened this issue · comments

一:环境+工具链

os:manjaro21.3.5 minimal version
kernel:5.15.55
DE:kde plasma 5.24.6
terminal:konsole +fish shell
tmux:3.3a
tmux 配置方案:https://github.com/gpakosz/.tmux
安装方式:github-release下编译好的trzsz-go的可执行文件,已经配置在fish下的path下了

换句话说,上面基本上是 manjaro minimal 的最新版(滚动更新)

二、场景复现

  • 本机测试 trzsz bash,提示缺少zenity 可执行文件,于是正常安装:sudo pacman -S zenity,但是只能弹起zenity窗口,选择文件后,还是hanging up;

  • 使用trzsz-go 的 local模式,也即只在本机安装trzsz-go ,使用trzsz ssh user@host 登陆到服务器,但是进入服务器后,trz 和 tsz 都hanging up

  • 最终在目标服务器也安装了trzsz-go,使用服务器上的./trz./tsz可执行文件 能正常使用(使用trzsz ssh user@host 登陆到服务器)。

感觉在我的环境下,local模式不管用,只能local+server模式正常(单纯server模式下,还没来得及测试是否正常),难道不支持konsole吗,那我打算有时间试试alacrity,(当然全部在tmux里)

最后,非常感谢大佬开发在tmux下支持的上传下载工具,之前一直找类似工具都找不到,一开始trzsz只支持macos的时候,心都死了,后来大佬支持linux了,感动到哭

需要配合调试啥的,随时提供

local 模式是指在本地运行 tmux ? 没太看明白你这三种的 tmux 是在哪一步运行的。

如果是本地运行 tmux ,需要先运行 tmux ,再运行 trzsz ssh。

如果是先运行 trzsz bash,再运行 tmux,然后 ssh ,那是不支持的。把 ssh 换成 trzsz ssh 按理说也可以的,第一步 trzsz bash 实际就是多余的了。

trzsz 只能在本地运行,不支持在服务器上运行。
tmux 之后,再来一个 ssh 是不支持的( 除非 tmux 是在本地,并且使用 trzsz ssh )。

举一些例子:

用法 是否支持
本地 trzsz bash -> trz
本地 trzsz tmux -> trz
本地 trzsz bash -> tmux -> trz
本地 trzsz tmux -> bash -> trz
本地 trzsz ssh -> 服务器 tmux -> trz
本地 tmux -> trzsz ssh -> 服务器 trz
本地 trzsz tmux -> ssh -> 服务器 trz X
本地 trzsz bash -> tmux -> ssh -> 服务器 trz X

如果测试结果不符合上表,那可能与 konsole + fish shell 有关,需要协助定位一下问题。

local 模式是指在本地运行 tmux ? 没太看明白你这三种的 tmux 是在哪一步运行的。

如果是本地运行 tmux ,需要先运行 tmux ,再运行 trzsz ssh。

如果是先运行 trzsz bash,再运行 tmux,然后 ssh ,那是不支持的。把 ssh 换成 trzsz ssh 按理说也可以的,第一步 trzsz bash 实际就是多余的了。

就是本地运行 tmux ,需要先运行 tmux ,再运行 trzsz ssh

本地 tmux -> trzsz ssh -> 服务器 trz

就是这种使用方式,先进入tmux,然后 trzsz ssh,就进入服务器了,然后执行trz;这种场景下hanging up了。

具体命令列表:

tmux new -s local
trz ssh root@1xx.xx.xx.xx
trz or tsz file.md
  • 根据您的描述,这种使用方式,应该是正常的(我没有配置trzsz默认下载地址,是否跟这个有关,但是trz不用任何配置吧)
  • 我感觉在konsole+fish 下应该有问题,具体日志如何收集,我回头浏览一下issue,貌似有日志收集的方式?或者系统日志什么的,我也找找,回头贴到issue上来

trz ssh root@1xx.xx.xx.xx

这里应该是 trzsz ssh root@1xx.xx.xx.xx 吧?

日志收集方法:

trzsz -t ssh root@1xx.xx.xx.xx
echo -e '<ENABLE_TRZSZ_TRACE_LOG\x3E'
trz
echo -e '<DISABLE_TRZSZ_TRACE_LOG\x3E' 

第一个 echo 之后,正常会输出日志的路径(在本地电脑上的),第二个 echo 会关闭日志。

日志文件可以发送到我的邮箱 lonnywong@qq.com

抱歉前几天比较忙,今天收集了日志。日志稍后发您邮箱,命令执行现场如下截图。

如截图:必须本地机器和ssh到的远程服务器都安装上trzsz-go,才能正常传输吗?我看readme以为只要本地安装trzsz-go就可以了

当然整个日志是,上传功能正常的日志,没有出现hanging up。因为本机器和远程机器都是manjaro的环境(我自己的两台机器),周一我再次用别的系统服务器试试,并收集日志

Screenshot_20220730_190742

192.168.31.137 这台机器上运行的是 fish shell ?在这台服务器上没有运行 tmux 吧?

我看日志中有大量 VT100 控制字符的输出(这些导致了传输失败),看来我要抽空安装个 fish shell 试一下。

如果你有什么特殊的配置,也可以发一下给我。

@pmzgit 你发给我的日志是成功了的,不是挂起时的日志。

我刚安装了个 fish shell ,用 trzsz-go 时确实遇到了挂起的情况,我研究下看看。

这个 fish shell 只是遇到了挂起一次,后来一直复现不出来,还不知什么原因。

我看readme以为只要本地安装trzsz-go就可以了

服务端也是要安装的,可以安装 trzsz-go ,也可以安装 trzsz https://github.com/trzsz/trzsz

@pmzgit 有空时,再发一个挂起的日志来看看吧。

192.168.31.137 这台机器上运行的是 fish shell ?在这台服务器上没有运行 tmux 吧?

我看日志中有大量 VT100 控制字符的输出(这些导致了传输失败),看来我要抽空安装个 fish shell 试一下。

如果你有什么特殊的配置,也可以发一下给我。

对,192.168.31.137 这台机器上运行的也是 fish shell,没有运行tmux, 192.168.31.137 这台机器上,除了fish shell,没有其他配置了

服务端也是要安装的,可以安装 trzsz-go ,也可以安装 trzsz https://github.com/trzsz/trzsz

明白了,后期如果在我的环境下,在遇到挂起时,我回发您

@pmzgit 可以更新到 trzsz v1.0.0 ,如果还有问题可以抓个包再看看。

如果没遇到问题可以先把 issue 关了,后面遇到再 reopen,或者另外开一个新 issue。

commented

@pmzgit 可以更新到 trzsz v1.0.0 ,如果还有问题可以抓个包再看看。

如果没遇到问题可以先把 issue 关了,后面遇到再 reopen,或者另外开一个新 issue。

  • 非常感谢跟踪,已经升级,一直用着trzsz-go呢,在 terminal:konsole +fish shell +tmux:3.3a +tmux 配置方案:https://github.com/gpakosz/.tmux 下一直用着没问题,可以tmux下远程很多的服务器文件传输都没问题,包括x86、arm64 以及各种发行版。
  • 亲测在deepin terminal+tmux 2.8下也没问题。我感觉在您官方网站在加一个终端支持了,非常感谢您的付出
  • 那我就先把isuue关了
  • 我现在又折腾distrobox 方案了,宿主机是deepin 20.8,在arch容器里使用tmux无法使用trzsz-go上传下载文件,具体报错信息等回头有时间反馈给您这边和distrobox那边