
Baseado numa história real
Inglês | 简体中文
Baseado em uma história real:
xxx: OK, então, nosso engenheiro de build saiu para outra empresa. O cara estava literalmente vivendo dentro do terminal. Sabe, aquele tipo de cara que ama Vim, cria diagramas em Dot e escreve posts de wiki em Markdown... Se alguma coisa - qualquer coisa - requer mais de 90 segundos do tempo dele, ele escreve um script para automatizar isso.
xxx: Então estamos sentados aqui, olhando o, hm, "legado" dele
xxx: Você vai amar isso
xxx:
smack-my-bitch-up.sh- envia uma mensagem de texto "tarde no trabalho" para a esposa dele (aparentemente). Escolhe automaticamente razões de um array de strings, aleatoriamente. Executa dentro de um cron-job. O job dispara se houver sessões SSH ativas no servidor após as 21h com o login dele.
xxx:
kumar-asshole.sh- escaneia a caixa de entrada por e-mails de "Kumar" (um DBA dos nossos clientes). Procura por palavras-chave como "help", "trouble", "sorry" etc. Se palavras-chave são encontradas - o script faz SSH no servidor do cliente e reverte o banco de dados de staging para o último backup. Então envia uma resposta "no worries mate, be careful next time".
xxx:
hangover.sh- outro cron-job que é configurado para datas específicas. Envia e-mails automatizados como "não está se sentindo bem/vai trabalhar de casa" etc. Adiciona uma "razão" aleatória de outro array predefinido de strings. Dispara se não houver sessões interativas no servidor às 8:45.
xxx: (e o oscar vai para)
fucking-coffee.sh- este espera exatamente 17 segundos (!), então abre uma sessão telnet para nossa máquina de café (não tínhamos ideia de que a máquina de café está na rede, roda linux e tem um socket TCP ativo) e envia algo comosys brew. Acontece que essa coisa começa a preparar um latte médio meio-caf e espera mais 24 (!) segundos antes de despejá-lo na xícara. O timing é exatamente o tempo que leva para andar até a máquina da mesa do cara.
xxx: puta merda, vou guardar esses
Original: http://bash.im/quote/436725 (em Russo) (Archive.org link) Pull requests com outras implementações (Python, Perl, Shell, etc) são bem-vindos.
Você precisa destas variáveis de ambiente:
# used in `smack-my-bitch-up` and `hangover` scripts
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
# used in `kumar_asshole` script
[email protected]
GMAIL_PASSWORD=password
Para scripts Ruby você precisa instalar gems:
gem install dotenv twilio-ruby gmail
# Runs `smack-my-bitch-up.sh` monday to friday at 9:20 pm.
20 21 * * 1-5 /path/to/scripts/smack-my-bitch-up.sh >> /path/to/smack-my-bitch-up.log 2>&1
# Runs `hangover.sh` monday to friday at 8:45 am.
45 8 * * 1-5 /path/to/scripts/hangover.sh >> /path/to/hangover.log 2>&1
# Runs `kumar-asshole.sh` every 10 minutes.
*/10 * * * * /path/to/scripts/kumar-asshole.sh
# Runs `fucking-coffee.sh` hourly from 9am to 6pm on weekdays.
0 9-18 * * 1-5 /path/to/scripts/fucking-coffee.sh
Código é lançado sob a licença WTFPL.