Как сделать backup

Рано или поздно мы сталкиваемся с проблемой, которая в IT-индустрии подобна краху.

Не будем говорить, сколько человек пострадало от того, что вовремя не сохранили данные и не будем приводить отдельные примеры, а обобщим всё одним простым понятием — бэкап обязательно нужно делать.

Хочу привети самый простой способ сделать бэкап на Вашем сервере или VDS,

Но не стоит забывать, что этот бекап Вас может спасти только от неосторожности при работе с файлами на Вашем сервере, ну и что не маловажно — это при легком взломе Вашего сайта — можно будет восстановиться из локального бекапа.

Это было не большое вступление, а теперь к делу.

нам нужно создать файлик /root/scripts/backup.sh  и вставить  в него следующий код

 

#!/bin/sh

user="someusername"

wwwdir="/home/$user/www"

dbpass="mysqlpass"

backupdir="/home/backup"

timesave="4"

curdate=`date +%d%m%Y`

AllDB=`mysqlshow -p$dbpass|awk {'print $2'}|grep -v ^$|grep -v ^Databases`

mkdir -p $backupdir/$curdate

find $backupdir -type d -mtime +$timesave -exec rm -rf {} \;

for i in $AllDB; do

mysqldump -p$dbpass $i > $backupdir/$curdate/$i.sql

done

tar -czf $backupdir/$curdate/db.tgz $backupdir/$curdate/*.sql

rm $backupdir/$curdate/*.sql

tar -cf $backupdir/$curdate/www.tar $wwwdir

chmod -R 400 $backupdir

chown -R $user:$user $backupdir

здесь нужно изменить некоторые переменные на Ваше усмотрение — это:

$user — имя пользователя, данные которого будем бекапить

$wwwdir — абсолютный путь к данным, которые будем бекапить

$dbpass — пароль пользователя root для mysql

$backupdir — папка, в которой будем хранить бекапы

$timesave — количество архивов, которое будет храниться

теперь нам нужно добавить вызов скрипта в cron

[sourcecode language=’bash’]

crontab -e

[/sourcecode]

вот эту строку вставляем туда для ежедневного запуска скрипта:

[sourcecode language=’bash’]

0 1 * * * /bin/sh /root/scripts/backup.sh

[/sourcecode]

всё — теперь Ваши данные частично в безопастности.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *