/var/log/life.log
Блог программиста из солнечной Бурятии

Backup

isolated-316392_640.jpg Работать без бэкапа было как-то некомфортно. Но всё не было времени, заняться этим. Но теперь кажется всё позади.
На ноутбук был установлен ssd, а hdd был перемещён на место cdrom. Весь рабочий энвайромент был перенесён в виртуалку. Во первых стояла проблема: как делать бэкап баз данных. Во вторых, в худшем случае всё нужно ставить и настраивать достаточно долгое время. Виртуальная машина мне показалась хорошим решением. В качестве виртуальной машины vmware, скорость по сравнению с vbox была заметна на глаз. Файлы подключаются через shared folder.

Каждую ночь запускается скрипт:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@ECHO OFF
REM Make environment variable changes local to this batch file
SETLOCAL

REM ** CUSTOMIZE ** Specify where to find rsync and related files (C:\CWRSYNC)

SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC

REM Set HOME variable to your windows home directory. That makes sure

REM that ssh command creates known_hosts in a directory you have access.
SET HOME=%HOMEDRIVE%%HOMEPATH%

REM Make cwRsync home as a part of system PATH to find required DLLs

SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

rsync -az --delete --exclude=**/.git --exclude=**/node_modules /cygdrive/c/work/ /cygdrive/d/Backups/work
vmrun -T ws stop "C:\Users\vampirus\Documents\Virtual Machines\Ubuntu\Ubuntu.vmx" soft
copy "C:\vm\devvm.vmdk" "D:\Backups\vm\devvm.vmdk" /Y
vmrun -T ws start "C:\Users\vampirus\Documents\Virtual Machines\Ubuntu\Ubuntu.vmx" nogui
rsync -az --modify-window=1 --delete --exclude=**/.git --exclude=*.zip --exclude=*.sql --exclude=**/cache/* --exclude=*.gz --exclude=**/node_modules /cygdrive/d/Backups/work 192.168.1.2::backups/
rundll32 powrprof.dll,SetSuspendState 0,1,0

1. rsync копирует файлы на hdd
2. останавливается виртуальная машина
3. копируется диск виртуальной машины
4. вм запускается в фоновом режиме
5. всё копируется на сервер
6. ноутбук отправляется дальше спать(надо гибернацию отключить, чтобы он засыпал powercfg -hibernate off)

На сервере создаются инкрементальные архивы и синхронизируются с s3 амазона

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
SOURCE="/home/server/backup"
test -d "$SOURCE" || exit 1
DEST_DIR="/home/server/backup2/"`date +%Y-%m`; #monthly
/bin/mkdir -p $DEST_DIR;
/bin/tar --create --preserve-permissions --totals --bzip \
--file="$DEST_DIR"/`date +%F-%s`.tbz2 \
--listed-incremental="$DEST_DIR"/backup.snar \
--no-check-device --exclude-vcs \
--exclude-tag-under=access.log --exclude='*.log' \
--exclude-caches --exclude-tag-under=IGNORE.TAG "$SOURCE"
split -b 300m "$DEST_DIR"/`date +%F-%s`.tbz2 "$DEST_DIR""/`date +%F-%s`.tbz2.part-"
/usr/local/bin/aws s3 sync /home/server/backup2 s3://vampirusblog/backup