Модераторы: bartram, Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Умное резервное копирование + расписание, BAT-файл или софт? 
:(
    Опции темы
fridkaratel
Дата 5.5.2011, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Возник такой вопрос касаемо резервного копирования.

Изучение материалов в интернете, программ и документаций не привело к тому, что хотелось бы сделать.
Всё не то... или не так..

Суть задачи:
1. Имеются папки с файлами, например, C:\Documents; C:\Letters и т.п.
2. Необходимо, скажем, каждый день в 00:00 проверять, есть ли изменения в папках - смотреть, судя по всему, по датам изменения файлов
3. Если изменения есть, то паковать в архив WinRAR с макс. сжатием
4. Созданный архив перемещать в папку на сетевом диске.

Так как имеются два компьютера, то структура папок на сетевом диске такая:
Код

S:\
    USER-PC
        C
            Documents
            Letters
    USER-NOTEBOOK
        D
            Users
                USER-NOTEBOOK
                    Desktop

То есть, чтобы сохранялись все пути согласно расположению на локальном компьютере.
Здесь USER-PC и NOTEBOOK-PC - это имя компьютера; S:\ - сетевой диск с полным доступом чтения/записи.

Плюсы bat-файла:
1. Удобное и быстрое редактирование
2. Не нужно ничего устанавливать из стороннего ПО
3. Запуск по расписанию встроен в Windows 7
4*.Бэкап БД можно сделать также через запрос по http к Sypex Dumper'у.

Минусы bat-файла:
1. Довольно сложно писать что-то более "разумное"
2. Слишком много "букав" smile
3. Не всё можно сделать средствами bat-файла, зачастую приходится очень извращаться
4. Вообще, написание чего-то сложного в bat-файле - это написание костылей... smile

Что касается специализированного софта, то:
1. Может быть я не нашёл ещё такого софта, что выполняет эти задачи
2. В основном, попадались или программы для полного копирования диска, или же мелкие типа "скопировать из одного места в другое в заданное время"
3. Нельзя указать, что если есть изменения - делай копию всей папки, если изменений нет - не делай копию.
4. Как написал выше, всё не то... smile
5. Не везде есть поддержка бэкапа базы данных MySQL

P.S.: Приведу пример, для чего это необходимо...
Имеется локальный веб-сервер, на котором в сети держатся порядка 10ти сайтов и сервисов.
Например, сегодня я решил улучшить один из сайтов, внёс изменения, поправил картинки/скрипты и т.п.
Ночью, когда все спят и никаких изменений не производится, надо сделать резервную копию всей папки с этим сайтом, а не только изменённых файлов.
В остальных 9ти никаких изменений не произошло, соответственно резервные копии смысла делать нет.

Это сообщение отредактировал(а) fridkaratel - 5.5.2011, 11:32
PM   Вверх
Akella
Дата 6.5.2011, 12:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Ну и.... на каком шаге ошибка?
PM MAIL   Вверх
mihanik
Дата 6.5.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 61
Всего: 109



Есть ОЧЕНЬ ХОРОШАЯ встроенная утилита.
NTBACKUP называется.

Почитай описалово.
Я бы использовал именно её.



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
CompWorm
Дата 6.5.2011, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: 1
Всего: 31



из той "сути", что ты описал, всё вполне выполнимо в рамках батника.

запости батник и какие ошибки он выдаёт.


--------------------
PM MAIL   Вверх
Akella
Дата 6.5.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Цитата(fridkaratel @  5.5.2011,  11:30 Найти цитируемый пост)
1. Может быть я не нашёл ещё такого софта, что выполняет эти задачи

Думаю, что много какие программы умеют выполнять копирование только изменившихся файлов. Да тот же выньрар. Стандартная виндовая программа xcopy тоже умеет.
PM MAIL   Вверх
fridkaratel
Дата 6.5.2011, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



По-порядку... smile

1. Мне не надо копировать только изменившиеся - мне надо копировать ВСЮ папку со всеми подпапками и файлами, если в этой папке имеется хотя бы один изменившийся или добавленный файл...

2. Должна быть возможность исключить часть файлов из обработки как по расширению, так и по названию папки... Например, есть резервные копии IDE, той же Aptana Studio или же кэш тысяч страниц, чтобы не запрашивать каждый раз БД... Понятное дело, что кэш я могу, если понадобится, сделать заново - зачем мне его хранить в резервной копии smile

3. В BAT-файле проблемно пробежаться по всем файлам, да и вообще работать с подстроками, выделением чисел из текста и т.п. Из-за этого сложности создать тот путь, который я описал в начале топика.

4. Я больше склоняюсь к BAT-файлу, но у него нет интерфейса, что не есть гуд... Более того, отслеживание ошибок, процесса выполнения (например, упаковки архива) и т.п. - это трудный процесс, потому что в BAT-файл не заложено таких возможностей, а, следовательно, надо делать "на костылях"... Я вообще думал, написать Adobe AIR приложение на JavaScript'е... smile

5. Не приемлим вариант создания бэкапа в какой-то собственный формат программы... Лучше вообще в ZIP паковать - и кроссплатформенно, и не зависит от установленных на компьютере программ...

6. Ошибок никаких нет... Я писал BAT-файл, пытался что-то вразумительное сделать, но потом удалил его... Намучился и не сдержался smile Всё там было относительно просто:
Код

::====================================================================================================================================
:: >> Основные настройки скрипта
@echo off
setlocal
:: << << <<
::====================================================================================================================================
:: >>Назначаем необходимые переменные
set BACKUP_DIR=S:\
set PC_NAME=USER-PC
:: Здесь, конечно, хорошо бы не вручную задавать имя компьютера, а брать из netstat или чего-то в этом духе...
set WINRAR=C:\Program Files\WinRAR\WinRAR.exe
:: << << <<
::====================================================================================================================================
:: >> Определяем массив папок для копирования
set "FOLDER:01=C:\Documents"
set "FOLDER:02=C:\Letters"
set "FOLDER:03=W:\XAMPP"
:: ...и так далее...
:: << << <<
::====================================================================================================================================
:: >>  Упаковка файлов в архив
:: Здесь происходит упаковка в архив с макс. сжатием, вместо имени файла идёт дата последнего изменения
for /f "tokens=2 delims==" %%i in ('set FOLDER') do (
    "%WINRAR%" "%%i" /ключи для упаковки
)
:: Думал как делать - сжимать в архив каждый день в 00:00.
:: Так как имя архива - это самая последняя дата в изменении файлов, поэтому, если не было изменений, архив будет иметь одно и тоже имя.
:: Если в папке бэкапа уже есть такой архив, то просто удаляем свежесозданный.
:: Если архива с таким именем нет, то перемещаем созданный архив в папку бэкапа.
:: << << <<
::====================================================================================================================================
:: Ну и, собственно перемещение через move, copy, xcopy - без разницы... С соблюдением той структуры папок, что я описал выше...
:: Только как из C:\Documents сделать папку S:\USER-PC\C\Documents? :)
::====================================================================================================================================
pause


