Backup windows с помошью cwRsync

Материал из rrv-wiki
Перейти к навигации Перейти к поиску

И опять мой любимый 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      Выполнение указанной команды (строки) с последующим завершением.