Essa é para quem quer acordar de manhã com um alarme de sua escolha! Esta técnica não é nada nova, utilizo faz alguns vários anos, mas se tornou bastante importante ultimamente devido ao meu incrível feito de desligar o alarme do celular automaticamente sem nem acordar.
O comando at no Linux faz o que chamamos de agendamento de tarefas. Apesar de que temos o crontab que faz isso muito bem, o at serve para coisas bem imediatas. Enquanto no crontab você programa as tarefas para serem executadas em um certo período, com o at você procura para algo ser executado uma vez e pronto.
O que vamos fazer aqui é fazer o at tocar uma música de nossa escolha em um certo horário.
Antes de mais nada, você vai precisar verificar se o daemon atd está sendo executado, ele é necessário para verificar o que está agendado e executar na hora certa. A grande maioria das distribuições Linux já vem com ele habilitado por padrão, mas não custa verificar:
$ ps ax | grep atd 2856 ? Ss 0:00 /usr/sbin/atd
Ok, agora que ele está rodando, precisamos de um tocador de sons. Utilize o mpg321 para tocar .ogg, o ogg123 para tocar .ogg, ou o comando play (do pacote sox) para tocar .wav.
Agora vamos ao que interessa! Eu tenho aqui uma música do James Bond (é, hoje decidi acordar um espião) e vou agendá-la para tocar as 06:30, pois tenho que ir para a faculdade:
$ cd /home/eitch/musica/jamesbond $ at 06:30 warning: commands will be executed using /bin/sh at> mpg321 theme.mp3 at> (APERTO CTRL+D) job 8 at Fri Sep 19 06:30:00 2008
Pronto, quando chegar às 06:30 da manhã, o at vai executar o comando “mpg321 theme.mp3”, no diretório /home/eitch/musica/jamesbond. Não esqueça de aumentar o volume do som para que você ouça a música à todo vapor! Se você tiver problemas em acordar, além de deixar o volume alto, trave também seu sistema, ou quem sabe desconecte o teclado e/ou mouse antes de dormir.
Para listar o que foi agendado, utilize o comando atq (ou at -l):
$ atq
8 Fri Sep 19 06:30:00 2008 a hugo
Repare que o número que vem primeiro na linha significa o número único da tarefa. Se você agendar mais coisas, cada ação vai ter seu número correspondente. Se por acaso eu mudei de idéia quanto a música, posso remover esta tarefa com o comando atrm, utilizando o número de identificação:
$ atrm 8
Bem, é isso! Agora deixe-me ver, será que eu acordo um espião com a música do James Bond ou eu acordo pirata com músicas do Running Wild…