tFF.msk.ru :: Sharing tFFed mind
Апрель 27, 2024, 22:28:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости: Пропал ребенок. Вся информация и фотографии здесь.
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Результат падения сайта.  (Прочитано 6821 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mode
Jr. Member
**
Offline Offline

Сообщений: 62



« : Май 08, 2005, 16:16:05 »

Никто не застрахован от ошибок. Теперь представьте, что может случиться с вашими данными и скриптами сайта, если на сервере провайдера откажет винчестер? и не будет копии данных, а вы провели довольно значительные изменения программного обеспечения? Вы храните данные у провайдера и полностью ему доверяете? Тогда представьте себе, что вас с завтрашнего дня будет обслуживать незнакомый администратор. В таких случаях не помешает иметь под рукой копию данных и скриптов вашего сайта, если вы хотите иметь возможность оперативно возобновить работоспособность сайта из резервной копии в случае возникновения проблем с хостинг-провайдером*.
В зависимости от возможностей и ваших прав доступа к серверу, на котором расположен веб-сайт, подлежащий архивации, существуют следующие способы сохранения контента и программ вашего сайта:
* применение CMS*, имеющих встроенные функции архивации и восстановления контента;
* архивация средствами сервера хостинг-провайдера*;
* архивация данных, запускаемая на сервере провайдера с удаленного компьютера.
Какой способ архивации веб-сайта выбрать?
В ведущие CMS - например, в CMS Mambo Studio - встроены механизмы архивации контента. Как правило, использование таких функций специализированных систем управления контентом носит интерактивный характер.
Применение встроенных средств CMS
Подавляющее большинство хостинг-провайдеров представляют доступ по протоколу SSH* к веб-каталогу вашего сайта. Если вы имеете необходимые права доступа к планировщику сервера и необходимым для архивации программам, задача значительно упрощается. В случае с UNIX-сервером достаточно написать шелл-скрипт* для архивации данных сайта. Его можно сделать доступным планировщику cron* с помощью соответствующих команд. Можно также поместить его в специальную директорию либо же указать ссылку на него в конфигурационном файле планировщика.
Архивация, запускаемая с сервера
Оптимальным способом для архивации данных на UNIX является использование программы tar с соответствующими ключами. Эта утилита существует во всех UNIX-совместимых операционных системах.
Архивация с помощью tar
Если скрипты вашего веб-сайта находятся в каталоге /home/www, то команда архивации будет выглядеть следующим образом:

# tar -czf /home/arh.tar.gz /home/www/*

Также желательно называть файл архива с учетом текущей даты, чтобы впоследствии было легче ориентироваться. Для этого можно использовать такой шелл-скрипт:

#!/bin/sh
date_time=`date +"%Y-%m-%d_%H-%M-%S"`
/bin/tar -czf /home/arh/arh_$date_time.tar.gz /home/www/*

Если разместить такой шелл-скрипт (назовем его arh_www) на сервере в каталоге /etc/cron.daily, задать ему права доступа 750 (команда chmod 750 /etc/cron.daily/arh_www) и создать каталог /home/arh, то архив скриптов вашего сайта будет создаваться раз в день.

Скрипты для архивации контента
В случае если часть контента вашего веб-сайта находится в базе данных MySQL, достаточно немного усложнить скрипт для архивации также и самой базы:

#!/bin/sh
to_cat=/home/arh/
web_cat=/home/www/*
date_time=`date +"%Y-%m-%d_%H-%M-%S"`
/usr/bin/mysqldump -h mysql_host -u mysql_user -pmysql_pass -d base >$to_cat/mysql_$date_time.sql
/bin/tar -czf ${to_cat}arh_$date_time.tar.gz $web_cat $to_cat/mysql_$date_time.sql
rm $to_cat/mysql_$date.sql

В вызове /usr/bin/mysqldump следует указать ваши реквизиты подключения к базе данных, хост (если база расположена локально - в качестве имени хоста следует указать localhost), имя пользователя, пароль и наименование вашей базы.

Архивируем как скрипты, так и базу данных
Операционные системы, совместимые с UNIX, предоставляют возможность выполнять периодические задания также и непривилегированному пользователю системы. Для указания времени запуска и программы, которая будет запускаться, используется команда crontab. Она имеет следующие режимы работы:
* редактирование конфигурации: crontab -e;
* вывод всех заданий: crontab -l;
* удаление всех заданий: crontab -l.
Управление cron'ом для пользователя
Редактирование crontab'ом пользовательской конфигурации cron.
После запуска из командной строки crontab -e вызывается текущий редактор (скорее всего, это будет текстовый редактор vim*). Для того чтобы задать периодический запуск, необходимо указать в полях текстового файла числа или символ "*" - если планируется периодическое выполнение задачи. К примеру, если первыми двумя полями файла задать числа 10 15, то задача будет выполняться в 15-10 по системному времени на сервере. Для того чтобы войти в режим редактирования vim, следует нажать insert. После внесения изменений переход в режим команд осуществляется через нажатие escape. Для того чтобы записать внесенные изменения в файл, нужно дать команду :wq!, что означает запись без дополнительных условий. В случае применения утилиты crontab необходимо запускать команды архивации с правами пользователя, который имеет права на чтение скриптов веб-сайта. Архивацию данных можно выполнять, не имея прав на доступ к файлам веб-сайта, поскольку утилита mysqldump имеет свой собственный механизм авторизации доступа к базе данных.

Использование утилиты crontab
Распаковка резервной копии с помощью mc.

Для восстановления скриптов сайта из архива вам достаточно распаковать архив в каталог, в котором расположен корень веб-сайта (в нашем примере это /home/www). Удобнее всего это выполнить с помощью Midnight Commander'а*. Восстановление базы данных выполняется с помощью утилиты mysql, которой передается файл дампа базы данных* mysql_xxx.sql, который заносится в общий архив:

#mysql -h mysql_host -u mysql_user -pmysql_pass -d base < $to_cat/mysql_xxx.sql

Как восстанавливать сайт из архива?
Созданный архив необходимо передать на удаленный компьютер. Для клиентской станции на Microsoft Windows идеально подходит утилита pscp.exe из состава проекта Putty*. Вы можете указать планировщику вашей операционной системы выполнять операцию копирования автоматически. В UNIX-совместимых операционных системах для таких целей можно применять команду scp (secure copy).

Передача данных на удаленный терминал
Если исходные материалы сайта подготавливаются клиентом, и их объем довольно существенен, можно отказаться от архивирования всех таблиц базы данных сайта. Утилита mysqldump позволяет выборочно указывать список таблиц базы данных, которые необходимо архивировать. К примеру, команда:

mysqldump -u root -p123 mysql host > /home/arh/mysql_host.txt

выводит таблицу host из базы данных под названием mysql в текстовый файл.

Оптимизация процесса архивации
Даже если у вас нет административных прав на системе хостинг-провайдера, вполне возможно управлять всей схемой архивации данных с удаленного компьютера. Достаточно запускать процесс архивации с помощью скрипта, запускаемого на удаленном компьютере, или применив программу wget* следующим образом:

wget.exe http://site.com.ru/run_arh.php.

Также можно применить следующий PHP-скрипт:

@file("http://site.com.ru/run_arh.php");
?>


Что делать, если прав доступа не хватает?
В скрипте run_arh.php задается запуск скрипта архивации сайта. Этот вариант возможен, если у вашего провайдера есть интерпретатор скриптов PHP*, и он работает не в защищенном режиме. Тогда возможно воспользоваться одной из команд для запуска внешних команд из PHP. В случае если PHP работает в защищенном режиме, вам следует воспользоваться утилитой, предназначенной для запуска команд на удаленном сервере через SSH-доступ. В этом случае следует учитывать, что время работы скриптов PHP ограничено 30 секундами (по умолчанию), и разрабатывать такой механизм, который бы выполнял архивацию сайта по частям.


Безвыходных ситуаций не бывает
Существуют несколько функций, встроенных в PHP, которые позволяют выполнить архивацию на сервере. Одна из них - pack. Эффективное использование этой функции можно посмотреть на примере PHP-класса zipfile


Использование специализированных классов PHP
Если клиент, запускающий архивацию, расположен на компьютере с установленной операционной системой Windows, вы также можете воспользоваться plink.exe из состава проекта Putty для запуска скриптов на удаленном сервере. Вот пример запуска этой утилиты:
>plink.exe -ssh test@192.168.2.1 /home/www/arh_site


Использование plink.exe
Конечно же, необходимым условием является присутствие скрипта архивации контента сайта в веб-директории и его доступность через Веб. При этом обостряются вопросы обеспечения безопасности веб-сайта. Но особой сложности здесь нет. Достаточно дать разрешение на запуск скриптов только для определенных IP-адресов или же просто указать длинное имя скрипта.


Не забывайте про права доступа и безопасность
Процесс сохранения данных и скриптов сайта и архивация сайта носят скорее профилактический характер. Но в случае возникновения сложностей только умело построенная копия программного обеспечения позволяет быстро восстановить работоспособность сайта. Часто кажется, что при разработке веб-сайта нет времени на такие рутинные операции. Но если вы хотите быть полностью уверены в том, что время и средства, вложенные в разработку и поддержание вашего сайта, не пропадут, наличие архивации - необходимое условие вашего спокойствия.

Взято  тута - http://postman2005.strana.de/2004_150.htm#20050505194638@699
Записан

Я люблю тебя, жизнь, ну а ты меня снова и снова...
tFF
Administrator
Sr. Member
*****
Offline Offline

Сообщений: 422



WWW
« Ответ #1 : Май 08, 2005, 22:52:48 »

Мод, Grand-респект тебе за столь детальное описание проблемы... Wink
Попытался с первого раза прочитать... Но не тут-то было... Сконцентрируюсь попозже, сейчас меня деконцентрирует бутылка Jim Beam и приятная кампания.

Ждем новых сообщений...
« Последнее редактирование: Май 09, 2005, 16:14:23 от tFF » Записан

So it goes...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

 ONLINECHANGE
Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!


Google visited last this page Октябрь 28, 2018, 13:46:13