Despertador em Shell

Publicado por Jefferson Rocha em 06/08/2017

[ Hits: 2.981 ]

Blog: https://slackjeff.com.br

 


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.

#!/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

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.

Outras dicas deste autor

Qual é a diferença entre Unix e Linux

Aprenda a utilizar o cron [Vídeo]

Webapps - o futuro começa aqui

Boot mais rápido no Slackware

Curso Grátis de Dialog [vídeo]

Leitura recomendada

Usando comandos *nix portados para Windows

Como usar o jSMS direto do pen drive

Comentando várias linhas em scripts bash

Acompanhando o (bash) shell script - debug

Bash: Não use if

  

Comentários
[1] Comentário enviado por brandox em 09/08/2017 - 18:27h

Achei bastante interessante, excelente artigo!

_______________________________
Kernel: 4.12.4 (x86_64 LowLatency)
CPU: i5-2410M 2.9GHz RAM: 7811MiB

[2] Comentário enviado por Cizordj em 19/09/2017 - 22:37h

Pra quê celular isso é bem mais prático kk, belo artigo



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts