Quantcast
Channel: Библиотека знаний
Viewing all articles
Browse latest Browse all 1318

Backup с помощью rsyncd

$
0
0

Backup с помощью rsyncd

Решил настроить backup. Первая мысль была: ночью сжимать все в один большой архив и отправлять по сети с помощью scp, например.. Но этот вариант не устраивал меня как минимум по двум причинам:

- Копироваться будут абсолютно все файлы, даже которые не изменились - Для авторизации придется использовать ключи, что не есть хорошо для безопасности

Прогуглив этот вопрос нашел замечательную утилиту rsync ее и стал мучить. ))

Итак, работать все будет следующим образом: на компьютере, который мы будем бэкапить, ставим и настраиваем rsync сервер, на backup сервере настраиваем rsync клиент. После этого синхронизиркем данные на backup сервере с данными на других серверах. Для примера, имя бэкап сервера будет: backup, а имя машины с которой мы будем синхронизировать данные — mail:

Проверка

  mail# uname -rsn
  FreeBSD mail.teachers 6.1-RELEASE
  mail#
  /root/> uname -rsn
  FreeBSD backup 6.1-RELEASE-p6
  /root/>

Настройка

Сначала настроим rsync сервер. Идем в порты ставить:

# apt-get install rsync

nano rsyncd.conf

  # Файл приветствия
  motd file = /etc/new_motd
 
  # Лог файл
  log file = /var/log/rsyncd.log
 
  # Писать в лог о скачивание файлов
  transfer logging = true
 
  # Описание секции ETC
  [etc]
          # Путь к директории
          path = /etc/
 
          # Под каким uid'ом работать
          uid = root
 
          # Только чтение
          read only = yes
 
          # Разрешать просмотр файлов
          list = yes
 
          # Комментарий
          comment = ETC directory
 
          # Хосты, которым разрешен доступ
          hosts allow = 192.168.1.249
 
          # Разрешенные пользователи
          auth users = backup
 
          # Путь к файлу с паролями
          secrets file = /usr/local/etc/rsyncd.scrt
 
  # Далее может идти описание других секций(по аналогии с samba и шарами)
  Создаем необходимые файлы и директории
  mail# cat > /etc/new_motd
  HELLO FROM RSYNC
 
  mail# touch /var/log/rsyncd.log
  mail# chmod 0600 /var/log/rsyncd.log
  mail# chown root:wheel /var/log/rsyncd.log
  mail# cat > /usr/local/etc/rsyncd.scrt
  backup:123456
  mail# chown root:wheel /usr/local/etc/rsyncd.scrt
  mail# chmod 0600 /usr/local/etc/rsyncd.scrt
  mail# mv /usr/local/etc/rc.d/rsyncd /usr/local/etc/rc.d/rsyncd.sh
  mail# echo rsyncd_enable=\"YES\" >> /etc/rc.conf
  mail# /usr/local/etc/rc.d/rsyncd.sh start
  Starting rsyncd.
  mail# ps ax | grep rsyn
  97920  ??  Ss     0:00.00 /usr/local/bin/rsync --daemon
  97922  p0  S+     0:00.01 grep rsyn
  mail#

Теперь перейдем к настройке клинта, точнее настраивать там ничего не надо... Нужно просто проверить как все работает:

  /root/> cd /usr/ports/net/rsync/
  /usr/ports/net/rsync/> make install clean
  ... skipped ...
  /usr/ports/net/rsync/> rehash
  /usr/ports/net/rsync/>

Проверяем работу сервера:

  /root/> rsync mail::
  HELLO FROM RSYNC
 
 
  etc             ETC directory
  var             VAR directory
  /root/>

Теперь пробуем авторизоваться:

  /usr/ports/net/rsync/> rsync backup@mail::etc
  HELLO FROM RSYNC
 
 
  Password:
  @ERROR: auth failed on module etc
  rsync error: error starting client-server protocol (code 5)
   at main.c(1296) [receiver=2.6.8]
  /usr/ports/net/rsync/> rsync backup@mail::etc
  HELLO FROM RSYNC
 
 
  Password:
  drwxr-xr-x        2048 2006/10/05 21:27:03 .
  lrwxrwxrwx          12 2006/09/15 21:24:09 aliases
  -rw-r--r--       16384 2006/09/17 14:27:21 aliases.db
  -rw-r--r--         209 2006/05/07 08:00:23 amd.map
  -rw-r--r--        1234 2006/05/07 08:00:23 apmd.conf
  -rw-r--r--         231 2006/05/07 08:00:23 auth.conf
  -rw-r--r--         737 2006/05/07 08:00:23 crontab
  -rw-r--r--         108 2006/05/07 08:00:23 csh.cshrc
  -rw-r--r--         481 2006/05/07 08:00:23 csh.login
  -rw-r--r--         110 2006/05/07 08:00:23 csh.logout
  ... skipped ...
 
  /usr/ports/net/rsync/>

В первый раз я ввел неверный пароль. Все конечно хорошо, но если запускать бэкап по крону, то как вводить пароль? Для этого можно указать password-file:

  /usr/ports/net/rsync/> cat > /usr/local/etc/rsyncd.scrt
  123456
  /usr/ports/net/rsync/> chown root:wheel /usr/local/etc/rsyncd.scrt
  /usr/ports/net/rsync/> chmod 0600 /usr/local/etc/rsyncd.scrt
  /usr/ports/net/rsync/> rsync --password-file=/usr/local/etc/rsyncd.scrt \
  ? backup@mail::etc
  HELLO FROM RSYNC
 
  drwxr-xr-x        2048 2006/10/05 21:27:03 .
  lrwxrwxrwx          12 2006/09/15 21:24:09 aliases
  -rw-r--r--       16384 2006/09/17 14:27:21 aliases.db
  -rw-r--r--         209 2006/05/07 08:00:23 amd.map
  -rw-r--r--        1234 2006/05/07 08:00:23 apmd.conf
  -rw-r--r--         231 2006/05/07 08:00:23 auth.conf
  -rw-r--r--         737 2006/05/07 08:00:23 crontab
  -rw-r--r--         108 2006/05/07 08:00:23 csh.cshrc
  -rw-r--r--         481 2006/05/07 08:00:23 csh.login
  -rw-r--r--         110 2006/05/07 08:00:23 csh.logout
  ... skipped ...
  /usr/ports/net/rsync/>

