Связаться со мной:
1 заметка с тегом

backup

Простейший скрипт для бекапа сайта.

Простейший скрипт для бекапа сайта на ftp по крону. Пример для debian, но скрипт должен работать и на других дистрибутивах.

Всё что нужно для работы скрипта есть в базовой поставке большинства дистрибутивов. Нужно установить только wput. Установим его:

# apt-get install wput

Создаем скрипт:

# nano /usr/bin/backup.sh


Содержание скрипта(исправьте значения переменных в начале скрипта):

#!/bin/bash
sitedirectory=/var/www/site.ru # дирректория виртуального хоста без "/" в конце
mysqluser=muser # пользователь mysql
mysqlpasswd=mpasswd # пароль пользователя mysql
dbname=sitedb # название базы mysql
ftpuser=fuser # пользователь ftp на который складывать бекап
ftppasswd=fpasswd # пароль пользователя ftp
ftphost=10.0.0.1 # ip или домен ftp-сервера на который складывать бекап
/usr/bin/mysqldump -u $mysqluser -p$mysqlpasswd $dbname > $sitedirectory/$dbname.sql
Y=`date "+%Y"` 
M=`date "+%m"` 
D=`date "+%d"`
/bin/tar -czf /tmp/backup-$D-$M-$Y.tar.gz $sitedirectory
/usr/bin/wput --reupload /tmp/backup-$D-$M-$Y.tar.gz ftp://$ftpuser:$ftppasswd@$ftphost/backup/
/bin/rm -f /tmp/backup-$D-$M-$Y.tar.gz
/bin/rm -f $sitedirectory/$dbname.sql

Затем делаем скрипт исполняемым

# chmod +x /usr/bin/backup.sh


И добавляем его в крон:

# crontab -e

0 1 * * * /usr/bin/backup.sh


Архив с бекапом будет отправляться в час ночи, каждый день на указанный ftp.

2014   backup   bash   cron   ftp