Archive for Июль, 2009

И снова Linux. Говорящий будильник.

Posted on Июль 22nd, 2009 in Linux | No Comments »

Так как основная проблема новичков под 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(четверг-пятница)

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

Скрипты

Поиск дубликатов файлов.

Posted on Июль 15th, 2009 in FreeBSD, Linux | No Comments »

Сначала хотел написать скрипт. На ум пришла идея использования md5sum или openssl для получения хешей файлов и их сравнения. Но лень потянула в гугл. Оказывается есть и достаточно неплохое решение – fdupes

Например можно вот так:

root@fox:~# fdupes -r /home/netf0x/Desktop/ -d
[1] /home/netf0x/Desktop/Temp/Penetration Test_files/marktree.js
[2] /home/netf0x/Desktop/Temp/report template_files/marktree.js
Set 1 of 4, preserve files [1 - 2, all]:

А если указать параметр -N (–noprompt) то и спрашивать не будет сохраняя только ту версию что под номером 1.

Linux

Posted on Июль 3rd, 2009 in Разное | No Comments »