一般來說,linux服務器大多是通過ssh客戶端來進行遠程的登陸和管理的,使用ssh登陸linux主機以後,如何能夠快速的和本地機器進行文件的交互呢,也就是上傳和下載文件到服務器和本地;
與ssh有關的兩個命令可以提供很方便的操作:
sz:將選定的文件發送(send)到本地機器
rz:運行該命令會彈出一個文件選擇窗口,從本地選擇文件上傳到服務器(receive)
rz,sz是便是Linux/Unix同Windows進行ZModem文件傳輸的命令行工具
windows端需要支持ZModem的telnet/ssh客戶端(比如SecureCRT)
運行命令rz,即是接收文件,SecureCRT就會彈出文件選擇對話框,選好文件之後關閉對話框,文件就會上傳到當前目錄
注意:單獨用rz會有兩個問題:上傳中斷、上傳文件變化(md5不同),解決辦法是上傳是用rz -be,並且去掉彈出的對話框中“Upload files as ASCII”前的勾選。
-b binary 用binary的方式上傳下載,不解釋字符為ascii
-e 強制escape 所有控制字符,比如Ctrl+x,DEL等
運行命令sz file1 file2就是發文件到windows上(保存的目錄是可以配置)比ftp命令方便多了,而且服務器不用再開FTP服務了
PS:Linux上rz/sz這兩個小工具安裝lrzsz-x.x.xx.rpm即可。
當然,還可以設置一下目錄了:
在SecureCRT設置一下上傳和下載的默認目錄
options–>session options–>file transfer 下可以設置上傳和下載的目錄
剩下的你只要在用SecureCRT登陸linux終端的時候:
發送文件到客戶端:sz filename
zmodem接收可以自行啟動.
從客戶端上傳文件到linux服務端:
只要服務端執行 : rz
然後在 SecureCRT 裡選文件發送,協議 zmodem
Linux下和Windows之間的文件傳輸工具rz/sz(lrz/lsz) 介紹
【什麼是rz/sz (lsz/lrz)】
簡單說就是,可以很方便地用這兩個sz/rz工具,實現Linux下和Windows之間的文件傳輸(發送和接收),速度大概為10KB/s,適合中小文件。rz/sz 通過Zmodem協議傳輸數據。
【為什麼要用rz/sz】
普通Linux和Windows之間的文件共享方法,主要有建立nfs實現文件共享,和tftp之類的方法,但是都很麻煩,而如果只是小文件(幾十 K,幾百K),那麼直接用rz/sz,就顯得極其地方便了。大文件的話,還是要考慮上面說得,其他的共享方法了,畢竟,rz/sz速度只有10K左右,傳大文件會累死人的。。。
【如何使用】
(1)在Windows下,用SecureCRT(或者Windows自帶的超級終端)連接Com端口到開發板,或者ssh等協議連接到Linux服務器上。
(2)在Linux端,安裝了rz/sz (lrz/lsz)工具後(嵌入式開發中,多數已經將編譯好的rz/sz工具放到rootfs中了,普通的Linux系統,如果沒有,可以下載源碼,自己安裝),就可以直接運行rz/sz,實現和Windows之間的文件傳輸了:
A、從windows中拷貝/下載文件到Linux(開發板):
運行rz後,會自動彈出WIndows下的文件選擇對話框,選擇對應文件後,添加,然後確定,就開始傳輸,將windows中的文件,拷貝到Linux中了。
B、將Linux中的文件拷貝到Windows中某個文件夾:
執行sz file_name 就可以將Linux當前文件夾下的文件file_name拷貝到Windows的對應目錄中了,其中,Windows目錄是由你當前運行的工具中設定的。
此處我用的是SecureCRT,具體的更改 rz上傳/sz下載 的默認的路徑的方法:
右鍵點擊當前會話session -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories :
Upload : 你要設置的路徑
Download:你要設置的路徑
以下是補充:
[一般用於SecureCRT ssh中使用]
yum install lrzsz -y
注意:rhel安裝完系統後 直接可使用 rz sz
方法二:源文件編譯方法
針對centos x.x 版 lrzsz安裝配置
復制代碼代碼如下:
mkdir -p /usr/src/tools
cd /home/ryan/tools
wget http://down1.chinaunix.net/distfiles/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure --prefix=/usr/local/lrzsz
make
make install
cd /usr/bin
ln -s /usr/local/lrzsz/bin/lrz rz
ln -s /usr/local/lrzsz/bin/lsz sz
rz
方法3:rpm安裝:
rpm ivh lrzsz-x.rpm(去光盤裡找)
此處略過。
方案例:某學生遇到rz,sz 上傳下載的問題
rz正常,sz無法下載文件到本地。可學生還一頭霧水,不知其所以然。
問題及解決過程:
[code]
[root@potatoes ~]# which sz
/usr/bin/sz
[root@potatoes ~]# ll /usr/bin/sz
lrwxrwxrwx 1 root root 24 Dec 6 2010 /usr/bin/sz -> /usr/local/lrzsz/bin/lrz
#===>這裡明顯看出,sz鏈接到sz -> /usr/local/lrzsz/bin/lrz 了。應該是 lsz
[root@potatoes ~]# rm -f /usr/bin/sz
[root@potatoes ~]# which sz
/usr/bin/which: no sz in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@potatoes ~]# ll
total 52
-rw------- 1 root root 994 Dec 6 2010 anaconda-ks.cfg
-rw-r--r-- 1 root root 26403 Dec 6 2010 install.log
-rw-r--r-- 1 root root 4369 Dec 6 2010 install.log.syslog
[root@potatoes ~]# ln -s /usr/local/lrzsz/bin/lsz /usr/bin/sz
#===>修改鏈接sz -> /usr/local/lrzsz/bin/lsz
[root@potatoes ~]# /usr/local/lrzsz/bin/lsz install.log
rz
正在開始 zmodem 傳輸。 按 Ctrl+C 取消。
正在傳輸 install.log...
100% 25 KB 25 KB/s 00:00:01 0 錯誤
[root@potatoes ~]#ll /usr/bin/sz
lrwxrwxrwx 1 root root 24 Jun 11 08:00 /usr/bin/sz -> /usr/local/lrzsz/bin/lsz
[root@potatoes ~]# ll
total 52
-rw------- 1 root root 994 Dec 6 2010 anaconda-ks.cfg
-rw-r--r-- 1 root root 26403 Dec 6 2010 install.log
-rw-r--r-- 1 root root 4369 Dec 6 2010 install.log.syslog
[root@potatoes ~]# sz install.log
rz
正在開始 zmodem 傳輸。 按 Ctrl+C 取消。
正在傳輸 install.log...
100% 25 KB 25 KB/s 00:00:01 0 錯誤
OK了。