如何使用shell撰寫ftp自動傳輸

如何使用shell撰寫ftp自動傳輸

在 Unix 中若要進行定時備份,通常都會將資料直接tar起來然後再進行壓縮再將其丟到另一台Server或是磁帶中去存放,而傳送到另外一台機器除了使用remote copy外還可以使用ftp來當作傳輸介面,下面來分享一下我所知道的三種透過shell達成ftp傳送的功能

方法一 : 使用腳本

TMP為暫存腳本

 

#!/bin/sh   
ftp -i -n 主機名 <<TMP
user $ID $PWD
bin
put $L_PATH $R_PATH
quit
TMP

 

方法二 : 使用外部檔案當作腳本

$file 為指令檔案

#!/bin/sh 
echo "open 1x.xx.xx.x0"> $file
echo "user $loginName $password">>$file
echo "bin">>$file
echo "hash">>$file
echo "cd /usr/database">>$file
echo "put data$filename">>$file
echo "close">>$file
echo "bye">>4file
#自動執行FTP
cat $file | ftp -n

 

 

方法三 : 使用 ".netrc" 來設定ftp連線

  a. 請於家目錄下方新增一張檔案.netrc內容如下

     machine 192.168.1.15 login ftp1 password 123

  b.將檔案權限設定為 600
     -rw------- 1 yichen root    45  3月 29 10:35 .netrc
  c.在此使用者身分下連線到192.168.1.15時會自動使用ftp1/123登入ftp

    所以shell中可使用 ! 進行ftp session 跟 shell session進行切換

#!/bin/sh

ftp 192.168.1.15 <<!

cd xxx

put xxx

lcd xxxx

!

 

 

===========================這是簽名檔分隔線==============================
我沒有甚麼技術能力
不過卻希望在這邊跟大家分享自己遭遇的一些問題
希望大家有更好的方法可以跟我說!!
======================================================================