Бэкап сайта с VPS на удаленный FTP сервер
- 11 Января 2016
- Volodymyr Hodiak
- Администрирование
- 4672
Эта статья пригодится владельцам сайтов на облачных хостингах типа digitalocean или тем, кто конфигурирует сервера под свои нужды без использования панелей ispmanager, cpanel, vesta и тп.
Давно хотел написать этот скрипт, но все никак руки не доходили.
Однако количество сайтов на собственных VPS растет, и вручную заходить и делать бэкапы начало надоедать (бэкап базы осуществляется автоматически каждый день скриптом automysqlbackup, а файлы архивировал и перемещал вручную).
Не имеет смысла держать бэкапы на том же сервере, что и сайт. Лучше спится, когда актуальная версия сайта в вас на харде или другом сервере.
Итак, приступим.
Просто создайте папку для бэкапов (в моем случае это / var / www / backup), настройте конфиги: путь к директории, доступ базы и фтп.
Сам скрипт:
#!/bin/sh # Company Otakoyi.com # Author wmgodyak mailto:wmgodyak@gmail.com # Config BACKUP=/var/www/backup BACKUP_DIR=/var/www/example.com #MySQL MUSER="root" MPASS="" MDB="" # FTP FTPD="/" FTPU="" FTPP="" FTPS="" # end config # Binaries TAR="$(which tar)" GZIP="$(which gzip)" FTP="$(which ftp)" # archive prefix NOW=$(date +%Y%m%d) DUMPFILE=full-$NOW.tar.gz # tmp dir mkdir $BACKUP/$NOW # backup site and db to tmp dir $TAR -czf $BACKUP/$NOW/site.tar.gz $BACKUP_DIR mysqldump -u$MUSER -p$MPASS $MDB > $BACKUP/$NOW/db.sql ARCHIVE=$BACKUP/$DUMPFILE ARCHIVED=$BACKUP/$NOW # backup all to one archive $TAR -zcvf $ARCHIVE $ARCHIVED # ftp cd $BACKUP $FTP -np $FTPS <
Этот простой скрипт умеет сделать дамп базы и директории с сайтом, объединяет их в один архив и посылает на удаленный фтп сервер.
После завершения операций он удаляет архив с текущего сервера.
Для автоматизации работы разместите скрипт в /etc/cron.daily/ftpbackup.sh и будет вам счастье.
Скачать его вы можете здесь