Сценарий FTP для загрузки ряда файлов

Любая установка внутренний DNS, т.е. тот, которым Вы компания управляете самостоятельно со всеми записями сервера, если у Вас есть домен Active Directory затем Вы уже, имеет сервер DNS. Затем имейте dhcp, обеспечивают IP-адрес серверов DNS или вручную конфигурируются, как описано в 1-м ответе.

Кроме того, установите веб-прокси на своей беспроводной LAN, которая имеет файл hosts для серверов, Вы хотите их к доступу. Снова этому нужен config'ing на iPhone вручную или через DHCP.

Некоторые решения прокси: Сквид, Apache mod_proxy

M.

0
задан 25 June 2010 в 01:30
2 ответа

На основе ответа Максвелла на этот вопрос я, вероятно, сделал бы что-то вроде этого псевдокода:

Использовать $favorite_scripting_language для сбора списка имен файлов к d/l затем уничтожают; запишите названный выходной файл script.txt в форме:

cd /source/directory
lcd c:\target\directory
get foo.bar
delete foo.bar
<<lather, rinse, repeat>>

затем оберните его:

psftp.exe username@server -be -pw user_password -b c:\script.txt
2
ответ дан 4 December 2019 в 15:13

Как насчет Python? Как плюс, это должно работать более или менее неизмененное над любой ОС. И еще большее плюс - то, что это более гибко что с помощью другого, более хрупкого, методы.

Это прошло бы примерно так:

from ftplib import FTP
import os

ftp = FTP("server")
ftp.login("id", "passwd")
ftp.cwd("/server/ftpdir/")

#copy every file as usual to local system
filelist = []
ftp.retrlines('LIST', filelist.append)
### the list filelist will have one element per file
### which you will have to cut up into the proper pieces
### among Python's installed files on your system is 
### the script Tools/scripts/ftpmirror.py which has such code
### it starts at around line 140 (for python 2.6.1) 
### --- not very long but this margin is too small to contain it
### assume the file names are in dictionary filedict
### keys are filenames and values are file sizes
for fname in filedict.keys():
   localfname = os.path.join(localdir, fname) # set localdir to cwd or whatever
   lf = open(localfname , "wb")
   ftp.retrbinary('RETR ' + fname, lf.write)
   lf.close()
#refresh remote directory listing into filedict2 as with previous filedict
for fname in filedict2.keys():
   if fname not in filedict:
       # new file since download started! ignore. it's for later
       pass
   else:
       if filedict[fname] == filedict2[fname]:
          # apparently we got a good copy so delete the file on ftp server
          ftp.delete(fname)
       else:
          # delete local file: remote was being uploaded or something
          os.unlink(os.path.join(localdir, fname))

Необходимо добавить проверку ошибок и другой такой материал. То же могло быть выполнено с жемчугом, и это будет, вероятно, озираться вокруг того же.

0
ответ дан 4 December 2019 в 15:13

Теги

Похожие вопросы