Сама ошибка выводится в консоли при дампе, цитата:
# ./mysqldbbackup.php
PHP Notice: Use of undefined constant _ROTATE_ - assumed '_ROTATE_' in /var/backup/mysqldbbackup.php on line 88
[ Processing database id 'dle' ]
Removing old backups...
Dumping database 'dle'...
Restoring owner...
[ Processing database id 'magneto' ]
Removing old backups...
Dumping database 'magneto'...
Restoring owner...
Всё успешно задампилось, но ошибка грозит на строку 88 а line 88 такова: define(_ROTATE_, 1);
Весь скрипт дампа:
Спойлер (Отобразить)
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- #!/usr/bin/php
- <?php
- ###########################################################################################
- ## MySQL DB Backup v 1.0 ##
- ###########################################################################################
- ## Copyright (c) 2008, Silver Ghost ##
- ## ##
- ## Это программа является свободным программным обеспечением. Вы можете ##
- ## распространять и/или модифицировать её согласно условиям Стандартной ##
- ## Общественной Лицензии GNU, опубликованной Фондом Свободного Программного ##
- ## Обеспечения, версии 3 или, по Вашему желанию, любой более поздней версии. ##
- ## Эта программа распространяется в надежде, что она будет полезной, но БЕЗ ##
- ## ВСЯКИХ ГАРАНТИЙ, в том числе подразумеваемых гарантий ТОВАРНОГО СОСТОЯНИЯ ПРИ ##
- ## ПРОДАЖЕ и ГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОГО ПРИМЕНЕНИЯ. Смотрите Стандартную ##
- ## Общественную Лицензию GNU для получения дополнительной информации. ##
- ## Вы должны были получить копию Стандартной Общественной Лицензии GNU вместе ##
- ## с программой. В случае её отсутствия, посмотрите <http://www.gnu.org/licenses/>. ##
- ## ##
- ###########################################################################################
- #########################################################################################
- ## НЕ РЕДАКТИРУЙТЕ НИЧЕГО НИЖЕ ЭТОЙ СТРОКИ, если не знаете, что Вы делаете !!!
- #########################################################################################
- GetConfig();
- if(_ROTATE_){
- echo "!!! NOTICE: Rotate of files not configured in this day.\n";
- }
- # Разбираем массив со списком баз
- while(list($id, $db) = each($dblist)){
- # Установлены ли переменные
- if($db['db'] && $db['archpath']){
- # Удаляем последний слеш в пути к бекапу
- RemoveTS($db['archpath']);
- # Существует ли путь и есть ли возможность записи
- if(file_exists($db['archpath']) && is_writable($db['archpath'])){
- echo "\n[ Processing database id '".$id."' ]\n";
- $file = $db['archpath']."/".$db['db']."_".date("Y-m-d").".sql.bz2";
- # Необходима ли ротация
- if(_ROTATE_){
- echo " Removing old backups...\n";
- Rotate($db);
- }
- echo " Dumping database '".$db['db']."'...\n";
- exec("mysqldump --user=".$config['dbuser']." --password=".$config['dbpass']." ".$db['db']." | bzip2 -".$config['compress']." > ".$file);
- echo " Restoring owner...\n";
- exec("chown ".$db['owner']." ".$file);
- } else {
- echo " ERROR: Directory ".$db['archpath']." not exist or not writable.\n";
- }
- } else {
- echo " ERROR: Check database name or path for backup for database id ".$id."\n";
- }
- }
- # Читаем файл конфигурации
- function GetConfig(){
- global $config, $dblist, $bd;
- # Читаем ini-файл
- $pathtoini = dirname(__FILE__);
- $ini = parse_ini_file($pathtoini."/var/backup/mysqldbbackup.ini", true);
- # Переносим в конфиг опции
- $config = $ini['Options'];
- }
- }
- # Прибиваем переменную. Она больше не нужна
- unset($ini);
- # Парсим дни для ротации файлов и проверяем необходимость ротации
- # Если в конфиге "*", то ставим флаг ротации
- if($config['removedays'] == '*'){
- define(_ROTATE_, 1);
- # если нет, то вызываем функцию проверки необходимости ротации
- } else {
- $bd = split(',', str_replace(' ', '', trim($config['removedays'])));
- VerifyRotateDay($bd);
- }
- }
- # Проверяем совпадение дня ротации
- function VerifyRotateDay(&$bd){
- if (in_array(date('w'), $bd)){
- define(_ROTATE_, 1);
- } else {
- define(_ROTATE_, 0);
- }
- }
- # Производим ротацию
- function Rotate(&$opt){
- global $config;
- # Вычитываем список файлов
- $files = split("\n", trim(`ls -lt ${opt['archpath']} | awk {'print($8)'} | grep ${opt['db']} | grep sql | grep bz2`));
- $i = count($files);
- while($config['nob'] < $i){
- # Удаляем лишнее
- unlink($opt['archpath']."/".$files[$i-1]);
- echo " Removed file ".$files[$i-1]."\n";
- $i--;
- }
- }
- ?>