Backup windows с помошью cwRsync
И опять мой любимый rsync только для винды cwRsync.
Содержание
Задача:
инкрементное копирование папки с Win-компьютера на файловый сервер.
Решение:
Скачиваем и устанавливаем cwRsync.
Создаем пользователя backup
Создадим ключи dsa
Теперь создадим ключи dsa для ssh для того, что бы при работе скрипта копирования не запрашивался пароль.
$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/backup/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
Должно получится два файла /backup/.ssh/id_dsa и /backup/.ssh/id_dsa.pub
Переименовываем /backup/.ssh/id_dsa.pub в /backup/.ssh/authorized_keys2 и переносим /backup/.ssh/id_dsa на win-компьютер например сюда c:\Program Files\cwRsync\bin\id_dsa и ограничиваем доступ, разрешая чтение только одному пользователю.
Теперь правим /backup/.ssh/authorized_keys2 добавляя в начало файла
from="192.168.0.185, !*",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
что бы получилось нечто подобное:
from="192.168.0.185, !*",no-port-forwarding,no-X11-forwarding,no-agent-forwardin g,no-pty ssh-dss AAAAB3NzaC1kc3MAAACBAJvzFQ2bHlgrKZibhNt7ayYr72Y+jn56OSzhc0r7qkI i93exM+WcFh853oGekXgmFBJl3pqac0iG5DXCHv2XsXr+Dul/NT+b4hpiZl5oHXD6Z27VZ26XuFRPXdS LrCZaZefjW86SupEHLFC8YRulGgLJvNba7DscHejvPQOPVk7MAAAAFQDbn7uczRTT4JjGJqhcKac6tgM zsQAAAIEAg0wc8oM/OUbibtduSOFbRx3pqwWznIjzmf7UU7AkWYDAlKN9B31poFg1imFY7kTDSOEhq0v 7rPEc8Qr37teOwviijy+eee1w3G0U04AJjjuYciuS4zWS3M06DQFHeU/oTCnDaViU30W4tQ1Lhbpvuot VDA4u4vJmtPFLKhbOTjcAAACAZmaGT5jXLB2tgvulEtPHEBI9WbNLzTBPeoOUnT2dYzvR9pr+PKKhaUd wHwZeG2NJohweSWHIx4Hs3IzS8/tov2pTxlLPmPEOSVjJcYW5pUdiFo7+ILhvA4xCr0KN11h5CMQBQaw bBtU0kujeSnh+k/WSHSb3a52e1JrYaaN+fqM= Administrator@Central
Таким образом мы разрешаем доступ только с ip-адреса 192.168.0.185 и запрещаем туннелирование и шел.
Скрипт копирования
На win-компьютере создаем файл например C:\Program Files\cwRsync\bin\backup.bat
cd "C:\Program Files\cwRsync\bin\" "C:\Program Files\cwRsync\bin\rsync" -e "ssh -i '/cygdrive/c/Program Files/cwRsync/bin/id_dsa'" -r -l -x --force -p -t --delete -S -H -b--backup-dir="/home/backup/Central-old" "/cygdrive/F/BG/Baza 1c" "backup@192.168.0.2:/home/backup/Central" "C:\Program Files\cwRsync\bin\ssh.exe" -i '/cygdrive/c/Program Files/cwRsync/bin/id_dsa' backup@192.168.0.2 '/bin/sh /home/backup/backup.sh'
Здесь мы копируем папку F:\BG\Baza 1c на сервер 192.168.0.2 в папку /home/backup/Central, а измененные (удаленные)
файлы в /home/backup/Central-old. Используем пользователя (unix) backup и используем ключ c:\Program Files\cwRsync\bin\id_dsa.
Затем мы запускаем скрипт /home/backup/backup.sh для архивации старых файлов.
Скрипт /home/backup/backup.sh
DATE=`date +%d.%m.%Y-%H:%M` echo $DATE mv /home/backup/mobile-old/* /home/backup/old/$DATE /usr/bin/tar cfz /home/backup/old/$DATE.tar.gz /home/backup/old/$DATE && rm -r / home/backup/old/$DATE
Добавляем задание в планировщик задач windows
Все как обычно только в поле запуска программы пишем:
cmd /C "C:\Program Files\cwRsync\bin\backup.bat"
Ключ
/C Выполнение указанной команды (строки) с последующим завершением.