在 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
!