[分享]自动利用FTP方式将资料备份到别台主机

Home Home
引用 | 编辑 SENFO
2005-03-22 10:05
楼主
推文 x0
利用 .netrc 的方式,不过不知道版本改到现在这东西还能不能用
试述如下,有错的话请大家指教...

首先就是在自己的家目录里建立一个叫 .netrc 的档,属性为 600
也就是像这样的:
-rw------- 1 shaking shaking 567 Nov 30 12:00 .netrc

这个档的内容如下:

复制程式
machine [对方主机的 domain] login [ID] password "[密码]" 
macdef init 
bin 
lcd /to/the/dir/you/want/in-your-machine 
cd /to/the/dir/of-remote 
prompt 
mget *.ext 
bye 

machine [对方主机的 domain] login [ID] password "[密码]"
macdef init 表示开始输入指令
bin 表示以二元方式传档
lcd /to/the/dir/you/want/in-your-machine
转到本地机器中你要储存档案的目录
cd /to/the/dir/of-remote
转到远端你要下载的目标档案所在目录
prompt off
这个指令在一次抓很多个档的时候就不会一个一个问 y or n 了
mget *.ext
抓档
(ps 在这个部份,你也可以用 get filename.ext 抓多个档,多打几行就是了,如果需要的话)
bye
离开(离线)


这里有个地方要注意的,就是在 bye 后面一定要空一行。
这个 script 可以类似这样的方式 在一个档里面指定向好几台机器作传档的动作。但不管后面有没有接上另一台机器,都要多空一行,不然离不了线会挂在那边.

献花 x0
引用 | 编辑 ccxxx
2005-03-23 01:13
1楼
  
Here is the script I used, hope it can help.

#!/bin/sh
#
# ftp script to send/get file automatically
#

# define the variables
filename1="/path1/filename1"
filename2="/path1/filename2"
hostname="ftp.domain_name.com"
username="username"
password="password"

# main
ftp -n $hostname <<EOF
quote USER $username
quote PASS $password
binary
put $filename1
get $filename2
quit
EOF

献花 x0