Despertador em Shell
Dica publicada em Shell Script / Miscelânea
Despertador em Shell
Você não leu errado, vou te ensinar a criar um despertador salva-vidas em shell, mas antes disso preciso contar o que aconteceu.
Estava eu em casa, tranquilo e sozinho quando de repente me vem a cabeça algo! (Amanhã começa meu curso de PHP) e preciso estar as 6 horas da manhã de pé.
Beleza, uma pessoa normal iria pegar o celular e programar o despertador, o problema que eu sou um pouco antiquado e não utilizo celular, É SÉRIO!
Inicialmente eu tive uma ideia de pedir a um vizinho para me chamar a hora que ele fosse para o trabalho, isso seria às 7 da manhã, o problema que ele falou "Não estou em casa, estou na namorada".
A coisa complicou, ai surgiu a "ideia" vamos programar um despertador em shell.
E aqui estou eu... vou te ensinar a criar esse despertador super avançado (kkkk) que irá te salvar na hora que você mais precisa.
O primeiro passo a se fazer é baixar o Beep, se você usa o Debian ou derivados rode:
# apt install beep
Feito isso vamos agora à parte boa o script.
O que acabamos de fazer? Utilizamos o comando Beep com a opção -f ALTURA, que por sinal é o mais alto. E o -l TEMPO. Podemos dar uma mexida no script e adicionar um sleep de 600, configurando assim nossa soneca em 10 minutos.
O tamanho do script dependerá de você, é claro.
Eu utilizo no minimo 4x mais linhas, pois é... sono pesado é fogo.
Bom, temos nosso despertador tudo certinho, testamos e está tudo ok, mas falta algumas coisinhas que deverão ser feitas ainda.
Vamos começar, deixando o comando global, vamos jogar em /usr/bin o nosso script.
# cp despertador /usr/bin/
Ótimo, está funcionando tudo certo não é? mas como vamos agendar o despertador para despertar as, hmmm vamos ver... 8 horas da manhã? a resposta é simples... Crontab simples e fácil.
Vamos rodar o comando, preferencialmente no usuário comum, lembrando que cada usuário (comum e root) tem um crontab diferente, se o script necessitar de root, utilize o crontab como root.
crontab -e
e cole lá dentro:
Então basicamente pedimos ao crontab despertar as 6:15 todos os dias (se o PC estiver ligado é claro).
Salve o arquivo e rode o comando (com o usuário que criou o cron) crontab -l, para listar:
crontab - l
Como visto o despertador foi agendado corretamente!
Para maiores informações utilize o MAN.
É isso, abraços a todos.
Estava eu em casa, tranquilo e sozinho quando de repente me vem a cabeça algo! (Amanhã começa meu curso de PHP) e preciso estar as 6 horas da manhã de pé.
Beleza, uma pessoa normal iria pegar o celular e programar o despertador, o problema que eu sou um pouco antiquado e não utilizo celular, É SÉRIO!
Inicialmente eu tive uma ideia de pedir a um vizinho para me chamar a hora que ele fosse para o trabalho, isso seria às 7 da manhã, o problema que ele falou "Não estou em casa, estou na namorada".
A coisa complicou, ai surgiu a "ideia" vamos programar um despertador em shell.
E aqui estou eu... vou te ensinar a criar esse despertador super avançado (kkkk) que irá te salvar na hora que você mais precisa.
O primeiro passo a se fazer é baixar o Beep, se você usa o Debian ou derivados rode:
# apt install beep
Feito isso vamos agora à parte boa o script.
#!/bin/bash #Script despertador #Sem função soneca!. #Escrito por Slackjeff beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 #Fim do script
O que acabamos de fazer? Utilizamos o comando Beep com a opção -f ALTURA, que por sinal é o mais alto. E o -l TEMPO. Podemos dar uma mexida no script e adicionar um sleep de 600, configurando assim nossa soneca em 10 minutos.
#!/bin/bash #Script despertador #Com função soneca, 10 minutos. #Escrito por Slackjeff beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 600 ; #Função soneca, 600 equivale a 10 minutos. beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 sleep 1.5 ; beep -f 2000 -l 200 beep -f 2000 -l 100 beep -f 2000 -l 200 beep -f 2000 -l 100 #Fim do script
O tamanho do script dependerá de você, é claro.
Eu utilizo no minimo 4x mais linhas, pois é... sono pesado é fogo.
Bom, temos nosso despertador tudo certinho, testamos e está tudo ok, mas falta algumas coisinhas que deverão ser feitas ainda.
Vamos começar, deixando o comando global, vamos jogar em /usr/bin o nosso script.
# cp despertador /usr/bin/
Ótimo, está funcionando tudo certo não é? mas como vamos agendar o despertador para despertar as, hmmm vamos ver... 8 horas da manhã? a resposta é simples... Crontab simples e fácil.
Vamos rodar o comando, preferencialmente no usuário comum, lembrando que cada usuário (comum e root) tem um crontab diferente, se o script necessitar de root, utilize o crontab como root.
crontab -e
e cole lá dentro:
#Despertador todos os dias as 06:15 da manha
15 6 * * * /usr/bin/despertador
15 6 * * * /usr/bin/despertador
Então basicamente pedimos ao crontab despertar as 6:15 todos os dias (se o PC estiver ligado é claro).
Salve o arquivo e rode o comando (com o usuário que criou o cron) crontab -l, para listar:
crontab - l
Como visto o despertador foi agendado corretamente!
Para maiores informações utilize o MAN.
É isso, abraços a todos.
_______________________________
Kernel: 4.12.4 (x86_64 LowLatency)
CPU: i5-2410M 2.9GHz RAM: 7811MiB