quinta-feira, 20 de janeiro de 2011

zipar e remover diretorios por data

for dir in `ls | grep "2010-11-" | grep -v "\.gz"` ; do nice -n 19 tar -Ppzcvf $dir.tar.gz $dir ; sleep 1 ; echo "rm -rfv $dir" ; nice -n 19 rm -rfv $dir ; done

baixar / subir informix

# Para baixar o informix:

cdr stop

onmode -yulck

----------------------------------------------------

# Para subir informix:

oninit -v

Aparecerá:

verbose output compete mode 5

----------------------------------------------------

# Para confirmar se subiu corretamente, digite:

onstat -

status informix

online

----------------------------------------------------

Para obter informações do informix:

onstat -g osi

Apresentando a versão do linux

Percebemos que alguns casos, não sabemos exatamente qual a versão do Linux que está instalada, pois por alguma motivo o arquivo /etc/issue ou mesmo o /etc/redhat-release foi alterado manualmente.

Com o comando abaixo, podemos verificar várias informações sobre a versão que está instalada, confirmando suspeitas ou mesmo gerando uma certeza de versão.

lsb_release –a

Informaçoes:

LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Release: 5.5
Codename: Tikanga

Links Simbólicos e Físicos

Segue uma dica, sobre como verificar se tem algum link simbólico ou hard-link, apontando para o arquivo em questão.

Listagem 11. Localizando links físicos para o mesmo arquivo

ian@attic4:~$ find lpi104-6 -samefile lpi104-6/file1
lpi104-6/subdir/file3sub
lpi104-6/file3
lpi104-6/file1
ian@attic4:~$ ls -i lpi104-6/file1
1680103 lpi104-6/file1
ian@attic4:~$ find lpi104-6 -inum 1680103
lpi104-6/subdir/file3sub
lpi104-6/file3
lpi104-6/file1
Para verificar quais arquivos são vinculados simbolicamente a um determinado arquivo, você poderá usar o comando find e a opção -lname com um nome de arquivo, como ilustrado na Listagem 12. Os links podem usar um caminho relativo ou absoluto, portanto, é preciso usar um asterisco à esquerda no nome para localizar todas as correspondências.

Listagem 12. Localizando arquivos simbólicos para um arquivo ou diretório
ian@attic4:~$ find lpi104-6 research/lpi104-6 -lname "*file1"
lpi104-6/file6
lpi104-6/file5
lpi104-6/file4
research/lpi104-6/file4

Calculando quantidade de memória necessária MySQL - Linux

Objetivo Calcular quantidade de memória necessária para o MySQL no Linux
Pré requisitos Acesso root a maquina.


Segue abaixo o link para calcular o número de memória necessária para utilização do MySQL . O cálculo é baseado nas seguintes informações:

mem total mysql = key_buffer + max_connections * (join_buffer + record_buffer + sort_buffer + thread_stack + tmp_table_size)

Note que o tamanho total de memória depende diretamente do multiplicador de conexões abertas (max_connections)

LINK : http://www.omh.cc/mycnf/

Outras informações:
my.cnf de exemplo, copie o cole-o no link acima:

[client]
port = 3306

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
port = 3306
basedir = /usr
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
skip-name-resolve
key_buffer = 25M
max_allowed_packet = 50M
thread_stack = 128K
thread_cache_size = 8
max_connections = 120
query_cache_limit = 1M
query_cache_size = 20M

[mysqldump]
quick
quote-names
max_allowed_packet = 50M

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

O que fazer quando receber a mensagem: "/bin/rm: Argument_list_too_long" ?

Para quem está tentando limpar um diretório e recebe este erro:

# rm -f *
-bash: /bin/rm: Argument list too long

Há tres modos de resolver isto, um é usando o for na linha de comando :

for i in *; do rm -f $i; done


Ou usando o famoso canivete suiço do mundo Unix, o find :

find . -name '*' -print0 | xargs -0 rm


Outra solução, que achei mais inteligente é feita utilizando o xargs:

