Posts com Tags linux

Trickle

Utilizando o trickle para limitar a velocidade de transmissão de arquivos

 

Hoje vou mostrar como limitar o download/upload de arquivos através da rede por linha de comando.  Logico  que existem várias formas de fazer e cada programa tem sua utilidade e seu uso.

Vamos dizer que você queira fazer o download de um arquivo .ISO do ubuntu  e queira limitar o download a 100kb por segungo.

Vou mostrar de duas formas:

Utilizando o wget

wget --limit-rate=100k http://www.mirrorservice.org/sites/releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-amd64.iso

 Utilizando o trickle

trickle -s -d 100 http://www.mirrorservice.org/sites/releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-amd64.iso

Os dois comandos fazem exatamente a mesma coisa, eles fazem o download do arquivo ubuntu e o colocam na pasta corrente onde o comando esta sendo executado.

Agora vou mostrar uma outra necessidade, preciso atualizar todos os pacotes da minha distribução e sabemos que tanto o apt-get como o aptitude utilizam toda a banda de download . Este seria o momento certo de utilizar o trickle , tendo em vista,  que o  wget não recebe outros programas como entrada padrão.

Atualizando os pacotes via aptitude utilizando somente 100kb da rede.

trickle -s -d 100 aptitude safe-upgrade -y

Com este comando todos os pacotes serão atualizados utilizando somente 100kb da rede até que todos os downloads sejam finalizados.

Este comando acredito que possa ser utilizado em  conjunto com qualquer outro que utilize a rede como entrada de dados.

Vamos testar então.

Fazendo um speedTest para testar se a limitação realmente esta funcionando.

Vou abrir meu browser  chrome na página do speedTest.net  para testar se a limitação realmente esta acontecendo.  O “2 > /dev/null” redireciona  os erros (stdout) de plugins para /dev/null , pois,   assim  não  ficarei vendo erros na tela 😛

A saída  será  algo em torno de 0,520MB mais ou menos.

trickle -s -d 60 /opt/google/chrome/chrome http://www.speedtest.net/  2> /dev/null

Por hoje é isso, quer maiores informações ???

man trickle

Abraços.

Dinei

Tags: , , ,

Utilizando rsync + ssh

Bem hoje será uma nota rápida que tive que procurar ajuda no google ( obrigado amigão ) porque somente pelo manual não consegui resolver.

O problema: Uma das máquinas que precisava ser sincronizado o conteúdo via rsync + ssh não estava usando a porta padrão do ssh 22 e sim uma porta modificada que nesse exemplo será a 2200.

o que diz o manual

#man rsync 
....
 -s, --protect-args          no space-splitting; wildcard chars only
     --address=ADDRESS       bind address for outgoing socket to daemon
     --port=PORT             specify double-colon alternate port number
....

Só que para mim não funcionou. 🙁

a sintaxe é simples.

rsync -avz -e ssh  /var/www/html  usuario@host.destino.com.br:/var/www/

Porém dessa forma não funciona porque a porta do ssh não é a padrão então será necessário modifica-la ficando dessa forma.

rsync -avz -e ssh --rsh='ssh -p2200' /var/www/html  usuario@host.destino.com.br:/var/www/

Pronto resolvido agora o ssh utilizará a porta 2200 que é a porta correta.

Estou escrevendo esse post mais para poder ter um local de consulta posterior porque já precisei disso pelo menos umas três vezes.

Tenha uma ótima semana de trabalho amigos.
Fui….

Tags: , ,

Themes Gnome com Ubuntu

Recentemente fiz a atualização do meu Ubuntu e resolvi instalar alguns temas bacanas nele.  Lendo um blog show de bola para ubuntu www.ubuntudicas.com.br encontrei um site de temas bacana.

Projeto Bisigi http://www.bisigi-project.org/?page_id=6

E como tinham muitos temas resolvi fazer um script para instalar :D, novidade né ?

Segue o script:

#!/bin/bash

#Verificando se a chave publica do projeto se econtra em sua listas de chaves
sudo apt-key list | grep -qi 'bisigi'

#Caso nao encontre sera adicionada
if [ $? -gt 0 ];  
then 
    echo 'Adicionando chave do ppa launch, isso pode demorar um pouquinho tenha paciencia :D'
    sudo gpg --keyserver hkp://keyserver.ubuntu.com:11371 --recv-key 881574DE && gpg -a --export 881574DE | sudo apt-key add -
fi

#Procurando a palavra bisigi(nome do site) no source list
grep -qi 'bisigi' /etc/apt/sources.list

