PDA

Просмотр полной версии : батник копирование на ftp, с затиркой старых файлов


Alex_Foks
22.03.2013, 21:24
собственно есть сервер win2003
выполняется копирование батников по пути D:\!!BackUP\Last_10_Days
файлы получаются такие
01____00.00____22.03.2013.zip
02____00.00____21.03.2013.zip
03____00.00____20.03.2013.zip
и т.д. до
10____00.00____13.03.2013.zip
размеры архивов где то 500-600 мб.
есть ftp

как мне передавать каждый день файл архива на ftp по числу в названии
то есть батник проверяет появившийся архив с последней датой и копирует его на ftp
+ и перед копированием 3-его архива удаляет 2 архив и копирует 3-ий архив на ftp
так как ftp всего 1.3 Gb

Simak
23.03.2013, 01:51
Чуток не понял сути. Как я понял: есть папка на локалхосте "D:\!!BackUP\Last_10_Days" из нее нужно копировать 2 самых свежих архива на удаленный ftp (т.к. размер позволяет хранить только 2 файла таких размеров). Еще понял по структуре названия файлов, что 2 самых свежих архива будут всегда начинатся с 01 и 02. Я все верно понял?

Если да, то создаешь .bat файл с такой строкой:

Код:



ftp.exe -s:ftp.txt>log.txt


Создаешь ftp.txt в той же папке, что и .bat с таким содержанием:

Код:



open 255.255.255.255 //адрес удаленного ftp-сервера
login //логин
pass //пароль
binary
put D:\!!BackUP\Last_10_Days\01*.zip /www/ //копирует файлы по маске имен последних 2-х файлов 01*.zip и 02*.zip, "/www/"-удаленный каталог на ftp
put D:\!!BackUP\Last_10_Days\02*.zip /www/
bye


Для .bat файла делаешь задание запускаться раз в сутки и все(это можно сделать в планировщике заданий Windows или из той же cmd).

И забыл там еще добавить, чтобы папка на ftp вычищалась от старых файлов перед копированием, т.к. имена файлов хоть и будут начинаться с 01 и 02 но из-за даты всегда разные будут, соответственно, перезаписи не будет, и уже на втором запуске произойдет ошибка копирования от нехватки места.

Alex_Foks
23.03.2013, 18:18
что то похожее и я наваял, а вот как прописать удаление файла ?

Simak
23.03.2013, 21:44
Ну раз похожее наваяли, то могли и представить, а все бы оценили работоспособность! В сети много вариантов, но что-то они как-то не работали. А я Вам дал проверенный мной рабочий код. А раз уж с предыдущим справились, то с такой мелочью думаю у Вас проблем не возникнет. Но раз во всех поисковиках Вас забанили, то вот первое попавшееся из сети:

Alex_Foks
24.03.2013, 09:45
а как можно почистить, последний файл по дате ?

Simak
26.03.2013, 13:19
Если проблем со скоростью доступа к ftp нет, то можно просто очищать папку с 2 старыми архивами, и заливать 2 самых свежих. Если же это проблематично, можно что-нить придумать.

Alex_Foks
27.03.2013, 21:45
Решил копии ложить, на внешний сетевой накопитель, поэтому вопрос так сказать решен. (другим способом)
PS спасибо Simak за помощь )

Parenek
17.04.2013, 11:46
я данную проблему решил с помощью NetCopier.

Скрытое содержимое доступно для зарегистрированных пользователей!


Name: OxEn s/n: 276164777