21 января 2014 г.

Резервная копия в сети, запуск по расписанию, шифрование (debian)

В общем, опять. Надо сделать бекап сайта (debian) или чего угодно, вcтречаем:

Резервная копия в сети, запуск по расписанию, шифрование. А теперь по-английски: Backup, mysqldump, yandex-disk, cron, gpg.

1. Устанавливаем клиент yandex-disk.

2. Скрипт сохранения и шифрования.

  1. #!/bin/sh  
  2. # get the current timestamp for filename #  
  3. NOWDATE=`date +%d.%m.%y_%H%M`  
  4.   
  5. echo 'zipping ...'  
  6.   
  7. BACKUP="/path/to/yadisk"  
  8. TMPBACKUP="/path/to/temp"  
  9.   
  10. tar -cz /path/to/site/ | gpg --batch --yes -c --passphrase _passwordhere_ -o "$BACKUP/$NOWDATE-site_files.tgz.gpg"  
  11.   
  12. echo 'mysql_dump ...'  
  13.   
  14. DB_USER="dbuser"  
  15. DB_PASSWD="dbpassword"  
  16. DB_BASE="dbname"  
  17.   
  18. mysqldump --user=$DB_USER --password=$DB_PASSWD --opt $DB_BASE > "$TMPBACKUP/$NOWDATE-db_backup"  
  19. gpg --batch --yes --passphrase _passwordhere_  -o "$BACKUP/$NOWDATE-db_backup.gpg" -c "$TMPBACKUP/$NOWDATE-db_backup" && rm -f "$TMPBACKUP/$NOWDATE-db_backup"  


--batch --yes может даже лишнее. Но пригодится, если у вас одно и тоже имя для файла бекапа.

3. Пишем правило для crontab. Если вы путаетесь в параметрах crontab есть отличная вещь под названием cronWTF. :)

4. gpg для windows здесь.

Удаления старых файлов пока нет, так как после удаления на клиенте файлы остаются в корзине на сервере яндекс диска и занимают место и их надо все равно удалять вручную.

Комментариев нет:

Отправить комментарий