2017年2月3日 星期五

在 Windows 與樹莓派間互傳檔案的方法

年前為了測試能否在樹莓派上跑 PHP 網路爬蟲, 把樹莓派板子拿出來複習, 經過兩星期把玩, 終於恢復手感, 架起了 PHP+MySQL 伺服器, 完成了 Crontab 測試, 也趁這個機會補強之前所寫的筆記. 以下整理如何在 Windows 與樹莓派之間互傳檔案的方法.  

去年曾在母校高應大圖書館借來的 "Raspberry Pi 嵌入式應用-使用 Java (松崗)" 這本書的 3-5 節讀到如何使用 Pscp 程式在 Windows 與樹莓派 Linux 之間透過 SSH 協定互傳檔案的方法. 此 Pscp 程式係 Putty 程式開發團隊所研發, 可在下列網址下載 :

# http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


Pscp.exe 跟 Putty一樣不須安裝, 可直接在 DOS 命令列執行. 為了可以在 Windows 任何目錄下與樹莓派互傳檔案, 可將 Pscp.exe 所在的目錄放在環境變數 path 中, 例如我是將 Putty.exe 與 Pscp.exe 都放在 e:\bin 下, 所以若將 e:\bin 加入 path 變數中會比較方便, 不然就要指名 Pscp.exe 所在目錄.


Pscp.exe 不是 GUI 程式, 必須在 DOS 視窗中以命令列方式執行, 其用法可在指令後面用 --help 查詢 :

E:\bin>pscp --help
PuTTY Secure Copy client
Release 0.67
Usage: pscp [options] [user@]host:source target
       pscp [options] source [source...] [user@]host:target
       pscp [options] -ls [user@]host:filespec
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -p        preserve file attributes
  -q        quiet, don't show statistics
  -r        copy directories recursively
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -P port   connect to specified port
  -l user   connect with specified username
  -pw passw login with specified password
  -1 -2     force use of particular SSH protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for user authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -hostkey aa:bb:cc:...
            manually specify a host key (may be repeated)
  -batch    disable all interactive prompts
  -unsafe   allow server-side wildcards (DANGEROUS)
  -sftp     force use of SFTP protocol
  -scp      force use of SCP protocol
  -sshlog file
  -sshrawlog file
            log protocol details to a file

E:\bin>

從 Windows 傳送檔案到樹莓派的範例如下 (在 DOS 命令列) :

E:\java\test>pscp JTable1.* pi@192.168.2.105:/home/pi
pi@192.168.2.105's password:
JTable1.class             | 1 kB |   1.8 kB/s | ETA: 00:00:00 | 100%
JTable1.java              | 1 kB |   1.6 kB/s | ETA: 00:00:00 | 100%

D:\bin>pscp.exe I:\Hostinger\tony1966.com\tony1966.com.tar pi@192.168.2.111:/home/pi
pi@192.168.2.111's password:
tony1966.com.tar          | 10477 kB | 2619.4 kB/s | ETA: 00:00:00 | 100%

亦即, 第一個參數是來源檔案 (Windows), 第二個參數是目的地 (樹莓派), 其格式為 :

帳號@IP:目錄

而從樹莓派傳送檔案到 Windows 只要將來源與目的地對調即可  (在 DOS 命令列) :

D:\bin>pscp.exe  pi@192.168.2.111:/home/pi  I:\Hostinger\tony1966.com\tony1966.com.tar
pi@192.168.2.111's password:
tony1966.com.tar          | 10477 kB | 2619.4 kB/s | ETA: 00:00:00 | 100%

參考 :

# 在Linux與Windows間傳送檔案

另外, 在 "Raspberry Pi 最佳入門與實戰應用 (第二版)" 這本書的 3.4.6 節則介紹 WinSCP 這個 GUI 介面的傳檔程式 (提供安裝版與免安裝版 Portable 兩種), 可從下列網站下載 :

https://winscp.net/eng/download.php

我下載的是 Portable 的 v5.9.3, 解壓縮後會產生一個具有四個檔案的目錄, 執行其中的 WinSCP.exe 會彈出設定視窗, 輸入 IP 以及樹莓派帳密後按 Login 即可 :




登入成功後即可看到 SFTP 畫面, 左邊是 Windows 資料夾, 右邊是樹莓派資料夾, 直接拖曳檔案或目錄到另外一邊即進行傳送, 毋須敲指令非常方便.

WinSCP 預設只有英文介面, 可以在 "Options/Preferences/Language" 設定頁面中按 Get more 下載繁中翻譯檔 ch.zip, 解壓縮為 WinSCP.ch 語言檔, 複製到 WinSCP 目錄下就會出現中文選項 :


也可以在阿榮福利味下載已經中文化的版本 :

# WinSCP 5.9.3 免安裝中文版 - SFTP用戶端

我使用 VirusTotal 未檢出木馬或病毒 :
File name:WinSCP.zip
Detection ratio:0 / 54
Analysis date:2016-05-05 15:06:40 UTC ( 2 minutes ago )
WinSCP 在 SourceForge 有扼要簡介, 參見 :

http://sourceforge.net/projects/winscp

沒有留言 :