Так как основная проблема новичков под Linux состоит в том, что они спрашивают, как копать, а им отвечают, куда копать, я в качестве небольшого примера привожу практическую задачу пробуждения нас любимых после полуночных бдений за консолью =) Будить нас будет наш собственный лаптоп под управлением OS GNU/Linux.

С чего начать? Наверное с того, с чего начинался любой будильник – с срабатывания в точно назначеное время =)

Самый простой путь:


at -f /home/netf0x/ring.sh 7:07

Где:

cat /home/netf0x/ring.sh
mplayer /home/netf0x/ring.mp3

Как видим, все просто. Лишь бы демон atd работал и мы точно проснемся. Проверяется просто:

sudo root@fox:~# /etc/init.d/atd status
 * atd is running 

Но пойдем дальше:


root@fox:/tmp/ring# cat alarm
#!/bin/sh
amixer sset PCM 95% > /dev/null
VOL=0
START_VOL=50
STEP_VOL=10
SLEEP_VOL=120
ALARM_ACTION=/home/dimka/bin/alarm_action #Поменять на свой путь к файлу alarm_action
setvolume() { amixer sset Master $1% > /dev/null}
VOL=$START_VOL
setvolume $START_VOL
while [ 1 == 1 ]; do
$ALARM_ACTION
let VOL=VOL+STEP_VOL
setvolume $VOL
sleep $SLEEP_VOL

Этот скрипт делает следующее: Плавно прибавляет громкость и через скрипт (будет ниже) alarm_action выдает звук.

alarm_action:


root@fox:/tmp/ring# cat alarm_action
#!/bin/sh
play -q /home/dimka/snd/untie.wav > /dev/null & 2>1
DATE=`date | awk '{print($4)}' | sed s/:/" часов "/ | sed s/:/" минут "/ | awk '{print($1" "$2" "$3" "$4)}' `
/home/dimka/bin/fest "доброе утро, уже $DATE" #/home/dimka/bin/ - поменять на свой путь к файлу скрипта fest

Этот скрипт, посредством festival читает про доброе утро. Festival вызывается скриптом со звучным названием fest


#cat fest
#!/bin/sh
echo "(voice_msu_ru_nsh_clunits)(SayText \"$1\")(quit)" > /tmp/test
festival_client /tmp/test

Ну и теперь давайте все же заставим работать этот скрипт в назначеное время =)
В файл /etc/crontab добавляются следующие строки (а если у вас нет прав root просто наберите crontab -e и правьте правила только для себя)


45 7	* * 3	dimka	alarm
45 8	* * 1-2,4-5	dimka	alarm

Естественно user dimka надо поменять на имя вашего юзера ну а строки 45(минуты), 7(часы), 3(среда), 1-2(понедельник-вторник), 4-5(четверг-пятница)

Архив со скриптами прикладываю. Успехов в пробуждении!

Скрипты