Archive for August, 2007

Published by carla on 30 Aug 2007

Linux - Como identificar o processo que está utilizando uma porta

Em linux, com a opção p do comando netstat podemos identificar qual o processo está utilizando uma determinada porta:

[root@foo~]# netstat -nap |grep 9101
tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 4266/nsrexecd

No exemplo acima, vemos que o processo de PID 4266 chamado nsrexecd está utilizando a porta 9101.

Com o comando ps, vemos mais detalhes do processo:

[root@foo ~]# ps -ef |grep 4266
root 4266 1 0 Aug29 ? 00:00:00 /usr/sbin/nsrexecd
root 9503 9427 0 10:25 pts/2 00:00:00 grep 4266

O processo nsrexecd pertence ao software de backup Networker (mais conhecido como Legato).

Verificando o status do Networker:

[root@foo init.d]# /etc/init.d/networker status
+–o nsrexecd (4266)

Se paralizarmos o Networker, a porta será liberada:

[root@foo init.d]# /etc/init.d/networker stop

[root@foo init.d]# /etc/init.d/networker status
nsr_shutdown: There are currently no running NetWorker processes.

[root@foo init.d]# netstat -nap |grep 9101
[root@foo init.d]#

Published by carla on 24 Aug 2007

AIX - Espelhamento do rootvg

O AIX permite que se faça o espelhamento de um VG (volume group) pelo sistema operacional. O VG que contém o sistema operacional é chamado de rootvg. O espelhamento do rootvg é importante para garantir a disponibilidade do sistema operacional oferecendo segurança dos dados.

Situações onde pode-se quere fazer o espelhamento do rootvg são, por exemplo, novas instalações ou após a troca de um disco com problema.

Seguem abaixo os passos para fazer o espelhamento do rootvg em sistemas AIX.

1 - Verificar os discos

# lspv
hdisk0 0000699fde553fc9 rootvg active
hdisk1 0000699f2f5a53d1 None

2- Incluir o novo disco no rootvg

# extendvg rootvg hdisk1

3 - Espelhar o rootvg

# mirrorvg rootvg
0516-1124 mirrorvg: Quorum requirement turned off, reboot system for this to take effect for rootvg.
0516-1126 mirrorvg: rootvg successfully mirrored, user should perform
bosboot of system to initialize boot records. Then, user must modify bootlist to include: hdisk1 hdisk0.

4 - Sincronizzar as cópias

# syncvg -v rootvg

OBS: Este passo é importantíssimo para garantir a integridade dos dados. Caso não seja executado, o sistema pode ser comprometido.

5 - Escrever a área de boot nos dois discos pertencentes ao rootvg:

# bosboot -ad /dev/hdisk1
bosboot: Boot image is 19173 512 byte blocks.

# bosboot -ad /dev/hdisk0
bosboot: Boot image is 19173 512 byte blocks.

6 - Acertar a bootlist(1)

6.1- verificar a bootlist:

# bootlist -m normal -o
hdisk0

6.2 - Configurar a bootlist:

# bootlist -m normal hdisk0 hdisk1

6.3 - Verificar a nova bootlist:

# bootlist -m normal -o
hdisk0
hdisk1

(1) bootlist: lista de boot do sistema operacional. Nela configuramos os devices onde o sistema buscará pelo boot durante a inicialização. Devices como CD (cd0) e fita (rmt0) são comunmente adicionados também.

Referência:

Para saber mais sobre LVM em AIX:

AIX Logical Volume Manager from A to Z: Introduction and Concepts: http://www.redbooks.ibm.com/abstracts/sg245432.html?Open

Published by carla on 03 Aug 2007

Como pular a primeira linha de uma lista

Há mais de uma maneira de pular a primeira linha de uma lista, seja essa lista um arquivo ou a saida de um comando.

Uma maneira bem simples é usar o comando tail com a opção +2:

tail +2 [nomedoarquivo]

O +2 no comando tail não está dizendo exatamente para pular a primeira linha, mas sim para exibir a lista a partir da segunda linha o que vai significar na prática a mesma coisa. No entanto, você pode usar o tail com +3, +4, etc, iniciando a listagem a partir de qualquer linha que se deseje.

Da man page do comando tail:

“If the first character of N (the number of bytes or lines) is a `+’, print beginning with the Nth item from the start of each file, otherwise, print the last N items in the file.

Referências:

Man page do comando tail: http://unixhelp.ed.ac.uk/CGI/man-cgi?tail

Forum - tópico (Best way to skip first line?):

http://www.daniweb.com/forums/thread80245.html (precisa de registro no site)