[Server] батник копирование на ftp, с затиркой старых файлов

Alex_Foks

Блуждающий
Регистрация
13 Дек 2010
Сообщения
168
Реакции
35
собственно есть сервер 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
 
Чуток не понял сути. Как я понял: есть папка на локалхосте "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 но из-за даты всегда разные будут, соответственно, перезаписи не будет, и уже на втором запуске произойдет ошибка копирования от нехватки места.
 
что то похожее и я наваял, а вот как прописать удаление файла ?
 
Ну раз похожее наваяли, то могли и представить, а все бы оценили работоспособность! В сети много вариантов, но что-то они как-то не работали. А я Вам дал проверенный мной рабочий код. А раз уж с предыдущим справились, то с такой мелочью думаю у Вас проблем не возникнет. Но раз во всех поисковиках Вас забанили, то вот первое попавшееся из сети:
Для того, чтобы удалить каталог на ftp сервере при помощи ftp команд, выполните следующие действия:

1. Подключитесь к серверу ftp.

2. В командной строке введите следующую команду:
rmdir directory

где, вместо directory, укажите имя удаляемого каталога.

Если в удаляемом каталоге есть какие либо файлы, выполните сначала их удаление. Для этого, перед удалением каталога, вам будет необходимо выполнить удаление содержимого каталога. Выполните:

delete directory/*


и все файлы, которые находятся в удаляемом каталоге, будут удалены.

3. Завершите ftp сеанс, выполнив в командной строке:

quit
 
Ну раз похожее наваяли, то могли и представить, а все бы оценили работоспособность! В сети много вариантов, но что-то они как-то не работали. А я Вам дал проверенный мной рабочий код. А раз уж с предыдущим справились, то с такой мелочью думаю у Вас проблем не возникнет. Но раз во всех поисковиках Вас забанили, то вот первое попавшееся из сети:
[spoil]Для того, чтобы удалить каталог на ftp сервере при помощи ftp команд, выполните следующие действия:

1. Подключитесь к серверу ftp.

2. В командной строке введите следующую команду:
rmdir directory

где, вместо directory, укажите имя удаляемого каталога.

Если в удаляемом каталоге есть какие либо файлы, выполните сначала их удаление. Для этого, перед удалением каталога, вам будет необходимо выполнить удаление содержимого каталога. Выполните:

delete directory/*


и все файлы, которые находятся в удаляемом каталоге, будут удалены.

3. Завершите ftp сеанс, выполнив в командной строке:

[/spoil]


а как можно почистить, последний файл по дате ?
 
Если проблем со скоростью доступа к ftp нет, то можно просто очищать папку с 2 старыми архивами, и заливать 2 самых свежих. Если же это проблематично, можно что-нить придумать.
 
Решил копии ложить, на внешний сетевой накопитель, поэтому вопрос так сказать решен. (другим способом)
PS спасибо Simak за помощь )
 
я данную проблему решил с помощью NetCopier.
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Назад
Сверху