Claudio Borges

Technical blog about Linux, BSD, Mac OS X, Games and etc.

Archive for the ‘Links’ Category

Truncando um arquivo aberto que foi deletado

without comments

As vezes acontece de termos um arquivo aberto que foi deletado mas que ainda está sendo usado por algum processo. Muitas vezes este processo é de uma aplicação que não podemos reiniciar, seja por ser uma aplicação muito crítica, ou em muito dos casos você tenha “receio” de reiniciar e ocasionar algum problema. Só que você precisa liberar o espaço livre que este processo está “segurando”.

No exemplo abaixo, tenho uma partição com 141G ocupados e “apenas” 34G livres.

root@dbserver:~# df -h
Filesystem                           Size  Used Avail Use% Mounted on
rootfs                                15G  1.1G   13G   8% /
udev                                  10M     0   10M   0% /dev
tmpfs                                1.2G  264K  1.2G   1% /run
/dev/mapper/VolGroup00-lv_root        15G  1.1G   13G   8% /
tmpfs                                5.0M     0  5.0M   0% /run/lock
tmpfs                                2.4G     0  2.4G   0% /run/shm
/dev/mapper/VolGroup00-lv_tmp        3.8G   72M  3.5G   2% /tmp
/dev/mapper/VolGroup00-lv_var        184G  141G   34G  81% /var
root@dbserver:~#

Verificando o tamanho de todos os diretórios dentro do /var.

root@dbserver:/var# du -shc *
3.9M    backups
85M     cache
7.3G    lib
4.0K    local
12K     lock
282M    log
16K     lost+found
431M    mail
4.0K    opt
172K    run
108K    spool
4.0K    tmp
16K     www
8.0G    total
root@dbserver:/var#

Reparem no exemplo acima que temos apenas 8.0G ocupados. Então, o que está consumindo tanto espaço em disco? Usando o lsof conseguimos descobrir quem é:

root@dbserver:/var# lsof /var/ | grep deleted
mysqld     1850       mysql   10w   REG  253,2 141891360059 2424897 /var/log/mysql/mysql.log.1 (deleted)

Um único arquivo de log do mysql consumindo mais de 130G de espaço é complicado não é mesmo? Com o número do processo, conseguimos saber qual arquivo iremos truncar:

root@dbserver:/var# ls -latr /proc/1850/fd/ | grep -i deleted
lrwx------ 1 root  root  64 Mar 12 01:01 7 -> /tmp/ibz7M8HX (deleted)
lrwx------ 1 root  root  64 Mar 12 01:01 6 -> /tmp/ibT0GdaA (deleted)
lrwx------ 1 root  root  64 Mar 12 01:01 5 -> /tmp/ibuilBCc (deleted)
lrwx------ 1 root  root  64 Mar 12 01:01 4 -> /tmp/ibKEdZ4O (deleted)
lrwx------ 1 root  root  64 Mar 12 01:01 11 -> /tmp/ibotm0Yo (deleted)
l-wx------ 1 root  root  64 Mar 12 01:01 10 -> /var/log/mysql/mysql.log.1 (deleted)
root@dbserver:/var# > /proc/1850/fd/10

Nos comando acima, primeiro verificamos o número do FD (file descriptor) do arquivo e logo na sequência, truncamos todo o conteúdo do arquivo.

Obs: Muito cuidado pois um determinado processo utiliza vários FDs, você tem que ter certeza absoluta de qual arquivo irá truncar, pois pode “sem querer” apagar um arquivo válido e neste caso já era. Apenas o backup lhe salvará.

root@dbserver:/var# df -h
Filesystem                           Size  Used Avail Use% Mounted on
rootfs                                15G  1.1G   13G   8% /
udev                                  10M     0   10M   0% /dev
tmpfs                                1.2G  264K  1.2G   1% /run
/dev/mapper/VolGroup00-lv_root        15G  1.1G   13G   8% /
tmpfs                                5.0M     0  5.0M   0% /run/lock
tmpfs                                2.4G     0  2.4G   0% /run/shm
/dev/mapper/VolGroup00-lv_tmp        3.8G   72M  3.5G   2% /tmp
/dev/mapper/VolGroup00-lv_var        184G  8.2G  166G   5% /var

Depois do arquivo truncado, agora o espaço da partição está ok.

Written by but3k4

March 12th, 2014 at 5:06 pm

Autenticação 802.1x em redes ethernet

without comments

Alguns amigos tiveram dificuldades para autenticar no servidor Radius, isto porque o servidor dhcp somente liberava ip via autenticação, por este motivo resolvi criar este post.

Basicamente você vai utilizar wireless over ethernet, pois o responsável pela autenticação no Radius será o wpa_supplicant. Os procedimentos abaixo são baseados em Debian, caso você utilize outro SO, adapte este documento conforme sua necessidade.

Comece instalando o wpa_supplicant:

apt-get clean
apt-get update
apt-get install -y wpasupplicant

Com o wpa_supplicant instalando, vamos a configuração. Crie o arquivo /etc/wpa_supplicant/wired.conf com o seguinte conteudo:

# /etc/wpa_supplicant/wired.conf
#
ctrl_interface=/var/run/wpa_supplicant
network={
	key_mgmt=WPA-EAP
	eap=PEAP
	pairwise=CCMP TKIP
	group=CCMP TKIP
	identity="claudio@claudioborges.org"
	password="lalalalaxxxxx"
	phase1="peaplabel=0"
	phase2="auth=MSCHAPV2"
}

Obs: Não esqueça de substituir os valores de identify e password por seu usuário e senha.

Para testar se a autenticação está funcionando, inicie o wpa_supplicant em modo debug:

wpa_supplicant -Dwired -ieth0 -d -c/etc/wpa_supplicant/wired.conf

Se tudo correr bem, você será autenticado, caso ocorra algum problema como senha expirada ou algo do gênero, o debug irá lhe mostrar.

Estando tudo certo no passo anterior, vamos deixar a configuração de modo que o serviço seja iniciado de forma automática. Edite o seu /etc/network/interfaces e ajuste os valores a serem utilizados na sua interface:

auto eth0
iface eth0 inet dhcp
   wpa-driver wired
   wpa-conf /etc/wpa_supplicant/wired.conf

E para finalizar, reinicie as interfaces de rede:

/etc/init.d/networking restart

Seguindo os passos acima, você terá sua autenticação over ethernet.

Written by but3k4

June 28th, 2010 at 4:53 pm

Posted in Links

Tagged with , , ,