#Caso nao encontre vai adicionar ao source list para que possa ser feito o download dos arquivos via aptitude depois
if [ $? -gt 0 ];
then
    echo "Adicionando os repositorios ao source list "
    sudo echo "## Thèmes du projet bisigi" >> /etc/apt/sources.list
    sudo echo "deb http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main" >> /etc/apt/sources.list
    sudo echo "deb-src http://ppa.launchpad.net/bisigi/ppa/ubuntu karmic main" >> /etc/apt/sources.list
fi

echo "Atualizando a lista de software com as novas modificacoes"
sudo apt-get update

clear
echo "Instalando os pacotes"
for themeName in "aquadreams-theme" "ubuntu-sunrise-theme" "bamboo-zen-theme" "step-into-freedom-theme" "tropical-theme" "balanzan-theme" "wild-shine-theme" "infinity-theme"  "showtime-theme" "exotic-theme"
do
    echo "==== Instalando o theme ${themeName} ==========="
    #Obrigado @Henter pela dica, simples é melhor que complexo!
    sudo aptitude install -y $themeName
    sleep 1
    clear
done

echo "Finalizada a instalação, para mudar para um dos themes instalados faça:"
echo "Clique no menu principal -> Sistema -> Preferencias -> Aparencia"
echo "Escolha entre os temas apresentados o que mais agrada e seja feliz"
echo " "
echo " "

echo "Blog: http://www.valdineidossantos.com"
echo "Twitter: http://twitter.com/valdineisantos"

echo " "
echo " "

Copie o código acima e salve com o nome installThemes.sh, ou outro nome qualquer que você quiser.

Para rodar este script basta executar o comando :

   sudo bash /local/onde/salvou/installThemes.sh

Espero que gostem.

Caso tenha algum bug, correção só mandar fiz esse script rápidinho só para passar para os companheiros de trabalho.

Abraços Valdinei.

Referencias:
http://www.ubuntudicas.com.br/?p=2232

http://www.bisigi-project.org

http://www.henter.org/2009/10/04/zen-python

Tags: , , , ,

Mensagens Diarias com o Fortune

Hoje vou falar sobre o Fortune, mas o que seria o fortune?  De acordo com o Man Page ” print a random, hopefully interesting, adage”  Imprimir algo interessante ao acaso, não sei se está é melhor tradução mas já deu para entender o que o texto quis dizer.

Ele é baseado nos biscoitos da sorte chineses (fortune cookies em inglês),  quando configurado pode mostrar uma mensagem de sua base de consulta ao fazer o login no terminal ou mesmo ao carregar o sistema operacional.

Para rodar o programa, caso ele esteja instalado claro,  basta chamar o comando:

$fortune
Você não precisa ser o melhor. Basta procurar fazer bem aquilo que faz, sem esperar recompensa ou castigo, simplesmente pelo prazer de fazer bem-feito, que se esgota no ato de fazer

--Adib Jatene

No meu caso instalei uma base de língua portuguesa e recebi como mensagem esta acima, minha máquina roda ubuntu e o fortune já estava instalado sendo assim para instalar a base de mensagens brasileira basta usar este comando:

$ sudo aptitude install fortune  fortune-mod fortunes-br

Para usar somente mensagens em português você pode indicar qual será a base de consulta ao chamar o programa.

$ fortune brasil
O trabalho e a perdicao das classes bebedoras.
-- Mike Romanoff

Como trabalho com alguns colegas que estão meio estressados pensei em colocar algumas mensagens estimulantes e divertidas nos servidores da empresa, então fiz uma pesquisa para encontrar o fortune para FreeBSD.

No FreeBSD encontrei o fortune instalado por padrão então bastava procurar por bases motivantes e divertidas 😛

No repositorio  do BSD ( www.freebsd.org/ports/ ) encontrei algumas  como futurama, Bíblia Sagrada encontrei também em outras linguas como Russa e Italiana . Com as bases instaladas agora basta fazer aparecer quando o individuo logar por ssh/terminal criando um script shell

Quando fui editar o arquivo ~/.profile do FreeBSD já existia uma entrada para chamar o fortune.

#Padrão do BSD
[ -x /usr/games/fortune ] && /usr/games/fortune freebsd-tips

Ou de pode ser desta maneira também

if [ -a /usr/games/fortune ]; then
   echo " "
   /usr/games/fortune freebsd-tips
   echo " "
fi

Ótimo agora tenho como chamar o fortune passando como argumento uma base de dados. E você também pode criar sua própria base na comunidade viva o linux tem um post sobre isso explicando a criação e os argumentos que pode ser usados http://www.vivaolinux.com.br/artigo/Configurando-o-Fortune/ além é claro do man page http://linux.die.net/man/6/fortune.

