Backup
Работать без бэкапа было как-то некомфортно. Но всё не было времени, заняться этим. Но теперь кажется всё позади.
На ноутбук был установлен 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 |