LINUX « E-Pillole
Cron + Rhythmbox + Scriptino = Sveglia
Alzarsi presto al mattino è sempre un "problema" a qualisiasi età. Svegliarsi poi con il rumore fastidioso e incessante della sveglia (il classico bip biip biiip ad intesità crescente) è davvero angosciante e non rende di certo il risveglio piacevole :)
Una comoda soluzione a questa avversione nei confronti dell'alzata mattutina è quella di utilizzare la propria "linux box" come sveglia, e aprire ogni giorno gli occhi sotto le note della propria canzone preferita del momento...
Supponendo di avere una qualsiasi distribuzione Linux installata (ovviamente sempre up & running), Gnome come DE, e un "dispositivo" audio colleggato al PC, preferibilmente uno stereo con un timer per l'accensione e un livello di volume potenzialmente bello alto (sempre meglio non rischiare) :) vediamo come procedere...
Avendo scelto Rhythmbox come player multimediale, il nostro fine è quello di eseguire, nei giorni che ci interessano e ad un determinato orario (dicesi cronjob), questo comando:
rhythmbox-client --play-uri=/percorso/canzone/sveglia.ogg|mp3
Per qualsiasi info, nel caso vogliate eseguire un comando differente (magari per caricare una playlist o altro), fate riferimento alle sempre utili man pages:
man rhythmbox
man rhythmbox-client
Chiaro il comando, per eseguire periodicamente il nostro cronjob (sveglia) ci affidiamo all'intramontabile Cron, installato di default su qualsiasi distribuzione Linux e sempre running in background, pronto a ricevere istruzioni per "schudelizzare" qualsiasi tipo di operazione gli venga assegnata.
In sintesi, oltre ad un crontab di sistema, ogni utente possiede il proprio, consultabile digitando in un terminale:
crontab -l
Se ancora non avete impostato nessun cronjob per il vostro utente visualizzarete quanto segue:
# m h dom mon dow command no crontab for user
che potremmo rendere più comprensibile in questo modo :)
# m h dom mon dow command * * * * * /percorso/assoluto/comando # COMMENTO | | | | | | | | | |---> Giorno della settimana (0-7) (0 = domenica) | | | |-----> Mese (1-12) | | |-------> Giorno del mese (1-31) | |---------> Ora (0-23) |-----------> Minuto (0-59)
Abbastanza semplice no...?? Per approfondire l'argomento e per ulteriori info su Cron, qui, qui, e qui trovate diversi esempi utili e molti più dettagli ;)
Ma torniamo ora alla nostra sveglia...
Noto il comando, e chiarito il funzionamento di chi ne permetterà l'esecuzione, supponendo di volersi svegliare tutti i giorni, dal lunerdi al venerdi, alle 7:15 del mattino, l'istinto suggerirebbe di creare un cronjob per il nostro utente digitando:
crontab -e
ed inserendo alla prima riga vuota disponibile:
15 7 * * 1-5 /usr/bin/rhythmbox-client --play-uri=/percorso/canzone/sveglia.ogg|mp3
Purtroppo però, dato che cron gira in un suo piccolo ambiente isolato, non ha modo di reperire direttamente la variabile DBUS_SESSION_BUS_ADDRESS necessaria per "comunicare" con rhythmbox e visualizzabile digitando:
echo $DBUS_SESSION_BUS_ADDRESS
Come si può intuire, il contenuto di tale variabile cambierà ogni qual volta riavvierete, e sarebbe dunque inutile, nonchè noioso, inserirlo direttamente nel nostro comando :)
Per risolvere il "problema", come comando in cronjob utilizzeremo uno script in bash semplice semplice e sicuramente migliorabile, che posizioneremo all'interno della cartella /usr/local/bin/ e che chiameremo "ovviamente" sveglia :)
sudo gedit /usr/local/bin/sveglia
#!/bin/bash user=`whoami` pid=`pgrep -u $user gnome-panel` for dbusenv in $pid; do DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \ /proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'` DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS \ rhythmbox-client --play-uri=/percorso/canzone/sveglia.ogg|mp3 done exit 0
N.B Naturalmente, sostituite /percorso/canzone/sveglia.ogg|mp3 con il percorso assoluto della canzone che volete riprodurre, e ricordatevi di anteporre un \ (backslash) ad ogni eventuale spazio (ex. /media/STORAGE/MUSIC/CD/Coldplay/A\ Rush\ of\ Blood\ To\ The\ Head/Coldplay\ -\ Green\ Eyes.ogg).
Appoggiandoci quindi al processo gnome-panel (sempre attivo in ambiente Dekstop Gnome e abbastanza affidabile per essere parte integrante della nostra sveglia), permetteremo a cron di recuperare la variabile DBUS_SESSION_BUS_ADDRESS e di usarla per eseguire il nostro comando.
A questo punto, non ci rimane altro da fare che rendere eseguibile lo scriptino appena creato:
sudo chmod +x /usr/local/bin/sveglia
editare il nostro crontab:
crontab -e
ed inserire quanto segue:
15 7 * * 1-5 /usr/local/bin/sveglia # SVEGLIA
Una volta salvato il crontab per il proprio utente, se non ci sono errori, verrà mandato in output il seguente messaggio:
crontab: installing new crontab
e la nostra sveglia sarà finalmente pronta per darci il buongiorno ogni mattina e all'orario prestabilito :)
P.S. declino ogni repsonsabilità per eventuali ritardi ad appuntamenti importanti o sul posto di lavoro...quindi testate più volte lo script ed il suo fuzionamento in accoppiata con cron prima di fidarvi completamente di un computer ;)
Per concludere, vorrei segnalare gnome-schedule, un ottimo tool grafico per una gestione ancor più semplcie dei propri cronjobs in ambiente gnome. Se utilizzate Debian o Ubuntu, gnome-schedule è disponibile per tutte le release, rispettivamente nelle repository main e universe, ed installabile digitando motlo semplicemente:
sudo apt-get install gnome-schedule
E' tutto, scegliete la vostra canzone del momento, selezionate l'orario e buon risveglio...!!!
grazie
>>Supponendo di avere una qualsiasi distribuzione Linux installata (ovviamente sempre up & running)...
è necessario che il pc sia acceso...
fortunatamente posso non spegnerlo mai (solo riavvi) :)
l'avevo provato tempo fa exaile ma non mi aveva colpito particolarmente, quindi ero rimasto con Rhythmbox :)
mi hai fatto venire il dubbio che possa esistere un plugin anche per Rhythmbox eheheh -.-
beh, poco male, ho imparato un paio di cosette nuove...
p.s. se qualcuno conosce un plugin anche per Rhythmbox son tutto orecchie ^__^
ciaociao
io usando exaile ho usato il comando "exaile -n" che suona la prossima canzone in scaletta, cosi settando l'opzione "casuale", faccio suonare ogni mattina una canzone diversa presa da una playlist di canzoni ad-hoc per il risveglio..
- Applications Software (2)
- Debian (1)
- Devel (1)
- Distribuzioni Varie (2)
- Easy Tricks (5)
- Gnome Desktop (2)
- Guide Debian (8)
- Guide Debian Ubuntu (12)
- Guide Ubuntu (9)
- Linux Printer Drivers (1)
- Man Pages Linux (2)
- My Feeds (3)
- Off Topic (2)
- Ping at Home (1)
- Problem Solving (4)
- Server Side (2)
- Tricks Debian Ubuntu (5)
- Ubuntu (8)
- Upgrades (5)
- NFS - Condivisione file Debian Ubuntu
- Ubuntu Case Studies: storie di successo in azienda e nelle scuole
- La tentazione del lato oscuro (Google AdSense) [Ping@Home]
- Linux Man Pages On-Line
- Gestione Moduli e Virtual Hosts di Apache2 su Debian e Ubuntu
- Visualizzare struttura ad albero di una directory
- Cron + Rhythmbox + Scriptino = Sveglia
- Soluzione piccolo problema con mp32ogg
- Velocizzare la ricompilazione con ccache
- Trasformare Gedit in un editor avanzato
- People DebianClan e TuxFeed: pinguini italiani alla riscossa
- Abilitare supporto AGP driver NVIDIA
- Finalmente rilasciata la GPLv3
- Compiz Fusion + Debian Sid
- Estensione NoScript per Firefox
- Compiz Fusion + Ubuntu Feisty
- Disabilitare o modificare splash screen Gnome
- Personalizzare gnome con GNOME Color Chooser
- VOGLIO usare Ubuntu
- Cronologia comandi bash
- febbraio 2008 (1)
- gennaio 2008 (2)
- dicembre 2007 (1)
- novembre 2007 (2)
- ottobre 2007 (1)
- agosto 2007 (3)
- luglio 2007 (2)
- giugno 2007 (20)
- maggio 2007 (13)
- aprile 2007 (10)
- marzo 2007 (20)