$ ls | xargs -n10 -i rm {}

Instalação e configuração de um servidor de NTP (stratum 1)

Objetivo Instalar e configurar um servidor de NTP (stratum 1)
Pré requisitos Acesso root a maquina.

Há vários serviços de NTP espalhados pelo mundo, e que são sincronizados através de uma reação química, e para cada estimulo que esta reação sofre, é decrementado 1 milésimo de segundo, para a primeira máquina que recebe estes dados é dado o nome de STRATUM 1, para a segunda máquina STRATUM 2, e assim por diante.


A Drogaraia, quer que uma máquina deles não sincronize com nenhum STRATUM, eles mesmos gostariam de ter este controle.

Pois bem, segue a forma de se criar um servidor de NTP na rede local (STRATUM 1).

1. Abra o arquivo /etc/ntp.conf e inclua as linhas:

server 127.127.1.1
fudge 127.127.1.1 stratum 10

2. Abra o arquivo /etc/rc.config.d/netdaemons, e altere as linhas:

export NTPDATE_SERVER=
export XNTPD=

Para:

export NTPDATE_SERVER=127.127.1.1
export XNTPD=1

3. Inicie o serviço de NTP

# /sbin/init.d/xntpd start

4. Visualizando as informações do NTP

# ntpq -p

5. Sincronizando o host1, com o servidor de NTP

# ntpdate

Migrar usuário de HPUX para Linux

Objetivo: Migrar usuário de HPUX para Linux

Informação: As senhas no Linux são salvas em /etc/shadow e no HPUX elas ficam em /etc/passwd.

Uma maneira simples de migrar os usuários do HPUX para Linux é:

1º - Copia-se os usuários e grupos do HPUX

cat /etc/passwd
(selecione e copie todas as linhas referentes aos usuários que deseja levar para o Linux)

cat /etc/group
(selecione e copie todos os grupos “não padrão” para levar para o Linux)

2º - Adicione estas informações no Linux
Obs.: faça um backup do /etc/shadow e do /etc/passwd por segurança - ( cp /etc/passwd /etc/passwd.BKP e cp /etc/shadow /etc/shadow.BKP)

Utilize o comando vipw (proporciona acesso ao passwd não permitindo a escrita ao mesmo tempo por mais de um usuário ) – Nunca use o “vi” para editar o passwd é bem arriscado.

vipw (com ele aberto, insira os usuário copiados do passwd do HPUX e saia salvando. Quando perguntar se deseja editar o shadow, coloque não (n) )

3º - Adicione os grupos copiados do HPUX ao /etc/group

# vi /etc/group

4º - Utilize o utilitário “pwconv” para converter o formato de senhas no passwd para o formato do Linux com as senhas no shadow

# pwconv

Veja com um cat /etc/shadow que os usuários apareceram com a senha criptografada normalmente.


5º - Ajustar o “home” e “Shell” dos usuários migrados

Crie um arquivo contendo as informações que você copiou inicialmente do HPUX (consideraremos aqui no exemplo o arquivo chamado arquivo-users-hpux.txt)

# vi arquivo-users-hpux.txt

Criando o home
for i in $(cat arquivo-users-hpux.txt | cut –d: -f1 ); do mkdir /home/$i; chown –R $i:users /home/$i; chmod –R 770 /home/$i; done

Ajustando os shells (padrão linux = /bin/bash):
for I in $( cat arquivo-users-hpux.txt | cut –d: -f1); do usermod –s “/bin/bash” $i; done

Vale lembrar que se deve checar também se os usuários estão em seus respectivos grupos

Checando os IDs dos usuários:
for i in $( cat arquivo-users-hpux.txt | cut –d: -f1); do id $i; done

Manutenção de volumes HPUX

Objetivo Manutenção de volumes no HPUX.
Pré requisitos Acesso root a maquina.

Para verificar as LUNS que o SO enxerga com seus respectivos WWN e device files (/dev/dsk/cXtYdZ)
# powermt display dev=all |more

