download do script FTP do Windows a partir do Ubuntu

0

Estou usando o seguinte script FTP no windows xp para baixar arquivos zip dos servidores em nuvem do Ubuntu. Um arquivo zip é criado todos os dias nos servidores Ubuntu e eu vou baixá-lo para o windows através deste script ftp. Eu corro este script todos os dias manualmente, como eu tenho que editar a última linha (mget /usr/backup_02-11-2010.zip) do script para coincidir com a data de hoje. Eu quero editar este script para que ele baixe apenas o arquivo zip atual no horário agendado sem precisar editá-lo todos os dias, quando agendado. É claro que a data é anexada aos arquivos zip e está no formato dd-mm-aaaa. Precisa de ajuda ...

O arquivo one.txt:

open server-ip-here
username-here
user-password-here
lcd C:\Backup\files
bin
hash
prompt  
mget /usr/backup_02-11-2010.zip

O arquivo one.bat:

ftp -s:one.txt

Eu estarei executando o arquivo one.bat.

    
por user3215 08.11.2010 / 14:20

6 respostas

0

Aqui funcionou e copiei de cada resposta por especialistas para que funcionasse:

@REM Beginning of one.bat
    @Echo Off
    @set mydate=%date:~-7,2%-%date:~-10,2%-%date:~-4%

    @REM Next write the FTP commands into one.txt

    @echo open server-ip-here> one.txt
    @echo username-here>> one.txt
    @echo password-here>> one.txt
    @echo lcd G:\Backup\files>> one.txt
    @echo bin>> one.txt
    @echo hash>> one.txt
    @echo prompt>> one.txt
    @echo get /usr/backup_%mydate%.zip>> one.txt

    @REM Finally run the FTP command with the one.txt file
    ftp -s:one.txt

    @REM End of one.bat

Não deve haver espaço antes de > ou >> no script e, no meu caso, o script estava falhando porque eu tinha espaços antes deles e estava tentando isso por muito tempo.

O script cria um arquivo chamado one.txt, a primeira linha ...> one.txt sobrescreve o arquivo one.txt e o restante anexa a um.txt.

    
por user3215 29.01.2011 / 16:57
4

Não é realmente o lugar para perguntar sobre scripts do Windows, mas aqui está. Adicione isso ao topo de one.bat, para reescrever o arquivo de script a cada vez. Isso pressupõe que as configurações regionais do Windows também estejam definidas como dd / mm / aaaa.

for /f "tokens=1-3 delims=/" %%a in ('date /t') do set dashdate=%%a-%%b-%%c
set dashdate=%dashdate: =%
echo open server-ip-here > one.txt
echo username-here >> one.txt
[etc...]
echo mget /usr/backup_%dashdate%.zip >> one.txt
    
por misterben 08.11.2010 / 14:42
1

Não consigo ver uma maneira de fazer isso com dos porque o comando date é exibido como 08/11/2010 em vez de 08-11-2010. Se você pode instalar o powershell, você pode usar isso para obter o formato de data correto

get-date -uformat "% d-% m-% y"

e, em seguida, anexe-o à cadeia de comando.

Espero que isso ajude, Bodsda

    
por Bodsda 08.11.2010 / 14:47
1

Basta alterar o arquivo one.txt conforme abaixo:

set ctime=%date:~-7,2%-%date:~-10,2%-%date:~4%
open server-ip-here<br />
username-here<br />
user-password-here<br />
lcd C:\Backup\files<br />
bin<br />
hash<br />
prompt  <br />
mget /usr/backup_%cdate%.zip<br />
    
por aneeshep 08.11.2010 / 14:56
1

De um ambiente unix eu tinha apenas SSH / SCP e alguma magia bash em vez de FTP. O próprio Windows não vai te ajudar muito lá e seu ambiente de script limitado me faz chorar um pouco, mas se você pudesse instalar algo como Cygwin ( ou executar o Linux em segundo plano em uma VM) tudo pode ser reduzido a:

scp user@host:/usr/'ssh user@host 'ls -1r /usr/backup_* | head -1'' /local/path

Obviamente, sub-out user e host para valores reais.

Eu sugiro usar a autenticação de chave pública para que não haja solicitação de senha, mas se você precisar digitar a senha algumas vezes, isso deve ser feito.

    
por Oli 08.11.2010 / 15:32
1

Se você estiver disposto a usar o cygwin, você também pode usar wget e o seguinte comando para obter o download por FTP.

wget --user=username --password=password --directory-prefix=target-directory ftp://url/path_to_directory/backup_'date +%d-%m-%Y'.zip
    
por LFC_fan 08.11.2010 / 15:42