quarta-feira, janeiro 30, 2008

Limitar banda de downloads com wget

Para limitar o download em 10kbytes.

wget --limit-rate=10k --continue http://algumendereco/arquivo.zip

É possível baixar sites inteiros com o wget:

# wget -r www.ositequesequerbaixar.dominio

Vale lembrar que isso vai baixar apenas os arquivos linkados nas páginas do site.

Se você estava baixando alguma coisa via linha de comando com um

# wget www.origem.dominio/arquivo

e, de repente, o download parou, é possível continuar com:

# wget -c www.origem.dominio/arquivo

É possível também criar uma lista de links em um arquivo e pedir pro wget usá-la como arquivo de entrada:

# wget -f file

Para forçar o arquivo de entrada a ser tratado como um arquivo HTML, use o -F:

# wget -fF file

Asim, você poderia criar uma lista de sites interessantes e baixá-los todos de uma vez, ou criar uma lista de arquivos a serem baixados (seqüencialmente) e fazer o mesmo com eles.

O wget costuma enviar muita saída de texto, quem o usa em scripts normalmente não deseja este inconveniente. Logo, o melhor seria usar o wget desta maneira:

# wget -nv [outras opções] [links]

Assim, o wget só envia para tela mensagens onde ele avisa que um dado arquivo foi baixado com sucesso.

Para colocar o wget no segundo plano, sem o "&", faça o seguinte:

# wget -b

Existem muitas outras coisas legais pra se fazer com o wget, basta ter paciência de ler os "man"s do Unix.

quinta-feira, janeiro 17, 2008

Deslogar v2.0

O quê o Deslogar v2.0 faz:

  1. Lista todos os usuários que estão logados no sistema. No nosso caso, serão mostradas apenas os usuários das estações LTSP.
  2. Permite selecionar vários usuários e deslogá-los

Dependência de pacotes:

  1. Zenity
  2. Slay

Utilizei Shell Script + Zenity e a tela é essa aí:

Deslogar v2.0

O seu código original é esse:

#!/bin/bash

## Ferramenta criada pela Equipe de Desenvolvimento - PISD - Programa de Inclusao Socio-Digital do Estado da Bahia.
## Desloga os usuarios das estações LTSP
## Arquivo criado em 13/11/2007

##
# Pegando valor do ID
ID=$(cat /etc/idconf)

if [ -z $ID ]; then
# Se nao encontrar ID aparece essa mensagem de erro.
zenity –error –title “ERRO” –text “ID não encontrado, por isso o programa não será executado.\nEntre em contato com a Central de Atendimentos.”
else
DESLOGAR=$(zenity –list –multiple –print-column=2 –width=400 –height=400 –title “Deslogar v2.0″ –text “Selecione o(s) usuario(s) que deseja deslogar:” –column “Estacao” $(w -h | grep ${ID}E | egrep -v ‘(pts|admin|admintec|root)’ | awk ‘{print $3″ “$1}’ | sort -n) –column “Usuario”)

if [ ! -z $DESLOGAR ]; then
slay $(echo $DESLOGAR | tr ‘|’ ” “)
fi
fi

Pode selecionar um, vários ou todos os usuários:

Deslogar v2.0

Lembrando que pra utilizar o Deslogar v2.0 é preciso ter privilégio de root ;)

Mas pra quem usa LTSP e deseja utilizar essa ferramenta, pode utilizar esse código:

#!/bin/bash

## Ferramenta criada por Ataliba Neto - ataliba”ARROBA”atalibaneto.com.br
## Desloga os usuarios conectados no sistema
## Depende dos pacotes: Zenity e Slay
## Arquivo criado em Wed, 14 Nov 2007 15:43:35 -0300

DESLOGAR=$(zenity –list –multiple –print-column=2 –width=400 –height=400 –title “Deslogar v2.0″ –text “Selecione o(s) usuario(s) que deseja deslogar:” –column “Estacao” $(w -h | awk ‘{print $3″ “$1}’ | sort -n) –column “Usuario”)

if [ ! -z $DESLOGAR ]; then
slay $(echo $DESLOGAR | tr ‘|’ ” “)

fi

Só que esse código não é 100% funcional, pois utilizei o comando ‘w’ do Linux para listar os usuários, e esse comando possui uma problema. Ele só lista os oito primeiros caracteres dos usuários, ou seja, se o usuário for ‘atalibaneto’ ele só vai listar ‘ataliban’ e o Deslogar v2.0 não vai funcionar. Pra isso vou usar o comando ‘finger’ que lista o nome do usuário completo, mas ainda não terminei.