Проблемы:
1. У меня есть папки, в которых несколько Гб информации... Соответственно, если сначала упаковывать с макс. сжатием, а потом проверять, есть ли изменения - это как-то глупо smile Да и времени на упаковку мелких файлов с 10000 штук будет уходить немало...
2. Сложновато отлавливать ошибки... Если бы было try...catch, то другое дело, а так... Даже и сверить-то нечего... Вот возникнет ошибка при обработке WinRAR'ом, например, файл открыт будет (например, .htaccess или .error_log на веб-сервере)...
3. Не видно процесса упаковки/хода выполнения... Конечно, это можно сделать, но там опять же... ну не предназначет BAT для такого smile

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

Во-от smile

Это сообщение отредактировал(а) fridkaratel - 6.5.2011, 14:34
PM   Вверх
Akella
Дата 6.5.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Зачем в bat файле FOR?
PM MAIL   Вверх
fridkaratel
Дата 6.5.2011, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Цитата(Akella @ 6.5.2011,  23:44)
Зачем в bat файле FOR?

Чтобы упаковать каждую папку в отдельный архив и уложить в отдельные папки в бэкапе... smile
PM   Вверх
Akella
Дата 6.5.2011, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



А что, в один архив нельзя? Зачем каждую папку в отдельный архив %)
Может вообще можно без упаковки?
PM MAIL   Вверх
fridkaratel
Дата 6.5.2011, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Цитата(Akella @ 7.5.2011,  00:18)
А что, в один архив нельзя? Зачем каждую папку в отдельный архив %)
Может вообще можно без упаковки?

Ну, во-первых, изменения могут быть только в одной из трёх (в одной из N) папок...

А, во-вторых, упаковка нужна ввиду того, что там может быть 10 000 файлов весом по 1-4 Кб... А то и меньше, соответственно, расход HDD на 2 Tb для резервных копий будет неразумным... Например, кластер размером в 16 Кб.

Ну и... мне не нужен быстрый доступ к резервным копиям, и в случае чего их можно быстро скопировать на другой жёсткий. Думаю, не стоит объяснять, почему 10 000 файлов по 1 кб будут копироваться в несколько раз медленнее, чем 1 файл в 10 Мб smile
PM   Вверх
Akella
Дата 6.5.2011, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Копируй всё в один архив без FOR. Winrar это умеет.
PM MAIL   Вверх
fridkaratel
Дата 6.5.2011, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

