А у нас новый сайт ----------------> www.ph-ph.ru!
Finar.ru
web.finar.ru
video.finar.ru
Темы для BootstrapNew!

SypexDumper 1.0.8 с поддержкой автоматизации через CRON

... а также передачи параметров в адресной строке и автоудаления старых бэкапов

Автор: Филипп Казаков | 2010-09-09 | просмотров 3441
Тэги

CMS: любая, использующая БД MySQL
Статус: стабильный
Скачать: SypexDumper1.0.8-Cron_by_PhPh_2010-09-09.zip (скачиваний: 755)
Стоимость внедрения договорная, обычно внедряется в рамках Внедрение системы бэкапов повышенной надежности

Этот рецепт можно установить и на ваш сайт. Внедрение производится после 100% предоплаты. Указана стоимость без учета работ по дизайну, каких-либо индивидуальных доработок и при оплате электронными деньгами. Работоспособность гарантирована. Если по каким-либо причинам рецепт не удается установить на ваш сайт, мы возвращаем все деньги.

Быстрее всего заказать внедрение, отправив нам на web@finar.ru письмо с указанием данных произведенного по реквизитам платежа, адреса целевого сайта и доступов в админку и на FTP. Более медленные способы начинаются с письма в свободной форме или с телефонного звонка.

Welcome!

Дата обновления 2010-09-09

Внимание: описание и код рецепта на этой странице могут быть актуальнее архива для скачивания!

К сожалению, пока мы не имеем возможности поддерживать актуальные версии готовых к установке архивов рецептов. Архивы обновляются "при случае", т.е. при существенных доработках, дата обновления прописана в имени архива.

Источники

Внедрения

Лицензия и политика использования

Разработчикам сайтов:

Рецепт распространяется под лицензией Creative Commons Share Alike (BY-SA) .

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

Мы не даем гарантий работоспособности рецепта и не несем ответственности за возможный ущерб от его применения. Сторонние разработки, использованные в рецепте, могут распространяются под другими лицензиями. Смотрите сайты источников.

Если вам понравился наш рецепт и вы хотите поблагодарить нас, вы можете сделать это следующими способами:

  1. доработать и улучшить рецепт и выслать нам обновление;
  2. прислать нам на web@finar.ru ссылку на внедрение (возможно, она появится в списке внедрений);
  3. на странице вашего сайта поставить ссылку на эту страницу;
  4. поблагодарить нас рублем, переслав любую сумму на наши электронные счета.

Есть идеи по сотрудничеству? Пишите: web@finar.ru

Владельцам сайтов:

Этот рецепт можно установить и на ваш сайт. Внедрение производится после 100% предоплаты. Указана стоимость без учета работ по дизайну, каких-либо индивидуальных доработок и при оплате электронными деньгами. Работоспособность гарантирована. Если по каким-либо причинам рецепт не удается установить на ваш сайт, мы возвращаем все деньги.

Быстрее всего заказать внедрение, отправив нам на web@finar.ru письмо с указанием данных произведенного по реквизитам платежа, адреса целевого сайта и доступов в админку и на FTP. Более медленные способы начинаются с письма в свободной форме или с телефонного звонка.

Welcome!


Внимание: описание и код рецепта на этой странице могут быть актуальнее архива для скачивания!

К сожалению, пока мы не имеем возможности поддерживать актуальные версии готовых к установке архивов рецептов. Архивы обновляются "при случае", т.е. при существенных доработках, дата обновления прописана в имени архива.

Это модификация скрипта SypexDumper 1.0.8. Первая модификация произведена neochief: добавлена возможность передачи параметров скрипту через адресную строку, и, соответственно, автоматизация через любой CRON (даже расположенный на другом хосте)

Вторая модификация произведена нами: в скрипт добавлен вызов PhPh_BackupAutodeleter.php, автоматически удаляющей лишние резервные копии при создании очередного дампа. Число копий, "остающихся в живых" также можно передать в адресной строке.

Установка и использование:

