Configurando KDUMP no Red Hat 5
Visão geral
KEXEC é um mecamisno de fast boot que permite iniciar um kernel Linux a partir de um kernel já em execução sem passar pela BIOS.
KDUMP é um novo mecanismo de kernel crash dump, capturando o dump utilizando o kexec inicializando em um segundo kernel sempre que o sistema falha, inicializa com pouca memória e captura o dump image.
SSH timeout for connection idle
Recentimente percebi que em alguns servidores que eu estava logando quando uma conexão ssh ficava aberta por mais de 5 minutos sem que eu tomasse nenhuma ação, a mesma se encerrava automaticamente por inatividade.
Para solucionar este problema, encontrei duas opções:
1. Configuração realizada no servidor SSH
SSH Tunnel Proxy
O conceito é praticamento o mesmo do X11 Forward, com esta opcão do SSH direcionamos uma porta do servidor remoto para qualquer porta local.
Exemplo, para direcionar a porta 25 do servidor para a porta 3000 local mantendo a conexão por 60 segundos:
SSH: X11 Forwarding
Com esta opção no SSH podemos redicionar conexão ao X Window no servidor para o servidor X local.
Ao realizar a conexão no servidor X Remoto a conexão é direcionada por default ao DISPLAY :10
Para isto realizamos a seguinte configuração nos arquivos abaixo:
SSH sem senha
Primeiro precisamos gerar um par de chaves públicas/privadas para autenticar com chaves RSA2 ou DSA.
RSA:
ssh-keygen -t rsa
DSA:
ssh-keygen -t dsa
As chaves são gerados no $HOME do usuário que você esta utilizando.
Sendmail: My unqualified host name …
Geralmente encontramos no Sendmail o error log abaixo:
Nov 15 08:19:56 server sendmail[314]: [ID 702911 mail.crit] My unqualified host name (localhost) unknown; sleeping for retry Nov 15 08:19:56 server sendmail[315]: [ID 702911 mail.crit] My unqualified host name (localhost) unknown; sleeping for retry Nov 15 08:20:57 server sendmail[314]: [ID 702911 mail.alert] unable to qualify my owndomain name (localhost) -- using short name Nov 15 08:20:57 server sendmail[315]: [ID 702911 mail.alert] unable to qualify my owndomain name (localhost) -- using short name
Red Hat 5: Missing ext2online
No RHEL 5 a funcionalidade do comando ext2online foi migrada para o comando resize2fs.
Portanto, ainda podemos realizar o aumento dos file systems on-line, conforme abaixo:
resize2fs /dev/rootvg/tmplv
OBS.:
Porém, reduzir file system que encontra-se em uso apenas off-line.
Configurando Automount
Para este exemplo vou utilizar um file system exportado via NFS e outro via SAMBA.
Editamos o arquivo auto.master, para definir time out e onde os compartilhamentos serão montados.
No exemplo abaixo, todos os compartilhamentos configurados no arquivo auto.nfs serão montados em /mnt/shared e com um time out de 60 segundos.
/mnt/shared /etc/auto.nfs --timeout 60
/mnt/shared /etc/auto.smbfs --timeout 60
Feito isso editamamos o arquivo auto.nfs que contém todos os mapeamentos exportados via NFS.
/www -rw,soft,intr server:/exports/www
Depois editamamos o arquivo auto.smbfs que contém todos os mapeamentos exportados via SAMBA.
/SMB -fstype=smbfs,username=xxxx,password=xxxx ://server/shared
Finalizando basta realizar um start no daemon autofs.
service autofs start
Aumentando área de swap no Linux com LVM
Primeiro precisamos desabilitar a área de swap
# swapoff -v /dev/rootvg/swaplv
Agora aumentamos a nossa área de swap em 512M
# lvextend -L +512M /dev/rootvg/swaplv
É necessário formatar a nova área de swap
# mkswap /dev/rootvg/swaplv
Finalizando habilitamos a nova área de swap
# swapon -va /dev/rootvg/swaplv
Para verificar a nova área utilize:
# cat /proc/swaps
ou
# free
How to Find
Busca por nome de arquivos e/ou diretórios (pode-se realizar busca com expressões regulares)
- Case sensitive
# find / -name "*.sh" -print
# find / -name apache2 -print
# find / -name "[Bb]ind*" -print
- Case insensitve
# find / -iname "*lock*" -print
Busca com dois parâmetros (AND/OR)
- Arquivos .sh e .ksh
# find / \( -name \*.sh -a -name \*.ksh \) -print
- Arquivos .sh ou .ksh
# find / \( -name \*.sh -o -name \*.ksh \) -print
Busca por owner
- User ID
# find / -user www
- Group ID
# find / -group bin
Busca por tipo de permissões
- Octal
# find /usr/sbin/ -perm +0500
# find /usr/sbin/ -perm -0664
# find /usr/sbin/ -perm 0775
- Symbolic
# find /usr/sbin/ -perm +ug=rx
# find /usr/sbin/ -perm -u=rw
# find /usr/sbin/ -perm o=r
Busca apenas no diretório corrente
# find /usr -name "*.txt" -maxdepth 1 -print
Busca no diretório corrente e desce um subdiretório
# find /usr -name "*.txt" -maxdepth 2 -print
Busca apenas no file system corrente (existindo por exemplo um file system /usr/aap, este será excluído da busca)
# find /usr -xdev -name "*.txt" -print
Busca mantendo no diretório corrente (não é preciso utilizar -depth)
# find /usr -name "*.txt" -prune
Busca por tipo
- Somente arquivos
# find / -name apache2 -type f -print
- Somente diretórios
# find / -name apache2 -type d -print
- Somente links
# find / -name apache2 -type l -print
- Arquivos no home do usuário com 2 hard links
# find $HOME -type f -links 2
- Arquivos no home do usuário com mais de 1 hard link
# find $HOME -type f -links +1
Busca por tamanho de arquivo
- Arquivos maiores que 5M
# find / -size +5000 -print
- Arquivos menores que 5M
# find / -size -5000 -print
- Arquivos exatamente igual a 5M
# find / -size 5000 -print
Busca de arquivos por data de: acesso, criação e modificação
- Arquivos acessados com mais de 3 dias
# find /etc -atime +3 -print
- Arquivos acessados com menos de 3 dias
# find /etc -atime -3 -print
- Arquivos modificados com mais de 5 dias
# find /etc -mtime +5 -print
- Arquivos modificados com menos de 5 dias
# find /etc/ -mtime -5 -print
- Arquivos criados com mais de 10 dias
# find /var -ctime +10 -print
- Arquivos criados com menos de 10 dias
# find /var -ctime -10 -print
- Arquivos modificados exatamente há 7 dias
# find /etc -mtime 7 -print
- Arquivos acessados nas útimas 24 horas
# find /etc -atime 0 -print
Busca de arquivos e/ou diretórios com exceção (imprime tudo exceto parâmetro informado)
# find /usr ! -name "*lib*" -print
# find /usr -not -name "*lib*" -print
Busca com execução de comandos na saída
- Lista detalhe dos arquivos encontrados (equivalente a opção "ls -dils")
# find /var/log/ -name "*.log" -ls
- Excluir todos os arquivos no /tmp com mais de 3 dias
# find /tmp/ -ctime +3 -exec rm -rf {} \;
- Excluir todos arquivos no /tmp com extensão .lock sem confirmação
# find /tmp/ -name *.lock -exec rm -rf {} \;
- Exlcluir todos arquivos no /tmp com extensão .lock com confirmação
# find /tmp/ -name *.lock -ok rm -rf {} \;
- Excluir arquivos com nome core (-delete apenas para GNU find)
# find / -name "*core*" -type f -delete
- Compactar todos arquivos no /tmp com extensões .tmp e .bak
# find /tmp/ \( -name \*.tmp -o \*.bak \) -exec gzip {} \;
- Busca arquivos dentro do homedir com permissões 664 e altera para 775
# find $HOME -xdev type f -perm 664 -exec chmod 775 {} \;
Nota: Abaixo seguem alguns exemplos de expressões regulares e formatação do resultado da busca.
- Busca todos arquivos criados com menos de 5 dias, exceto arquivos que contenham "svn" no nome.
# find . -ctime -5 -not -regex '.*svn.*' -print
- Busca arquivos modificados a mais de uma semana e que tenham as extensões .csh ou .ksh
# find . -mtime +7 -regex '.*[ck]sh*'
- Formanto da saída da busca
# find . -printf "%TY%TW:%p\n"
# find . -printf '%TY-%Tm-%Td %TH:%TM:%TS %p\n'
# find . -printf '%p %a %m\n'
# find . -printf 'Name: %16f Size: %6s\n'
Importante: Descrição dos comandos acima.
%Ax - data do último acesso ao arquivo, formato da mesma definido em "x".
%Tx - data da última modificação do arquivo, formato da mesma definido em "x".d - dia do mês
D - data (dd/mm/aa)
h - mês (nome)
H - hora
m - mês (número)
M - minutos
S - segundos
T - hora (hh:mm:ss)
w - dia da semana
W - número da semana no ano
y - ano (2 digítos)
Y - ano (4 digítos)%a - data e hora do último acesso ao arquivo
%f - nome do arquivo (exclui PATH)
%m - permissões do arquivo (symbolic)
%p - nome do arquivo (inclui PATH)
%s - tamanho do arquivo (bytes)\n - quebra de linha
\t - tabulação horizontal
\v - tabulação vertical
OBS.: Neste artigo coloquei os arquivos que tenho utilizado diariamente, pois o comando find tem inúmeras possíbilidades, para explorá-las, basta dar uma lida no man. E lembrar também que todos os comandos poder ser mesclados, exemplos: busca por extensão de arquivo, permissão e mais de x dias acessados ou, busca por extensão x e y, tamanho e tipo de arquivo e etc...