Хостинг Мастерхост достаточно хорош, вот только есть некоторые проблемы с бэкапом своих данных. Поскольку на данном хостинге есть доступ по ssh, я решил написать свой скрипт backup-а. Так как сайтов может быть несколько, желательно разбить бэкап по доменным именам и по базам.
А вот и сам скрипт:
#!/bin/sh #!/bin/sh clear USER=u123456 # имя площадки DB_USER=u123456 # имя пользователя базы данных DB_PASSW=password # пароль пользователя базы данных WHAT_BACKUP=/home/$USER # каталог в котором все бэкапить WHERE_SAVE_BACKUP=$WHAT_BACKUP/backup # каталог куда бэкапить rm -r $WHERE_SAVE_BACKUP cd $WHAT_BACKUP FILES="$(ls -F | grep / | sed 's/\///g')" # в выбранном каталоге берем только директории mkdir $WHERE_SAVE_BACKUP mkdir $WHERE_SAVE_BACKUP/db mkdir $WHERE_SAVE_BACKUP/files echo Start DATABASES backup... DATABASES="$(mysql -u $DB_USER -h $USER.mysql.masterhost.ru -p$DB_PASSW -Bse 'show databases')" for db in $DATABASES do echo Backup $db; mysqldump -h $USER.mysql.masterhost.ru -u $DB_USER -p$DB_PASSW --database $db | gzip > $WHERE_SAVE_BACKUP/db/$db.sql.gz; done echo Start FILES backup... for fl in $FILES do echo Backup $fl; tar -cpzf $WHERE_SAVE_BACKUP/files/$fl.tgz $WHAT_BACKUP/$fl; done echo ALL DONE!
|
#!/bin/sh
#!/bin/sh
clear
USER=u123456 # имя площадки
DB_USER=u123456 # имя пользователя базы данных
DB_PASSW=password # пароль пользователя базы данных
WHAT_BACKUP=/home/$USER # каталог в котором все бэкапить
WHERE_SAVE_BACKUP=$WHAT_BACKUP/backup # каталог куда бэкапить
rm -r $WHERE_SAVE_BACKUP
cd $WHAT_BACKUP
FILES="$(ls -F | grep / | sed 's/\///g')" # в выбранном каталоге берем только директории
mkdir $WHERE_SAVE_BACKUP
mkdir $WHERE_SAVE_BACKUP/db
mkdir $WHERE_SAVE_BACKUP/files
echo Start DATABASES backup...
DATABASES="$(mysql -u $DB_USER -h $USER.mysql.masterhost.ru -p$DB_PASSW -Bse 'show databases')"
for db in $DATABASES
do
echo Backup $db; mysqldump -h $USER.mysql.masterhost.ru -u $DB_USER -p$DB_PASSW --database $db | gzip > $WHERE_SAVE_BACKUP/db/$db.sql.gz;
done
echo Start FILES backup...
for fl in $FILES
do
echo Backup $fl;
tar -cpzf $WHERE_SAVE_BACKUP/files/$fl.tgz $WHAT_BACKUP/$fl;
done
echo ALL DONE!
Скрипт записать как backup.sh (в кодировке сервера) и исправить в нем имена и пароли на свои. Затем выполнить chmod 755 backup.sh, чтобы скрипт стал запускаемым и запустить ./backup.sh. Внимание: при запуске скрипт полностью удаляет каталог бэкапа. Затем создает заново каталог backup и в нем 2 подкаталога:
- db — архивы баз данных
- files — архивы с содержимым каталогов доменов
Если все работает правильно, можно повесить бэкап на cron, выполнив команду:
crontab -e
И там в редакторе добавить строчку:
0 4 * * * /home/имя_площадки/backup.sh
Что означает запускать скрипт каждый день в 4:00.
Свежие комментарии