SypexDumper с поддержкой Cron
вот так выглядит исполнение ссылки
  1. перед началом работы сделайте резервную копию вашей БД обычными средствами и надежно сохраните ее;
  2. загрузите dumper_cron.php и PhPh_Autodeleter.php на хостинг в какую-либо директорию с достаточно случайным именем. Создайте поддиректорию /backup;
  3. обратитесь к скрипту dumper_cron.php, введите необходимые данные, как при использовании обычного Sypex. Выберите опцию резервного копирования нужной вам БД со сжатием, поддерживаемым вашим хостингом, или без него;
  4. в результате выполнения операции резервное копирование не будет осуществлено, но вы получите ссылку, по которой можно будет как вручную, так и автоматизированно вызывать выполнение данной операции с данными параметрами без ввода какой-либо дополнительной информации.
  5. скопируйте полученную ссылку в надежное место и используйте ее далее по своему усмотрению :) Например, вот как автоматизировать выполнение полученной ссылки под Windows. Можете воспользоваться cron'ом своего хостинга.

Заметки:

  • если вы хотите изменить дефолтное число резервных копий, которые будет оставлять скрипт (три), добавьте параметр &storenum=Х к концу скопированной ссылки, где X - число бэкапов. Если вы хотите временно отключить автоудаление, поставьте 0 вместо X;
  • если у вас несколько баз, повторите операцию сначала, в разных директориях, для каждой базы. Этот момент надо бы доработать :)

Код скрипта PhPh_BackupAutodeleter.php

<?php
## This was coded BY Ph&Ph (http://web.finar.ru) This IS a script FOR automatical DELETE exisiting backups copies. It IS siutable FOR USING WITH Sypex Dumper FOR FULL CRON automatization.

## here IS SOME config:
$dir = "./backup/"; // backup directory
$ext1 = "sql"; // FIRST acceptible file extension
$ext2 = "gz"; // SECOND acceptible file extension
$storenum = 3; //DEFAULT VALUE OF how many backups will stay untouched. IF 0, will NOT DELETE anything. Can be customed IN command line BY the following syntax:
// PhPh_BackupAutodeleter.php?storenum=5 , WHERE 5 IS how many backups do you want TO keep alive
##  here config finishes.

## -----------Do not modify anything below-----------


IF (isset ($_GET["storenum"])) {
    $storenum = $_GET["storenum"]; // IF there IS NEW VALUE IN command line, THEN apply it instead OF DEFAULT
}

echo "Script will keep <b>$storenum</b> backups<br><br>";

IF (is_dir($dir) && $storenum != 0) {
    $dh  = opendir($dir); // opening directory...
    while (FALSE !== ($filename = readdir($dh))) { // reading directory
        IF ($filename != "." && $filename != ".." ) { // bypass parent AND CURRENT dirs
            $ext = END(explode(".", $filename)); // GET extension
            IF ($ext == "$ext1" || $ext == "$ext2") { // IF file has properly extension, THEN proceed
                $files[] = $filename; // ADD this file TO array
            }
        }
    }

    $count = COUNT($files); //how many files we have now
    $i = $count-$storenum; //how many files we have TO DELETE

    IF ($count !=0 ) {
        sort($files); //  sort array BY name.  ToDo:  REPLACE sorting BY filename via sorting BY CREATE TIME FROM filesystem   


            foreach ($files AS $deleted) {
                IF ($i > 0) {
                    unlink("$dir$deleted");
                    echo "File <b>$deleted</b> was deleted<br>";       
                    $i--;
                }
                ELSE {
                    echo "File <b>$deleted</b> is alive<br>";      
                }
            }
        }
    ELSE {
    echo "<b>Attention:</b> no backup files found. Nothing to delete :( ";
    }
    echo "<br>Operation completed successful.";
}

?>

To-do лист скрипта PhPh_BackupAutodeleter.php:

PhPh_BackupAutodeleter.php - это скрипт, удаляющий из выбранной директории N первых по имени файлов, двух выбранных расширений. Вот что надо бы с ним сделать:

  • сделать сортировку файлов не по имени, как сейчас, а по дате создания, которую выцеплять из файловой системы;
  • обрабатываемые расширения оформлять в виде array, которая может быть бесконечной;
  • для использования с несколькими БД: научиться получать параметр имени базы из адресной строки, и, если он передается, оперировать только с теми файлами, имя которых начинается с имени полученной базы.

Связанные статьи:




Оставить комментарий 


Ваше имя:
->