Para verificar as controladoras de fc no HPUX
# ioscan –fnC fc

Para verificar os WWN das controladoras do servidor
# fcmsutil /dev/fcXX
(este especial file vira do resultado do comando ioscan –fnC fc)

Para verificar espaço livre no VG
#vgdisplay –v nome do vg

Para adicionar um disco no VG (Nota :se o disco a ser acrescentado for maior do que o primeiro disco que criou o VG, o novo disco terá somente o tamanho do primeiro disco do VG disponível para ser utilizado. Daí o porque deve se analisar o tamanho da LUN a ser criada. E melhor que seja do tamanho dos discos que fazem parte do VG em questão)
# vgextend /dev/vgXX /dev/dsk/cXdYtZ

Para criar um lvol com distribute (formatação física)
# lvcreate –L tamanho em MB –D y –s g –n nome do lv /dev/vgXX

Para criar um lvol sem distribute (formatação física)
# lvcreate –L tamanho em MB –n nome do lv /dev/vgXX

Na CRIACAO/FORMATACAO de um file system (formatação lógica)
# newfs –F vxfs –o large files /dev/rvgXX/lv_XX
(aqui tem o r de caracter mesmo)

Na EXTENCAO de um file system já existente, SEM a perda dos dados (extensão/formatação física)
# lvextend –L novo tamanho em MB /dev/vgXX/lv_XX

Na EXTENÇÃO de um file system já existente, SEM a perda dos dados (extensão/formatação lógica)
# extendfs –F vxfs /dev/vgXX/lv_XX

Identificando LUN´s do Storage EVA, no HPUX (2 formas)

Para identificarmos as LUN´s de um EVA no HPUX, segue um comando simples porém eficaz.

Exemplo: Tentando identificar o WWID da LUN que está o disco 272.
# scsimgr get_attr -D /dev/rdisk/disk272 -a wwid

Serão então apresentadas as seguintes informações:
SCSI ATTRIBUTES FOR LUN : /dev/rdisk/disk272

name = wwid
current = 0x600508b400103b8e00010000011c0000
default =
saved =

Reparem que o ítem “current”, é o WWID da LUN do disco 272.

Também no CD do HP StorageWorks Storage System Scripting Utility CD (SSSU) , desde a versão 8 é distribuído um script chamado evainfo.

Executando o script em questão, são apresentadas informações mais completas sobre os discos.
# evainfo -aP

Resultado:
Devicefile Array WWNN Capacity Controller/Port/Mode
/dev/rdisk/disk20 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-003A-0000 204800MB Ctl-A/FP-2/Optimized
/dev/rdisk/disk21 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-0042-0000 204800MB Ctl-A/FP-1/Optimized
/dev/rdisk/disk22 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-004A-0000 20480MB Ctl-A/FP-1/Optimized
/dev/rdisk/disk23 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-004E-0000 71680MB Ctl-A/FP-2/Optimized
/dev/rdisk/disk24 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-0052-0000 10240MB Ctl-A/FP-1/Optimized
/dev/rdisk/disk25 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-0056-0000 10240MB Ctl-A/FP-1/Optimized
/dev/rdisk/disk26 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-005A-0000 20480MB Ctl-A/FP-1/Optimized
/dev/rdisk/disk27 5001-4380-04C7-2D90 6005-08B4-000F-3EED-0000-5000-005E-0000 245760MB Ctl-A/FP-1/Optimized

Obtendo serial HPUX

Obtendo o serial no HPUX

Execute o seguinte comando na console:

echo "sel dev 1;info;wait;il"cstm grep "System Serial Number"

ou

echo "sel dev 1;info;wait;il"cstm


Algumas das saídas do comando são

System Information for (atenas)
HPUX Model Number......: rp4440
HPUX Model String......: 9000/800/rp4440
Original Product Number: A9950A
Current Product Number.: A9950A
System Serial Number...: USE4615KPS
Hversion...............: 0x8940
Sversion...............: 0x491
Software Capabilities..: 0x100000f0