安裝
因為在OpenWrt命令行下scp傳輸文件很慢(只有2.5MB/s不到), 於是改用FTP下載. lftp是OpenWrt下的FTP客戶端軟件. 如果固件中未安裝的話, 需要自己安裝, 其依賴於兩個ipk, 需要安裝的ipk為
-rw-r--r-- 1 root root 424670 Feb 11 19:02 lftp_4.8.4-3_mipsel_24kc.ipk -rw-r--r-- 1 root root 47636 Feb 11 19:05 libexpat_2.2.7-1_mipsel_24kc.ipk -rw-r--r-- 1 root root 107228 Feb 11 19:05 libreadline8_8.0-1_mipsel_24kc.ipk
先安裝libexpat和libreadline8, 再安裝lftp.
root@Timecloud2:~# opkg install libexpat_2.2.7-1_mipsel_24kc.ipk Installing libexpat (2.2.7-1) to root... Configuring libexpat. root@Timecloud2:~# opkg install libreadline8_8.0-1_mipsel_24kc.ipk Installing libreadline8 (8.0-1) to root... Configuring libreadline8. root@Timecloud2:~# opkg install lftp_4.8.4-3_mipsel_24kc.ipk Installing lftp (4.8.4-3) to root... Configuring lftp.
使用
登錄
# lftp 用戶名:密碼@ftp地址:端口 lftp username:password@127.0.0.1:21 lftp username@127.0.0.1 lftp 127.0.0.1 lftp Enter --> open 127.0.0.1 --> login
中文亂碼
登錄后看到的都是中文亂碼(因為一般本地都是utf-8的編碼), 用 set 命令解決
set ftp:charset gbk (or gb2312, utf-8) # 設置ftp端的編碼格式 set file:charset utf-8 (or gbk, gb2312) # 設置本地編碼格式
set命令的技巧
(1)輸入set 查看已經設置好的命令
(2)set -a 查看所有可以設置的命令清晰網
瀏覽, 查找遠端文件
ls *.txt # 查找當前目錄下的所有txt文件 ls ./123/ # 列出123目錄下所有文件 find . -name "*.txt" # 遞歸查找站點上所有的txt文件 find ./xx -name "*.txt" # 查找xx目錄下所有的txt文件
注意: ls第二次讀取的是本地緩存, 可以用 rels 代替 ls 或者 cache off / cache on 來開關緩存, cache flush清空本地緩存
瀏覽本地文件, 改變本地目錄
!ls /usr/local/bin/ lcd /home/123/web # 設置本地存放目錄 默認為用戶home目錄
下載文件
get 123.txt # 下載123.txt文件到 /home/123/web 中 get -c 123.txt # 斷點續傳下載 mget *.txt # 批量下載所有txt文件 mget -c *.txt # 斷點續傳 mget -c ./123/aaa/*.txt # 斷點續傳、批量下載ftp端aaa目錄下的所有txt文件 pget -c -n 10 file.dat # 以最多10個線程以允許斷點續傳的方式下載file.dat # 可以通過設置 set pget:default-n 5 的值而使用默認值。 mirror aaa/ # 下載aaa整個目錄
上傳文件
put 123.txt mput *.txt mirror -R aaa/ # 同下載
設置被動/非被動模式
set ftp:passive-mode 1 # 1 被動, 0非主動
多任務處理
Ctrl+z # 將當前進行的任務移交后台處理 wait # 將后台處理任務調至前台查看 jobs # 查看后台進行的任務列表 kill all / job_no # 刪除所有任務 或 指定的任務 # 將任務加入任務列表 queue get 123.txt queue put 234.txt queue mirror aaa/ # 任務列表 queue jobs # 查看后台任務列表 queue start # 開始任務列表 queue stop # 停止任務列表