Windows FTP скрипт скачать из Ubuntu

Я использую следующий сценарий FTP на Windows XP для загрузки zip-файлов с облачных серверов Ubuntu. Zip-файл создается каждый день на серверах Ubuntu, и я буду загружать его в Windows с помощью этого ftp-скрипта. Я запускаю этот скрипт каждый день вручную, так как мне приходится редактировать последнюю строку (mget /usr/backup_02-11-2010.zip) скрипта, чтобы соответствовать сегодняшней дате. Я хочу отредактировать этот скрипт так, чтобы он загружал только текущий zip-файл в назначенное время без необходимости редактировать его каждый день, когда это запланировано. Понятно, что дата добавляется в zip-файлы и имеет формат дд-мм-гггг. Нужна помощь ...

Файл 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

Файл one.bat:

ftp -s:one.txt

Я буду выполнять файл one.bat.

0
задан 6 June 2011 в 19:09

6 ответов

Я не вижу способа сделать это с помощью dos, потому что команда date выводит как 08/11/2010 вместо 08-11-2010. Если вы можете установить powershell, вы можете использовать это, чтобы получить правильный формат даты

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

, а затем добавить это к команде строка.

Надеюсь, это поможет, Бодсда

0
ответ дан 6 June 2011 в 19:09

Не совсем то место, где можно спросить о сценариях Windows, но здесь вы идете. Добавьте это в начало one.bat, чтобы каждый раз переписывать файл скрипта. Это предполагает, что ваши региональные настройки Windows также установлены на дд / мм / гггг.

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
0
ответ дан 6 June 2011 в 19:09

Если вы хотите использовать Cygwin, вы также можете использовать wget и следующую команду для загрузки через FTP.

wget --user=username --password=password --directory-prefix=target-directory ftp://url/path_to_directory/backup_`date +%d-%m-%Y`.zip
0
ответ дан 6 June 2011 в 19:09

Из среды Unix я бы просто использовал SSH / SCP и немного магии bash вместо FTP. Сама Windows там не сильно вам поможет, а ее ограниченная среда сценариев заставляет меня немного плакать, но если вы сможете установить что-то вроде Cygwin (или запустить Linux в фоновом режиме на виртуальной машине), все это может сводится к:

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

Очевидно, подпункт user и host для реальных значений.

Я предлагаю использовать аутентификацию с открытым ключом, чтобы не запрашивать пароль, но если вы обнаружите, что вводите пароль пару раз, это должно сработать.

0
ответ дан 6 June 2011 в 19:09

Просто измените свой файл one.text, как показано ниже:

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 />
0
ответ дан 6 June 2011 в 19:09

Здесь это сработало, и я скопировал из каждого ответа экспертов, чтобы заставить его работать:

@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

В сценарии не должно быть пробела перед > или >>, а в моем случае сценарий провалился, так как у меня были пробелы перед ними, и я пытался это долго.

Сценарий создает файл с именем one.txt, первая строка ...> one.txt перезаписывает файл one.txt, а остальные добавляются в one.txt.

0
ответ дан 6 June 2011 в 19:09

Другие вопросы по тегам:

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