Dicas de Linux e Unix – Parte 2
Faz tempo que eu não postava nada, não?!
Bem, para não perder o ritmo, seguem mais algumas dicas de unix/linux interessantes para o dia-a-dia do DBA:
DICAS GERAIS
- Visualisar as instâncias que estão no ar, com a data de startup
ps -ef | grep pmon
- Exibir valores de variáveis de ambiente: echo $<VARIÁVEL>. Exemplo:
echo $ORACLE_HOME
echo $ORACLE_SID
- Listar o conteúdo de dirétorios por ordem criação/alteração do arquivo:
ls -lt -c
Exemplo: para verificar o último arquivo de log de um diretório:
ls -lt -c *.log
- Renomear arquivos: podemos usar o comando mv
mv <nome> <novo_nome>
Exemplo (modificando o nome do alert.log):
mv alert.log alert.log.bkp
- Duplicar um arquivo: pode ser utilizado o comando cp
cp <arquivo> <nome_copia>
Exemplo(fazendo uma cópia do alert.log com o nome alert.log.bkp):
cp alert.log alert.log.bkp
- Enviar o resultado de um comando para um arquivo de texto
- envia a saída de algum comando para arquivo, fazendo append
- faz flush no arquivo de destino.
Exemplo:
date >> teste.txt
envia o valor do comando date para o arquivo teste.txt
CRONTAB
É um programa do Unix que edita um arquivo com todos os comandos a serem executados automaticamente pela cron.
Rotinas em gerais como backups e analyses podem ser colocados para execução pela cron. Em geral, são agendados scripts interpretáveis pelo shell, chamados de shell scripts.
Os scripts do Bourn Shell tem extensão .sh (muio utilizado em distribuiões linux) e os do Korn shell, .ksh (usado no AIX).
- Para verificar as tarefas agendadas para o usuário:
crontab -l (list)
- Para editar o conteúdo da crontab
crontab -e
É importante notar a ordem de escrita na crontab:
mm hh dd MM ss script
onde
mm = minuto(0-59)
hh = hora(0-23)
dd = dia(1-31)
MM = mes(1-12)
ss = dia_da_semana(0-6) — 0 é domingo, 1 é segunda, e assim por diante.
script = comando a ser executado.
- # – comentários de linha
Exemplo:
# ABRE O BANCO COMO READ ONLY
15 07 * * * /oracle/scripts/alter_read_only.sh
Os campos mm, hh, dd, MM, ss podem ser substituídos por *, que significa TODOS. Por exemplo, se no campo dd houver *, significa que o script será rodado todos os dias.
Neste exemplo, todos os dias, às 07:15 h, será rodado o script alter_read_only.sh, que está localizado no diretório /oracle/scripts/ .
A linha iniciada por # é apenas um comentário, explicando a entrada na crontab.
Outros exemplos:
15 10,12,16,18,22 * * * /bin/validate.ksh
Nesta entrada, o script validate.ksh rodará todos os dias às 10:15, 12:15, 16:15, 18:15 e 22:15 horas.
00-59/5 * * * * /bin/oracle/scripts/cold_backup.sh >> /bin/oracle/scripts/cold_backup.log
Neste exemplo, o script cold_backup rodará todos os dias de 5 em 5 minutos (note a “/”) e enviará o resultado para o arquivo cold_backup.log .
- Backup da crontab
Por ser um arquivo editável essencial para a vida do servidor, é importante fazer backups de tempos em tempos dele. Para isso, você pode copiá-lo para um local seguro.
Sua localização é: /var/spool/cron/crontabs
- Para apagar a crontab do usuário:
crontab -d (delete)
Bem, ainda não sou uma “super sayajin” do linux, mas estes comandos me ajudam muito! Espero que sejam úteis para vocês também!
Até mais!