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

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

Strict Standards: Resource ID#34 used as offset, casting to integer (34) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: perl cgi-скрипт Работа с mysql
ТвойWeb » WebMaster класс » PHP/Perl » perl cgi-скрипт Работа с mysql

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

1. victor - 12 Октября, 2008 - 23:51:45 - перейти к сообщению
Здравствуйте. Подскажите пожалуста. Как при помощи cgi-скрипта:

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

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

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

И еще не надо писать что то типа обратись к провайдеру, он даст тебе лог.
Я прекрасно понимаю что это будет опасный скрипт. Поэтому обязательно создам контроль над его исполнением.
2. Furax - 13 Октября, 2008 - 01:57:02 - перейти к сообщению
По третьему вопросу глянь здесь.
3. Леголегс - 13 Октября, 2008 - 07:00: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().
4. victor - 13 Октября, 2008 - 08:26:22 - перейти к сообщению
Спасибо за коды, попробую.
Леголегс команда --log-error собирает журнал ошибок БД
А команда --log собирает все что происходит в БД Тоесть полный журнал событий.
Также есть возможность собирать только изменения для этого запускают команду --log update кажется. И еще один есть параметр для лог.

И еще тогда один вопрос который я не предусмотрел. Если mysqld запущен, то нужно проверить существует ли файл log. Если да, то получить к нему путь.
5. Леголегс - 13 Октября, 2008 - 10:16:43 - перейти к сообщению
Команда
CODE:
ps -p `/sbin/pidof mysqld` -o cmd=

(обратные кавычки и знак равенства в конце не являются опечатками)
напечатает тебе командную строку, которой был запущен mysqld. Как выцепить имя файла лога - думай сам. Советую регэкспы.
6. victor - 20 Октября, 2008 - 07:15:28 - перейти к сообщению
Леголегс , я попробовал запустить на исполнение команды
system("php file.php"Подмигивание
ПЕРЛ мне выдал ошибку, что ПХП не является внутренней или внешней командой и т.д.
Тоесть он незапустил данный скрипт на исполнение.
Скрипт для проверки я сделал простой. команда print.

Может еще надо какуюто команду выполнить при этом?
7. Леголегс - 22 Октября, 2008 - 04:35:08 - перейти к сообщению
victor пишет:
ПЕРЛ мне выдал ошибку, что ПХП не является внутренней или внешней командой и т.д.
Опять сервер на винде. Эпидемия прямо. Телепат я вам чтоли, угадывать операционки? Под досом ещё поднимите хостинг...
Раз windows, то все приведённые мной команды работать не будут, и аналоги будет не просто найти.
А для запуска php в виндоуз надо полностью указывать путь. цэ програм файлз и так далее до экзешника.

Форум на AlfaSpace.NET


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

[Script Execution time: 0.0264]     [ Gzipped ]