Prontinho tudo instalado e funcionando.
Não posso me despedir sem mandar essa mensagem que recebi do fortune.

$ fortune -m 'win' brasil | less
P. Se o windows 98 fosse concessionária, que carro venderia?
R. BUG, é claro!!!
%
O windows 98 é o maior e mais mal feito vírus conhecido.
%
Se o seu windows não der problema, reclame com a Microsoft!
%
O windows não é ruim, esperem só ele ficar pronto...
%
Como transformar um Pentium em XT? Digite "win".
%
Chernobyl usava windows 95 para monitorar seus reatores.
%

heheheheh não foi eu quem disse nada disso foi os autores da base do fortunes hhehehehheheh

*Fontes
http://linux.die.net/man/6/fortune
http://www.vivaolinux.com.br/artigo/Configurando-o-Fortune/
http://www.freebsd.org/cgi/ports.cgi?query=fortune&stype=all&sektion=all

Tags: , , ,

Ubuntu e seus updates.

Hoje fiz uma atualização de segurança do Ubuntu, não que eu sempre veja mas dessa vez eu nem passei o olho para saber o que se passava. Isso é um grande erro.
Essas atualização incluiam o pacote linux-restricted-modules-2.6.24-19-generic, feito todas as instalações pediu para reinciar o computador. Poxa mas isso é linux ou Windows? Me perguntei. Logo veio a resposta realmente estão reproduzindo o windows no Ubuntu. Resultado parcial, parou de funcionar minha rede sem fio e minha placa de som nem olhei o resto.
Vamos aos passos para sabermos o porque do não funcionamento.

Digite o comando
dmesg.

Com este comando eu visualizo as mensagens de carregamento do sistema, com muita paciência fui vendo linha a linha até encontrar algo que me parecece (é assim que se escreve?) estranho.
Achei a linha WL com uma mensagem de Fatal erro. Vamos ao passo dois que é copiar essa string (linha de palavras) e entrar no tio google para saber se alguém já teve esse problema.
Achei milhares de coisas relacionadas e algumas que não tinham nada haver.
Minha máquina é um notebook Inspiron 1525 da fabricante Dell, sendo assim sempre procurava entrar nas palavras relacionadas. Minhas palavras chaves eram Ubuntu, Inspiron, Dell, E o erro encontrado como saida do dmesg.
Achei um forum muito interessante em que alguém tinha o mesmo computador que o meu e o problema exatamente igual. Descobri que a Dell também tem um site com informações de ajuda e da comunidade.
Resumindo a historia pois já escrevi muito. Para que minha placa de som e Wireles voltasse a funcionar tenho que voltar a versão do linux-restrict. Fui no menu sistema->administração->Gerenciador de Pacotes Synaptic, e verifiquei as versões que existiam. Para meu espanto existia três versões do mesmo pacote só não sei para que.
Vamos resolver o problema, desinstalei todos os pacotes que não queria e deixei apenas o que realmente me interessava. Reinicie e no menu do Grub fui até a versão do linux-restrict 18 no modo recovery e pronto. Instalei a versão que estava funcional.
Para ter certeza que a versão errada não seja chamada novamente desinstalei a versão mais nova também. Agora com o sistema limpo e funcional fui no google de novo para saber a última informação.
E se este pacote defeituoso voltar a ser instalar no meu sistema? Existe uma flag que podemos adicionar ao comando aptitute para que esse pacote não seja atualizado sozinho. Não sei se funciona mas fiz o seguinte.

sudo aptitude hold linux-restricted-modules-2.6.24-18-generic
sudo aptitude hold linux-restricted-modules-common

Após essa longa jornada, só como detalhe perdi 3 horas fazendo todas essas tentativas, mandei o synaptic verificar por atualizações e ele respondeu que o sistema se encontrava com a versão mais recente. Então conclui que tudo estava direito e funcionando e o pacote com erro não entraria no meu sistema por discuido de não olhar o que vai ser instalado.

Ubuntu não vire windows, senão vou abandona-lo e vou voltar para FreeBSD.

Tags: , , , , , ,

Videos no Ubuntu

Ver vídeos no ubuntu já é uma tarefa simples, mas recebi um no formato .wmv (Windows Movie). O Ubuntu até consegue abrir o arquivo mas as imagens e sons não são apresentados.
Para resolver o problema fui ao bom e velho google, procurei achei algumas referencias mas os tutoriais sempre apontavem para links inexistentes, sendo assim vou fazer um mais atual 🙂