By http://atalibaneto.wordpress.com/2007/11/14/deslogar/


Finalizando todos os processos de um usuário

Para matar um programa com o comando kill é preciso do número PID do processo, para conseguir o número PID, ou você usa pidof programa ou lista todos os processos e olha o PID do programa que te interessa. E se você quiser finalizar todos os processos de um determinado usuário ? E se tiver mais de um número de PID referente aquele processo (como o apache) ?

Uma solução vem do comando abaixo:

ps auxww | grep "mitre" | awk '{print $2}'

Com ele, nós listamos todos os PID do usuario mitre. Ainda podemos com a modificação do comando abaixo:

ps auxww | grep "apache" | awk '{print $2}'

listar todos os processos que contenham a expressão regular "apache".

Essencialmente, podemos listar todos os PIDs de qualquer processo que possa ser identificado por uma expressão regular apropriada como argumento do comando intermediário "grep".

Agora que temos uma lista de PIDs, tudo que temos que fazer é executar o comando kill, como nos exemplos:

kill -9 $(ps auxww | grep "mitre" | awk '{print $2}')

kill -9 $(ps auxww | grep "apache" | awk '{print $2}')

Nota: É possível fazer um serviço similar com o comando killall, eliminando os dois redirecionamentos utilizados nas linhas acima, mas eu particularmente prefiro utilizar o comando kill ao killall. Pode ser apenas uma sensação equivocada, mas eu considero o kill mais eficiente do que o killall. Além disso, podemos utilizar inicialmente:
ps auxww | grep "apache" ou ps auxww | grep "mitre"
para ter certeza de que selecionamos o processos corretos, isso permite mais controle sobre as decisões do que com comando killall.

Referência: How to kill a list of PID's with one operation

quarta-feira, janeiro 16, 2008

MIcrosoft, preocupada com segurança, roda Debian

A Microsoft confirma sua preocupação com segurança, lançando um site que ajuda a criar passwords difíceis de serem quebradas. A idéia é interessante: vários borrões (inkblots) são apresentados e você tenta identificá-los. A partir da imagem que os borrões te passam, é gerada uma nova password.

A preocupação com segurança é tanta, que o site roda Apache e Debian. Confira em http://uptime.netcraft.com/up/graph?site=www.inkblotpassword.com

http://toolbar.netcraft.com/site_report?url=download.microsoft.com


Em About:

“InkblotPassword.com is a research project deployed by Microsoft Research.”

“Learn More You can learn more about the principles behind inkblot passwords in this Microsoft Research technical report: MSR-TR-2004-85 You can contact us at inkblots@microsoft.com.”

http://www.inkblotpassword.com/static/about.html

Como posso contar o número de linhas, palavras e caracteres de um arquivo?

Use o comando wc.

O comando wc exibe, respectivamente:

  • o número de linhas;
  • o número de palavras;
  • o número de caracteres.

Para ver essas opções separadamente, use:

wc -l (linhas)
wc -w (palavras)
wc -c (caracteres)

terça-feira, janeiro 15, 2008

Psi em Português Brasil

Pacote de Linguagem: Português do Brasil
Autoria: Carlos Eduardo Matos Ellery, Maria Stael Melo Sampaio e Geovani Freitas de Paiva
Contribuições: Klayson Sesana Bonatto e Rui Maciel (GreatBunzinni)
Licença: GPL

Guia de instalação do pacote de linguagem em Português do Brasil

1) Faça o download do pacote de linguagem clicando no link "Lang Pack" no fim desta página.

2) Coloque o arquivo no diretório apropriado de acordo com seu sistema operacional:

GNU/Linux - Copie psi_ptbr.qm para $HOME/.psi/ ou, se tiver privilégios de root, copie psi_ptbr.qm para /usr/share/psi/ tornando a linguagem disponível para todos os usuários do sistema.

Windows 95/98/Me - Copie psi_ptbr.qm para C:\Arquivos de Programas\Psi\psidata\ (se instalou o Psi em outro diretório, certifique-se de ajustar o caminho e colocar o arquivo no lugar correto).

Windows 2000/XP - Existem duas maneiras:
Lang Pack | Source