Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: perl cgi-скрипт Работа с mysql
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Описание: cgi-скрипт
victor
Отправлено: 12 Октября, 2008 - 23:51:45
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Здравствуйте. Подскажите пожалуста. Как при помощи cgi-скрипта:

1 -> проверить запущен ли mysqld (т.е. работает ли команда mysqld start) если нет то запустить
2 -> проверить существует ли лог файл БД журналов. Если нет, то выполнить команду mysqld --log=file.log
3 -> возможно ли заставить perl чтоб он выполнил php-скрипт.
Если нет как узнать информацию при помощи perl о изменениях файла. (дата изменения, размер)

Смысл в следующем. Нужно получить журнал событий Базы данных. Хорошобы получить журнал событий конкретной БД. При этом cgi-скрипт должен произвести поиск нахождения файлов.

Я вот что нашел: Для запуска командной строки придется использовать функцию system() при этом нужно написать полный путь к файлу. Так как сервер не мой, я его не знаю.

И еще не надо писать что то типа обратись к провайдеру, он даст тебе лог.
Я прекрасно понимаю что это будет опасный скрипт. Поэтому обязательно создам контроль над его исполнением.
 
 Top
Furax
Отправлено: 13 Октября, 2008 - 01:57:02
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




По третьему вопросу глянь здесь.
 
 Top
Леголегс Администратор
Отправлено: 13 Октября, 2008 - 07:00:17
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




1.
CODE:
/sbin/service mysqld status

Возвращает 0 если сервис запущен. Команда /sbin/service есть в ОС, произошедших от Red Hat Linux и отсутствует, ЕМНИП, в Debian и во FreeBSD. Можешь также попробовать
CODE:
/etc/init.d/mysqld status
/etc/rc.d/init.d/mysqld status

Если данные команды не воспринимают параметр "status" или вообще недоступны для твоего пользователя, то можно ковыряться в таблице процессов:
CODE:
ps -A | grep mysqld

Опять же, возвращаемый 0 означает, то мускул работает.
Не понятно, как без прав root ты собираешься запускать сервер, но тебе поможет
CODE:
/sbin/service mysqld start
и производные (см выше).
2. Не поняло чём идёт речь. У mysqld вроде нет параметра --log, только --log-error
3. Можно.
CODE:
system("php file.php")


Цитата:
нужно написать полный путь к файлу. Так как сервер не мой, я его не знаю.нужно написать полный путь к файлу. Так как сервер не мой, я его не знаю.
locate и find тебе в помощь. Надеюсь, тебя есть шелл на этом сервере? Если нет, придётся пускать команды через system().
 
 Top
victor
Отправлено: 13 Октября, 2008 - 08:26:22
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Спасибо за коды, попробую.
Леголегс команда --log-error собирает журнал ошибок БД
А команда --log собирает все что происходит в БД Тоесть полный журнал событий.
Также есть возможность собирать только изменения для этого запускают команду --log update кажется. И еще один есть параметр для лог.

И еще тогда один вопрос который я не предусмотрел. Если mysqld запущен, то нужно проверить существует ли файл log. Если да, то получить к нему путь.

(Отредактировано автором: 13 Октября, 2008 - 08:30:16)

 
 Top
Леголегс Администратор
Отправлено: 13 Октября, 2008 - 10:16:43
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




Команда
CODE:
ps -p `/sbin/pidof mysqld` -o cmd=

(обратные кавычки и знак равенства в конце не являются опечатками)
напечатает тебе командную строку, которой был запущен mysqld. Как выцепить имя файла лога - думай сам. Советую регэкспы.
 
 Top
victor
Отправлено: 20 Октября, 2008 - 07:15:28
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Леголегс , я попробовал запустить на исполнение команды
system("php file.php"Подмигивание
ПЕРЛ мне выдал ошибку, что ПХП не является внутренней или внешней командой и т.д.
Тоесть он незапустил данный скрипт на исполнение.
Скрипт для проверки я сделал простой. команда print.

Может еще надо какуюто команду выполнить при этом?
 
 Top
Леголегс Администратор
Отправлено: 22 Октября, 2008 - 04:35:08
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




victor пишет:
ПЕРЛ мне выдал ошибку, что ПХП не является внутренней или внешней командой и т.д.
Опять сервер на винде. Эпидемия прямо. Телепат я вам чтоли, угадывать операционки? Под досом ещё поднимите хостинг...
Раз windows, то все приведённые мной команды работать не будут, и аналоги будет не просто найти.
А для запуска php в виндоуз надо полностью указывать путь. цэ програм файлз и так далее до экзешника.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0407]     [ Gzipped ]