簡單易懂的ftp腳本自動登錄教程


我在上上篇《nmon腳本——對Linux服務器的監控》的腳本中,使用了ftp的自動登錄。結果有人詢問,遂決定專門寫一篇簡單易懂的博客,來說明如何解決ftp的自動登錄問題。


一、Windows

在windows下非常簡單,windows下的ftp客戶端有一個-s參數可以帶一個文件,用ftp -s去執行就可以。

  • 把所有在ftp命令行下要輸入的內容照原樣輸入到autologin.txt中:
open 10.60.56.90
whb
123456
get test
close
bye
  • 輸入命令:
E:/>ftp -s:autologin.txt
  • 得出結果:
ftp> open 10.60.56.90
Connected to 10.60.56.90.
220 (vsFTPd 2.0.5)
User (10.60.56.90:(none)):
331 Please specify the password.
230 Login successful.
ftp> get test
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test (5 bytes).
226 File send OK.
ftp: 收到 5 字節,用時 0.00Seconds 5000.00Kbytes/sec.
ftp> close
221 Goodbye.
ftp> bye
E:/>
注意:如果是匿名登錄,密碼那一行留空。

二、Linux

在linux下,上面的方法失效,不過條條大路通羅馬,不虛。

方法一:

#!/bin/bash
SERVER=server
USERNAME=username
PASSWORD=password
ftp -n $server <<SCRIPT
quote USER $username
quote PASS $password
cd remote_path
lcd local_path
binary
verbose
get something
put something
close
quit
SCRIPT

方法二:

#!/bin/bash
SERVER=server
USERNAME=username
PASSWORD=password
ftp -n $server <<SCRIPT
user $USERNAME $PASSWORD
cd remote_path
lcd local_path
binary
verbose
get something
put something
close
quit
SCRIPT

方法三:

使用.netrc,還可以用man netrc看這個文件的配置參數。

  • 比如寫如下的.netrc文件:
machine whb
login whb
password 123456
 
machine node6
login globus
password 123456
  • 輸入命令:
[whb@jcwkyl ~]$ chmod 600 .netrc
[whb@jcwkyl ~]$ ftp node6
  • 得到結果:
Connected to node6.jlu.edu.cn.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
331 Please specify the password.
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
注意:如果.netrc文件中使用password設置了ftp登錄密碼,那么除該文件所有者外,其他用戶對該文件都不能有讀權限,否則自動登錄會失敗。

除此之外,網上還有其他許多ftp自動登錄的實現辦法(比如expect)等等,都可以google到,這里就不再闡述了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM