Веди лог действий и событий в консоли или msvn!

Однажды в летнее время суток делать как всегда было нечего, а как раз был взят в аренду виртуальный сервер, и так как пользователей на нём было несколько, а связи между ними стабильной не было, то было решено создать какое-то средство для того, что бы все пользователи могли следить за последними событиями, касающимися сервера. Ну, например, кто-то что-то установил, и сохранил информацию об этом, а кто-то может отконфигурировал какую-то хитрую штуку и решил по-хвастаться этим. В общем, было время и желание, в итоге получился скрипт под названием msvn (mini — svn).

Скрипт написан на php, но предназначен для запуска из консоли. Для работы ему нужен mysql-сервер, ведь именно там он хранит свои заметки.

Код для создания структуры базы в MySQL и прилагающихся табличек:

CREATE DATABASE IF NOT EXISTS `msvn` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `msvn`;

CREATE TABLE IF NOT EXISTS `notes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`text` text NOT NULL,
`creator` text NOT NULL,
`cr_time` int(11) NOT NULL,
`is_bug` tinyint(1) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uname` text NOT NULL,
`last_login` int(11) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `uname` (`uname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Так же для работы скрипта необходим интерпретатор php! Странно, не правда ли? 🙂

Сам скрипт можно поместить например сюда: /usr/bin/msvn
и назначить ему chmod +x, что бы его можно было запускать
Вот так выглядит небольшой хелп скрипта.
msvn

Вот список команд:

get_user_name — получить имя текущего пользователя.
add <текст заметки> — добавить новую заметку. Текст заметки можно писать без кавычек. Но спец. символы оболочки нужно экранировать, если передаётся в качестве параметра.
list — просмотр ВСЕХ заметок.
check — проверить наличие новых заметок, которые ЭТОТ пользователь ещё не прочёл.
del, rm <note_id> — удалить заметку по её индексу. Удалится, если пользователь является её создателем.
done, mc, uncheck, readed — любая из этих команд помечает заметки для текущего пользователя, как прочитанные.

Так же можно сразу не указывать команды, а просто запустить скрипт, тогда он войдёт в интерактивный режим, где будет ожидать команды. Для завершения интерактивного сеанса можно поставить точку и нажать Enter.

Можно поместить запуск скрипта таким образом: «msvn check» в файл .bashrc, который находится в домашней директории любого пользователя, и тогда при входе пользователя в систему ему будут сразу показываться непрочитанные заметки других пользователей. После прочтения он может командой «msvn done» пометить все, как прочитанные.

Так же можно удалять заметки по их идентификатору, который можно посмотреть в полном списке заметок например. Удалить заметку может только её владелец, что логично.

 

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

[Info]: Новых заметок пока нет. Ждёмс!

Скрипт — молодец! И находится он вот тут: http://shpirat.net/msvn.php.txt

Надеемся, что кому-то он может тоже пригодиться 🙂

Запись опубликована в рубрике Soft by Shpirat, Программы с метками , , , , . Добавьте в закладки постоянную ссылку.

Комментарии:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Докажи, что ты избранный! * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.