На сервере, в логах будет примерно следующее:

  mail# tail -3 /var/log/rsyncd.log
  2006/10/05 21:53:21 [98220] connect from backup.teachers (192.168.1.249)
  2006/10/05 21:53:21 [98220] rsync on etc from backup@backup.teachers (192.168.1.249)
  2006/10/05 21:53:21 [98220] sent 1807 bytes  received 99 bytes  total size 411665
  mail#

На backup сервере создадим директорию, где будут храниться забэкаппенные файлы и начинаем backup:

  /root/> df -alh | grep backup
  /dev/ad1s1d    144G    2.0K    133G     0%    /backup
  /root/> mkdir -p /backup/mail.teachers/etc/
  /root/> chmod -R 0700 /backup/mail.teachers/
  /root/> ls -la /backup/mail.teachers/
  total 6
  drwx------  3 root  wheel  512 Oct  5 22:01 .
  drwxr-xr-x  3 root  wheel  512 Oct  5 22:01 ..
  drwx------  2 root  wheel  512 Oct  5 22:01 etc
  /root/> rsync --update --recursive \
  ? --password-file=/usr/local/etc/rsyncd.scrt backup@mail::etc \
  ? /backup/mail.teachers/etc/
  HELLO FROM RSYNC
 
 
  skipping non-regular file "aliases"
  skipping non-regular file "namedb"
  skipping non-regular file "rmt"
  skipping non-regular file "termcap"
  /root/>

Ссылочки rsync качать не стал. ;). Смотрим, что у нас получилось:

  /root/> ls -la /backup/mail.teachers/etc/
  total 528
  drwx------  18 root  wheel   2048 Oct  5 22:03 .
  drwx------   3 root  wheel    512 Oct  5 22:01 ..
  drwxr-xr-x   2 root  wheel    512 Oct  5 22:03 X11
  -rw-r--r--   1 root  wheel  16384 Oct  5 22:03 aliases.db
  -rw-r--r--   1 root  wheel    209 Oct  5 22:03 amd.map
  -rw-r--r--   1 root  wheel   1234 Oct  5 22:03 apmd.conf
  -rw-r--r--   1 root  wheel    231 Oct  5 22:03 auth.conf
  drwxr-xr-x   2 root  wheel    512 Oct  5 22:03 bluetooth
  -rw-r--r--   1 root  wheel    737 Oct  5 22:03 crontab
  -rw-r--r--   1 root  wheel    108 Oct  5 22:03 csh.cshrc
  -rw-r--r--   1 root  wheel    481 Oct  5 22:03 csh.login
  -rw-r--r--   1 root  wheel    110 Oct  5 22:03 csh.logout
  ... skipped ...
  /root/>

На сервере:

  mail# tail -3 /var/log/rsyncd.log
  2006/10/05 22:00:05 [98379] send backup.teachers 
  [192.168.1.249] etc (backup) ssh/sshd_config 3042
  2006/10/05 22:00:05 [98379] send backup.teachers 
  [192.168.1.249] etc (backup) ssl/openssl.cnf 7869
  2006/10/05 22:00:05 [98379] sent 1286010 bytes  
  received 7581 bytes  total size 1264419
  mail#

Как видите, у нас передалась вся директория etc и все поддиректории. Давайте добавим в файл /etc/hosts пробел и попробуем сделать бэкап:

mail# echo "" >> /etc/hosts
mail#

Теперь бэкапим:

  /root/> rsync --update --verbose --recursive \ 
  ? --password-file=/usr/local/etc/rsyncd.scrt \
  ? backup@mail::etc /backup/mail.teachers/etc/
  HELLO FROM RSYNC
 
 
  receiving file list ... done
  skipping non-regular file "aliases"
  skipping non-regular file "namedb"
  skipping non-regular file "rmt"
  skipping non-regular file "termcap"
  hosts
 
  sent 126 bytes  received 6567 bytes  4462.00 bytes/sec
  total size is 1264421  speedup is 188.92
  /root/>

Как видите, у нас передался только файл hosts, потому что изменился только он.


Viewing all articles
Browse latest Browse all 1318

Latest Images

Trending Articles


Vimeo 11.6.0 by Vimeo.com, Inc.


Vimeo Create - Video Maker & Editor 1.5.2 by Vimeo Inc


Long Distance Relationship Tagalog Love Quotes


Love with Heart Breaking Quotes


RE: Mutton Pies (frankie241)


FORECLOSURE OF REAL ESTATE MORTGAGE


Vimeo 11.6.1 by Vimeo.com, Inc.


Vimeo 11.8.2 by Vimeo.com, Inc.


Doodle Jump 3.11.35 by Lima Sky LLC


UPDATE SC IDOL: TWO BECOME ONE


Vimeo 10.7.0 by Vimeo.com, Inc.


Presence Quotes – Positive Quotes


Letting Go Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.1 by Vimeo.com, Inc.


Vimeo 11.8.1 by Vimeo.com, Inc.


Doodle Jump 3.11.34 by Lima Sky LLC


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


FORTUITOUS EVENT



Latest Images