СПО в российских школах

Команда ALT Linux рассказывает о внедрении свободного программного обеспечения в школах России
Март 2, 2011

Автоматическая подача школьных звонков

Методические материалы, Опыт работы с ПСПО
Автор: Владимир Черный

Автор статьи Петр Берестов предлагает автоматизировать и разнообразить школьные звонки. Мне этот опыт показался весьма интересным и несложным применением СПО. Думаю, он пригодится кому-то из наших читателей.

«Почти во всех школах дела со звонками обстоят следующим образом: охранник нажимает на кнопку, подается электрический звонок. Как правило возможны опоздания. Звук звонка уж очень старомодный, а поменять его нельзя. Вообщем мы решили это дело автоматизировать…

В нашей школе есть сеть динамиков, которые служат для подачи объявлений. Эти динамики подцеплены к компьютеру как обычные колонки. На компьютере установлен Linux. Решение получилось достаточно простым. Инструкцию можете прочитать ниже.

Всю работу за нас будет делать планировщик задач crond. В Альте он уже установлен.

Первым делом добавим планировщик в автозапуск:
sudo chkconfig crond on1

Затем в домашней директории создадим папку в которой будут храниться наши звонки:
mkdir ~/music

Теперь устанавливаем консольный плеер mpg123:
sudo apt-get install mpg1232

Настало время написать простой скрипт. Открываем любой редактор и пишем:


#!/bin/bash
# zvonok.mp3 нужно заменить на ваш звонок. Звонки должны лежать в
#~/music

/usr/bin/mpg123 $HOME/music/zvonok.mp3
sleep 10
kill `pidof mpg123`

Сохраняем наш скрипт под именем zvonok. Делаем его исполняемым:
chmod +x zvonok

На конец, самый важный этап — конфигурированние crond.

Из под обычного пользователя пишем: crontab -e
В результате откроется файл в который нужно вписать расписание звонков и путь до нашего скрипта.
Вот пример:


#minute (0-59),
#| hour (0-23),
#| | day of the month (1-31),
#| | | month of the year (1-12),
#| | | | day of the week (0-6 with 0=Sunday).
#| | | | | commands
~

05 8 * * * ~/zvonok
50 8 * * * ~/zvonok
00 9 * * * ~/zvonok
45 9 * * * ~/zvonok
55 9 * * * ~/zvonok
40 10 * * * ~/zvonok

и т.д

Синтаксис файла я думаю понятен. Сначала пишем минуты, затем часы и путь до нашего скрипта.

Теперь перезагружаем сrond:
sudo service crond restart3

Всё, звонки будут подаваться автоматически.»

============
Оригинал статьи тут.

—————————
1Было бы странно, если этот сервис не работал! Ведь на нем сидят все системные логи. Так что это действие вам вряд ли понадобится.
Рекомендую сначала (от рута) запустить команду:
chkconfig --list |grep crond
В ответ вы увидите:
crond 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
Обратите внимание на 5-ый уровень, должно быть: 5:вкл
А вот sudo в ALT Linux исходно не включен (не настроен), поэтому рекомендую просто стать рутом выполнив команду:
su -
(su пробел минус) и вводим пароль рута.
2. Еще раз напомню, что sudo нужно предварительно настроить командой visudo, поэтому, если вы не владеете редактором vi (vim), то просто станьте рутом, а потом apt-get ..., но можно и просто запустить synaptic и в графическом режиме найти и установить этот плеер.
3Абсолютно ненужное действие. По выходу из редактирования, crond перезапускается автоматически, если вы внесли в файл изменения, если только «полюбопытствовали», то изменения в crond внесены не будут.
И еще, увы, но чтобы редактировать этот файл вам придется познакомиться с простейшими командами vim. Очень рекомендую пройти часовой урок с помощью команды vimtutor.
Как минимум вам понадобится нажать сначала i, чтобы перейти в режим редактирования, затем :wq, чтобы записать изменения.

Комментарии (4) к “Автоматическая подача школьных звонков”

  1. Вот в скрипте ошибочку еще заметил…Нужно не killall `pidof mpg123`. Правильно kill `pidof mpg123`. Поторопился я когда писал.

  2. Владимир Черный говорит:
    Март 2, 2011, 8:42 пп

    Поправил скрипт в тексте.
    А вообще, можно было бы обойтись и mplayer-ом, а не ставить специальную приблуду…
    Так что скрипт по уму надо писать более универсально:

    #!/bin/bash
    # Тут полный путь к консольному плейеру если надо с ключами
    PLAYER=/usr/bin/mpg123
    MELODY=$HOME/music/zvonok.mp3

    $PLAYER $MELODY
    sleep 10
    kill `pidof $PLAYER`

    Как-то так :)

  3. Александр Ч. говорит:
    Март 3, 2011, 3:23 пп

    Господа, тут дело в том, что иногда при необходимости звонки задерживаются.
    Здесь это не предусмотрено…

  4. Владимир Черный говорит:
    Март 3, 2011, 3:59 пп

    Александр, если задержки носят регулярный характер, просто сконфигурируйте кронтаб как необходимо. Там можно указывать дни недели конкретно.
    Если разовый характер — можно просто руками остановить выполнение кронтаб. Просто подсунуть ему пустой файл или файл учитывающий задержки. Система несколько раз в минуту сканирует что надо сделать :)
    Не вижу причины из-за этого отказываться от автоматизации.

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