Primeiro passo vou instalar meu player de Vídeo favorito, se você já tiver seu player favorito (Mplayer, Xine, Totem) não precisa fazer esse passo.

sudo aptitude install vlc

Aceite as opções que ele sugere e pronto, player instalado.
Passo dois encontrar o codec do maldito windows wmv (w32codes). Com o navegador web (opera, firefox, konqueror, IE não ele não é um navegador web) vá até esse endereço:

http://ftp.sunet.se/pub/os/Linux/distributions/debian-multimedia/pool/main/w/w32codecs

Neste endereço serão exibidos alguns arquivos o que realmente interessa para nós é o w32codecs_XXXXXX.deb onde XXXX é a versão do arquivo que vc vai baixar.
Clique no pacote .deb e o browser vai pedir para salvar o arquivo, você escolha um diretorio onde consiga lembrar depois e clique em ok.
Após o download concluido, quando fiz era em torno de 14MB, você fará a instalação do arquivo baixado.

Quando fui instalar o w32codecs no meu sistema existia uma dependencia que estava faltando sendo assim tive que instalar:

sudo aptitude install libstdc++5

Faça o comando acima caso você já o tenha no sistema não será afetado em nada sua instalação.
Agora vamos ao pacote baixado, navegue no terminal até a pasta onde você salvou o arquivo, você tem que lembrar 🙂  E digite :

sudo dpkg -i w32codecs_20071007-0.1_i386.deb

Onde 20071007-0.1_i386 é minha versão de download você poderá ter uma versão diferente e provavelmente mais recente.

Feito isso acredito que já podemos testar.

vlc url_do_video/nome_do_video.wmv.

Bom Filme !!

Tags: , , , ,

Wifi em linha de comando

O ubuntu tem inúmeros programas para fazer a conexão wifi em notebooks. Mas eu queria saber como fazer na mão em linha de comando.

Após  procurar um pouco na Internet, ou seja no google consegui algumas informações que vou passar aqui no blog.
Em primeiro lugar vamos encontrar as redes disponiveis para conexão. Inclusive as dos vizinhos então usem com moderação esta dica.

Digite :

iwlist scan

Neste momento será retornado as redes disponiveis.
Exemplo de saida do programa iwlist:

lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.

eth1      Scan completed :
Cell 01 - Address: 00:30:65:05:E6:04
ESSID:"minha_rede"
Protocol:IEEE 802.11b
Mode:Master
Channel:1
Frequency:2.412 GHz (Channel 1)
Encryption key:on
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s
Quality=64/100  Signal level=-62 dBm
Extra: Last beacon: 4156ms ago

Explicando a interface lo é a da própria máquina, a interface eth0 é da rede cabeada e não poderá ser feito o scan de redes sem fio por ela. A que realmente importa é a eth1 pois é minha rede sem fios.
Foi encontrada a rede de nome minha_rede e existem uma senha habilitada para a mesma.
Agora que a rede foi detectada vamos ao passo dois que é associar ela a sua interface, neste momento você vai precisar da senha de administrador do computador.

Digite:

sudo iwconfig eth1 essid "minha_rede" key s:sua_senha_da_rede

Neste momento você esta fazendo a associação da rede “minha_rede” a sua interface de rede eth1 utilizando uma senha baseada em ASCII sua_senha_da_rede que contem 12 caracteres.

Algumas observações até esse ponto. No meu caso minha interface de rede ligada é a eth1, mas podem ser outros dependendo do fabricante. Poderiam ser também wlan0, ath0 dentre outras.
Segundo ponto é que minha rede utiliza senha para acesso, essa senha é baseada em ASCII mas não é um padrão podem haver outros.

Agora para finalizar caso sua máquina trabalhe com DHCP (ip dinâmico) você terá de conseguir seu ip novo com um comando.

Digite:

sudo dhclient eth1

Neste momento você receberá um ip e já pode se conectar a rede local e caso essa rede tenha acesso a internet pode navegar.

Para maiores informações e eu aconselho que seja feito a leitura do manual 🙂

Digite:

man iwconfig

Obrigado Joe Rabelo pelos testes na sua máquina.

Tags: , , , ,

tar e rm alguns segredos…

Hoje vamos falar um pouco sobre backup e sobre uma curiosidade do comando rm.
Eu precisa criar um pacote compactado com os arquivos fontes de um aplicativo da empresa onde trabalho. Mas neste pacote não poderiam ir os arquivos de trabalho do sistema como PDF, Imagens, XML e etc.
Para fazer a compactação geramente utilizo o tar pois ele é de simples entendimento e largamente utilizado por pessoas que utilizam UNIX.
A sintaxe básica é:

tar  arquivo_saida arquivo_entrada1 arquivo_entrada_n

Assim como utilizei a flag –exclude no rsync posso utilizar no tar também.
Então para resolver meu problema foi simples digitei.

tar -vczf arquivosFontes.tar.gz /home/valdinei/ --exclude /home/valdinei/userFiles

Onde as opções são definidas da seguinte forma:

-v mostrar as saidas na tela
-c criação de arquivo
-z tipo de compactação
-f arquivo

Resolvido o problema com este comando, mas fazendo os testes para descobrir como o comando funcionava foram sendo criados arquivo lixo em meu ambiente de teste. Este arquivos eram os –exclude, –exclude= e coisas do tipo pois fiz muitas tentativas 🙂

Para apagarmos apagarmos arquivos é so utilizar o comando rm <arquivo>, sendo este um arquivo com um nome normal.
Neste caso meu arquivo não tinha um nome normal.

Digite no seu console

touch --test.

Depois

 rm --test

para ver o que acontece…. nada vai dar um erro.

Tem um explicação logica para isso, quando chamamos um comando é utlizado uma nova shell para executa-la e como o sinal (–) é utlizado para a passagem de paramentros da um erro pois agora este sinal pertence ao nome do arquivo.

Sem se extender mais sobre o assunto vamos a solução:

rm -- --test

Pronto apagamos o arquivo. Porque?
Bem agora definimos que o comando vai ser executado pelo shell que estamos utilizando.

Espero ter ajudado pois isso me salvou hoje criando um arquivo limpo e deixando minha máquina sem arquivos com nomes bizarros.

Abraços
Dinei.

Tags: , , , , ,

Utilizando Rsync

Nesta manhã tive que fazer a sincronia entre dois servidores.
Primeira coisa que me veio a cabeça foi fazer o bom e velho scp. Vamos com calma, que bicho é esse?
Para fazer copia de arquivos em máquinas UnixLike (linux, BSD, Mac, Solaris, etc). O comando é simples:

cp url_arquivo_origem/nome_arquivo_origem url_arquivo_destino/arquivo_destino.

Isso pode ser feito através da rede também utilizando o comando scp, definição da Wikipedia.

“Secure Copy ou SCP é um meio seguro para transferir arquivos entre um host local e um remoto ou entre dois hosts remotos, usando o protocolo SSH.
O termo SCP pode ao mesmo tempo referir-se ao Protocolo SCP ou ao Programa SCP.”

Bem isso era o que eu precisava para sincronizar meus servidores com um detalhe que era crucial, existem arquivo do tipo .pdf que são pesados e desnecessários para minha
sincronia.

Procurando um pouco na internet encontrei uma segunda forma que seria o RSYNC que faz quase a mesma coisa com a diferença de você passar o caminho e ele se
virar para verificar as diferenças.
Definição da Wikipedia:
rsync é um utilitário para sincronização de arquivos e diretórios entre duas localidades diferentes enquanto minimiza a transferência de dados.

Sua sinatxe:

 rsync -Cravzp /home/valdinei/arquivos/ /var/backups/arquivos/

ou

rsync -Cravzp /home/valdinei/arquivos /var/backups/

Do primeiro modo será sincronizado dos os arquivos que se encontram dentro da pasta arquivos no meu home para a pasta arquivos que se encontra dentro de backups

Da segunda forma estarei sincronizando a pasta arquivo com a pasta backup, como assim? Caso exista a pasta arquivos dentro de backup ele vai buscar o conteudo que esta na pasta
arquivos na minha home e colocará as diferenças dentro da pasta arquivos na pasta backup.
E se caso a pasta arquivos não existir dentro da pasta backup será criada com todo o conteúdo.

Isso me faz exatamente o que o scp faz :). Agora vem que eu precisava o rsync permite que você exclua certo tipos de arquivos que contenham uma cadeia de caracteres
especifico.

Então para resolver meu problema fiz a sincronia desta forma:

rsync -avz /home/valdinei/arquivos /var/backups/ --exclude *.pdf*

E para fazer entre maquinas destintas na rede seria assim:

rsync -avz -e ssh  valdinei@host1:/home/valdinei/arquivos /home/valdinei/arquivos --exclude *.pdf* --exclude *.PDF*

As opções são:

-a  Enviar Todos os Arquivos
-v Mostrar todas as mensagens
-z Enviar de mod compactado.
-e ssh  Utilizando o tunelamento de ssh

Agora fazendo pela rede.
Acho que isso é tudo por hoje.
Dinei.

Tags: , , ,