酷!學園

技術討論區 => 程式討論版 => 主題作者是: aweipan 於 2002-08-12 15:38

主題: 一個自動ftp的shell script
作者: aweipan2002-08-12 15:38
各位大大
我想寫一個自動ftp下載的script
我對程序完全不懂
我一開始 用vi ftp.sh  的檔案
內容  ftp localhost     <--暫時測試用localhost
接下來  ftp連上去之後  我要如何 讓 這個script
自動替我打入 user  tester
                  passwd 111111
                  ls
                  cd test
                  mget  *.*        <---下載到local呢?!
這要如何寫呢?!  help
主題: 一個自動ftp的shell script
作者: duncanlo2002-08-12 15:47
http://bbs.ee.ntu.edu.tw/cgi-bin/bbs2html_cgi?D.880620578.A/D.880620576.A/S.880620580.A/D.880619758.A/D.880619763.A/D.880619768.A/M.880619766.A+a1ba20a751a5ce202e6e6574726320b669a6e620667470

改用mirror.pl wget rsync會比較好作!
主題: 一個自動ftp的shell script
作者: aweipan2002-08-12 16:38
我照著作  作不出來  不知道有那打錯了  請指教!
我建一個.netrc
內容如下
machine 10.0.224.253 login test password "111111"   <--我有建test帳號和密碼 ,並在/home/test下放入dnssetup檔案
macdef init      <---照抄
get dnssetup   <--抓取dnssetup
bye           <--離線
          <--空一行
存檔離開
執行[root@NAT pan]# nohup ftp 10.0.224.250 &
[6] 2414
[root@NAT pan]# nohup: appending output to `nohup.out'  <--一直停在這
?           <--我就用ctrl+c  停止

[6]+  Stopped                 nohup ftp 10.0.224.250
自己產生nohup.out
我用cat看nohup.out這個檔

[root@NAT pan]# cat nohup.out
Connected to 10.0.224.250 (10.0.224.250).
220 NAT FTP server (Version wu-2.6.2-5) ready.
Connected to 10.0.224.250 (10.0.224.250).
220 NAT FTP server (Version wu-2.6.2-5) ready.
有什麼地方錯了嗎?!
主題: auto_ftp_code
作者: szeto2002-08-13 14:48
#!/bin/sh
cd /
cd /tmp
ftp<<**
open 192.168.0.0
xxxx (login_name)
xxxxx(password)

mget xxxxx(file_name) or 所有O 字頭的file O*(O1,O2.....)
yes (downlaod[O1])
yes ...............[02]
yes ....................
bye
**
主題: 一個自動ftp的shell script
作者: aweipan2002-08-14 15:33
我測試過好像有問題
不知道我有沒有打錯~~
我的系統是 redhat 7.2的  
我的做法如下 :
我在tester帳號下建一個 ftp.sh    chmod a+x ftp.sh
要去抓pan帳號下的123.html這個檔案  
ip 10.0.65.225  (localhost)
username pan
passwd 111111
內容如下:
#!/bin/sh

ftp<<**
open 10.0.65.225
pan
111111

mget 123.html
yes
bye
**
執行 ./ftp.sh
[tester@localhost tester]$ ./ftp.sh
Password:Name (10.0.65.225:tester):   <----一直停在這不動,我就按下enter
Login incorrect.    (就出現這些訊息)
Login failed.
?Invalid command
Please login with USER and PASS.
Passive mode refused.
?Invalid command
 
請問szeto 我這樣做有沒有錯誤的地方  小弟真得太笨了 一直試不出來!!
主題: 一個自動ftp的shell script
作者: 湯包2004-04-05 12:38
那試試用  .netrc 的設定檔方式哩
或者使用 -n 的參數
主題: 一個自動ftp的shell script
作者: jade-rabbit2004-04-05 20:08
以前我還是學生用 DEC Ultrix or Alpha UNIX OS 時,只要
ftp 192.168.2.1<cmd.ftp
即可。cmd.ftp 裡頭放的是
代碼: [選擇]

userXXX
passXXX
dir
bye


不過在 Linux 上就要改個方式囉,我就給他實測了一下。

Redhat GNU/Linux 7.3 + CLE 1.0
ftp-0.17-13

底下為 ftptest.sh 內容 (chmod +x ftptest.sh)
代碼: [選擇]

#!/bin/sh
/usr/bin/ftp 192.168.2.1<<_CMD_
dir
bye
_CMD_

底下為 ~/.netrc 內容 (記得 chmod 600 ~/.netrc)
代碼: [選擇]

machine 192.168.2.1 login USERXXX password PASSXXX

主題: 一個自動ftp的shell script
作者: Pail2004-04-06 09:48
這以前就有貼過了...
偶再來貼一次....
perl 寫法..
#!/usr/bin/perl
open F, "|ftp -vn";
print F <<END;
open localhost
user xxxx xxxx-pwd
ls
END
close F;

Shell 寫法.
1. 準備一個  txt file.
open localhost
use xxxx xxxx-pwd
ls
2. ftp -vn < txt
主題: 一個自動ftp的shell script
作者: vincent1192004-04-08 10:21
試試看吧,這是我最近寫的shell的一部份可以用

!/bin/bash
#ftp setting
ftpurl=xxx.xxx.xxx.xxx
ftpid=xxxx
ftppwd=xxxxx
ftpmode=binary
   #get the file
   ftp -vin $ftpurl <<command
   user $ftpid $ftppwd $ftpid@ftpurl
   $ftpmode
   lcd $backupdir/$today/
   put $today"backup.tar"
   by
command