Репутация: нет
Всего: нет



Зачем мне один архив? Я же написал, что мне не нужен "дутый" архив со всеми папками и файлами - мне нужен только архив одной папки...

Хорошо, по-другому попробую... smile

У меня есть N проектов...
Сегодня я занимаюсь одним из них...
И мне надо в автоматическом режиме сделать копию этого проекта - упаковать в архив и закинуть на сетевой диск с соблюдением вложенности папок, как на моём компьютере.
Остальные проекты я сегодня не трогал, поэтому и копии делать с них не надо, разумно ведь... smile

Завтра я доделал этот проект и занялся новым.
Внёс в него изменения, что-то подправил, что-то удалил...
И должна быть резервная копия этого проекта за текущей датой.
С остальных проектов резервную копию делать не надо...

Вот, это я считаю умной резервной копией...
Чтобы не плодить кучу-кучу копий или тупо одним куском делать резервную копию всего HDD...
У меня 4 HDD, и файлы лежат на разных диска - делать копии всех дисков? smile

По теме кто-нибудь может посоветовать что-нибудь дельное, может, куда ещё запостить?
Так сказать, в более "специфический" раздел или форум...?
PM   Вверх
01MDM
Дата 7.5.2011, 07:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 10.5.2008
Где: Default City

Репутация: 29
Всего: 29



fridkaratel,
А просто xcopy не подойдет? Я для бэкапа данных на внешнем HDD создал копию рабочей папки и просто запускаю:
Код

xcopy /e /d /y d:\files g:\files

Добавляются новые файлы, перезаписываются измененные, а старые, даже если они удалены из рабочей папки ( d:\files ), то они все равно остаются на g:\files. Для резервного архивирования можно и не создавать зеркальной папки, но тогда необходимо явно указать контрольную дату для сверки изменений. Например где-то так:
Код

@echo off
setlocal

for /f "tokens=1-3 delims=." %%i in ( "%date%" ) do set "ch_date=%%j-%%i-%%k"
xcopy /e /d:%ch_date% c:\project c:\%date%\
7z a c:\%date%.7z c:\%date%

pushd \\server\shara
move c:\%date%.7z
popd

rd /s /q c:\%date%

Т.е. здесь будут архивированы и отправлены на сетевой диск только файлы ( с сохранением структуры ), которые изменены начиная с даты указанной в ключе /d:m-d-y ( в примере выше я взял текущую дату )

Это сообщение отредактировал(а) 01MDM - 7.5.2011, 07:39


--------------------
Вопросы в личке останутся без ответов.
PM MAIL   Вверх
MelkorLiGray
Дата 22.3.2012, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 24.9.2008
Где: Sarat - OFF

Репутация: 2
Всего: 4



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

Что бы вот в этом бат-фаиле автоматически вводился логин и пароль. 
А то он при запуске просит его ввести. 
Вот:
Код

@echo off

set dateOraStartUp=%date%_%time%
set dateOraStartUp=%dateOraStartUp: =_%
set dateOraStartUp=%dateOraStartUp:,=-%
set dateOraStartUp=%dateOraStartUp::=-%
set dateOraStartUp=%cd%\ab_full_%dateOraStartUp:.=-%

exp ab/%1@%2 grants=n owner=AB file='%dateOraStartUp%.dmp' log='%dateOraStartUp%.log'


ДА, я уже гуглил и продолжаю гуглить - ничего пока не понимаю, в том, что нахожу. 
Да, для понимания того, что нахлжу неплохо бы почитать справку ,и всякие ресурсы учащие писать bat файлы.
НО, мне пока нужно тупо вписать пару строк, а далее я уже, возможно займусь изучением написания этих штуковин, что бы доточить что там надобно.. 
--------------------
Капля никотина убивает 5 минут рабочего времени. . .Недожег или пережег - Нарушение режима отжига!Я не волшебник, Я ТОЛЬКО УЧУСЬ! БЛИН!
PM MAIL ICQ   Вверх
kin
Дата 22.3.2012, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 9.5.2008

Репутация: 1
Всего: 6



Привет!
Господа, зачем придумывать велосипед. fridkaratelmihanik уже писал вам, что для вашей  задачи подойдет NTBACKUP. Если я Вас правильно понял, вся проблема  заключается в определении "изменялся/не изменялся". Так вот, Вы забыли про атрибуты объектов файловой системы, а в частности атрибут "архивный". Если вы почитаете описание NTBACKUP и поймете, как она работает, то сразу решите свою проблему, а если чуть-чуть пошаманите с ключами и опциями архиватора (если оно Вам нужно), то поймете, что ваша проблема превращается в ничто
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0894 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.