Autor: Hudson Santos

Sistemas em diferentes fuso horários – timezone TZ

Dica rápida para quem administra servidores que hospedam sistemas que devem ser acessados por diferentes fuso horários.

Imagine que você hospeda um sistema qualquer que grava a hora em que um pedido foi cadastrado na base de dados. Seus clientes gostam do sistema e tudo funciona muito bem até que um dia você tem clientes que estão em Manaus/AM por exemplo, onde o fuso horário é diferente.

E agora? Como é que o mesmo sistema vai entender isso?

Read More

Identificando novos devices SCSI no Linux

Essa dica é pra quem trabalha com STORAGE em Linux por exemplo, e precisa identificar devices de disco mapeados via fibra (esse foi o meu caso de uso).

Fazendo algumas alterações em arquivos “chave” do sistema de arquivos /proc, o sistema Linux é ensinado a fazer um “flush” nos devices e mapeá-los novamente.

Segue pequeno script, que pode ser nomeado como scsi-scan.sh:

Read More

Agendando backups temporários para serem removidos automaticamente com o at

Aproveitando informações postadas anteriormente no POST “Como fazer backup de arquivos com timestamp“, onde é explicado como fazer backup com timestamp em formato nome_do_arquivo_desejado.extensão_AAAAMMDD_HHMM, fica aqui outra dica de como programar para que essas cópias de segurança sejam automaticamente removidas após um determinado período de tempo.

Essa dica é útil para Administradores de grande quantidade de Servidores Linux, que, devido ao grande número de pequenos backups em disco para variados serviços de diferentes servidores em diferentes datacenters, eventualmente podem esquecer se é necessário manter um determinado backup. 😉 Isso acontece bastante comigo.

Read More

Limpando cache de disco/memória no Linux

Quem nunca se confundiu com o output do comando “free -m” tentando monitorar a utilização de memória RAM no Linux ao verificar a quantidade de memória informada como “cached”?

Essa quantidade de memória indicada como “cached” está sempre sendo utilizada pelo sistema como “cache rápido” para posterior escrita em disco. Diga-se de passagem, “cache” é um termo inglês que significa “esconderijo”.

Existe no Linux uma forma simples de limpar esse cache, fazendo com que tudo que está em cache de memória RAM para ser gravado em disco, vá pra disco de uma vez. Isso torna a memória livre novamente. Segue abaixo sequência de comandos para você entender o que acontece:

Read More

Script EXPECT para acesso SSH automático

Para acessar determinadas máquinas Linux, Administratores em geral usam o protocolo SSH. Isso fornece controle total da máquina remotamente, via linha de comando.

Este POST aborda uma maneira automática para que o Administrador não precise interagir com o SSH para digitar a senha da máquina linux remota que está querendo acessar. Logicamente, a senha precisa ser informada de alguma otura forma (neste caso via parâmetro/argumento), pois quem vai interagir com o SSH ao invés do ser humano é o EXPECT.

Read More

Como fazer backup de arquivos com timestamp

Casualmente na vida de um administrador de Sistemas/Servidores é necessario fazer rápidos backups de arquivos, nas mais diferentes situações:

  • Backup do arquivo de configuração de serviço crítico, antes de alterar um parâmetro importante (pra poder voltar atrás na configuração);
  • Backup do arquivo de log de um serviço, no momento de um problema, que geralmente é de madrugada em ambientes 24×7 (para análise no dia posterior);
  • Backup de diretório de sistema antes de aplicar um ‘patch’ importante (pra poder voltar na versão anterior);

    Read More

Simples interpretador de comandos feito em shellscript

Em determinados tipos de aplicativo shellscript, é necessário utilizar recursos como MENUs, PARÂMETROS, ou até mesmo interpretador de comandos interativo. Principalmente quando falamos de tarefas que não podem ser automatizadas, por exemplo: um monitoramento de replicação de banco de dados que eventualmente precisa da interação de um colaborador na função de “operador/monitor”.

Neste POST, apresenta-se como fazer um interpretador de comandos internos para um script:

Segue código de 26 linhas:

Read More

Como consultar se uma porta está aberta ou fechada remotamente

Existem diversas formas de consultar se uma porta está aberta ou fechada em um determinado host da rede (remotamente).
Uns preferem abrir uma conexão normal pelo programa padrão (um navegador se a porta for 80, um cliente de e-mail se a porta for 143, 25 ou 110), outros preferem abrir um “telnet host porta” e há ainda aqueles que usam programas exploradores de rede e port scanners como o “nmap“.

Neste post, vou explicar como usar o “netcat” (binario nc) para explorar determinada porta em um host de sua rede. Ainda teremos um exemplo de combinação de códigos em shellscript para informar a você se a porta está aberta ou fechada.

Para entender o uso do netcat para este fim, imaginemos que em minha máquina local tenho o serviço OpenSSH aguardando conexões na porta 22, mas não tenho nenhum serviço aguardando conexões na porta 23. Ou seja:

Read More

Criando arquivos temporários durante a execução do seu programa

Em determinados momentos da programação, pode ser necessário criar algum arquivo temporário durante a execução do seu shellscript. Este arquivo pode ser para controle de execução, para processamento interno ou até mesmo para trocar informações com outros programas. Logicamente que, como o acesso à disco é consideravelmente LENTO em comparação com acesso à memória RAM, o recurso de criação de um arquivo temporário em disco deve ser utilizado sempre que não houver alternativa possível utilizando memória (variáveis, vetores, etc).

Read More