Простейший скрипт для бекапа сайта.
Простейший скрипт для бекапа сайта на 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.