Linux 下ftp自動登錄
操作系統:linux
說明:使用了expect,參數為ftp服務器地址和要下載的文件名
參數:lindex $argv 0 讀取ftp服務器ip地址
lindex $argv 1 讀取要下載的文件名
編輯:
#vi ftp.sh
spawn ftp [lindex $argv 0]
expect "Name (*):"
send "anonymous\r"
expect "Password:*"
send "\r"
expect "ftp>"
send "binary\r"
expect "ftp>"
send "hash\r"
expect "ftp>"
send "get [lindex $argv 1]\r"
expect "* Transfer complete."
send "exit\r"
執行方法:expect ftp.sh 服務器ip地址 文件名稱
(expect ftp.sh 192.168.0.1 filename.txt )
擴展:可以根據需要把用戶名和密碼也作為參數輸入里邊,這個根據個人需求去做
使用Shell腳本來實現FTP的自動上傳下載
1. FTP自動登錄批量下載文件。
#####從ftp服務器上的/home/data 到 本地的/home/databackup####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
mget *
close
bye
!
2. FTP自動登錄上傳文件。
####本地的/home/databackup to ftp服務器上的/home/data####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
hash
cd /home/data
lcd /home/databackup
prompt
mput *
close
bye
!
3. FTP自動登錄下載單個文件。
####ftp服務器上下載/home/data/a.sh to local /home/databackup####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
get a.sh a.sh
close
bye
!
4. FTP自動登錄上傳單個文件。
####把本地/home/databachup/a.sh up ftp /home/databackup 下####
#!/bin/bash
ftp -n<<!
open 192.168.1.171
user guest 123456
binary
cd /home/data
lcd /home/databackup
prompt
put a.sh a.sh
close
bye
!
使用.netrc文件方式自動登錄
在用戶目錄下下建.netrc的文件
.netrc文件的內容如下:
machine host2 :host2作為登陸用的主機名
login username :ftp用戶名
password userpwd : host2用戶的口令
macdef init :定義一個名為init的宏,它將在自動注冊進程的最后被執行
bin :文件以二進制傳輸
lcd /backup :進入本地目錄/backup
cd /pub :進入遠程主機目錄/pub
mput :將/backup目錄下的所有文件傳輸至遠程主機
bye :退出ftp
并修改文件屬性:$chmod 600 .netrc即該文件只能被該用戶訪問
posted on 2010-12-29 10:53
無聲 閱讀(3479)
評論(1) 編輯 收藏 所屬分類:
職場生活