Понадобилось легко и непринуждённо иметь резервную копию директории с windows-сервера.

***

Первой попыткой было использование wget –mirror с ftp-сервером:

#!/bin/sh -e
unset
url="ftp://server.tld/path/to/dir/"
backup="/tmp/local-copy"

wget --no-cache -nH -c -t0 --mirror -P$backup -i- <<EOF
        $url/subfolder1
        $url/subfolder2
        $url/subfolderN
EOF

Первоначальный бэкап вроде как получился, но последующие попытки синхронизироваться ничем не завершались – wget уходил в себя от бесконечных потуг скачать некоторые файлы, размер которых не сходился с ожидаемым.
Вина ли тут ftp-сервера или проблема во wget разбираться не захотелось. Кроме того обнаружилось, что файлы с кириллицей в названии в процессе перекачки потеряли часть былых имён. wget вычёркиваем.

***

Попытался найти аналог rsync для windows, первые несколько страниц поиска содержали какие-то gui-приложения, форумы предлагали использовать cygwin и массу других тяжеловесных комбайнов…

В итоге всё решилось импортом директории в svn и добавлением в “Scheduled tasks” следующего bat-файла:

cd \path\to\dir
for /f "tokens=2*" %%i in ('\path\to\bin\svn status . ^| find "?"') do \path\to\bin\svn add "%%i"
for /f "tokens=2*" %%i in ('\path\to\bin\svn status . ^| find "!"') do \path\to\bin\svn delete "%%i"
\path\to\bin\svn commit -m "Automatic backup" .

***

Дописывая эти строки подумалось – а ведь можно было использовать dropbox (asus webstorage, ubuntu one и т.п.)… Ну да ладно – велосипед собранный своими руками милее (и прозрачнее в работе).

subversion как система резервного копирования
Tagged on:         

Leave a Reply