Category Archives: Linux

find + sed

Acostumado a utilizar o terminal (shell), eu sempre estou precisando fazer substituições de palavras que estão dentro de algum arquivo, a função find é um “Canivete Suiço” e permite a combinação de outras funções e parâmetros para fazer isso de uma forma muito simples. Veja a seguir;

Vamos considerar que você necessite trocar todas as palavras “BRANCO” por “PRETO” dentro de todos arquivos do diretório.

Eis a solução;

find . -type f -exec sed -i "s/BRANCO/PRETO/g" {} \;

O trecho “find . -type f” faz o trabalho de buscar apenas arquivos cujo o tipo seja igual a “f” (file), o segundo trecho “-exec sed -i “s/BRANCO/PRETO/g” {} \;” faz a substituição utilizando a função “sed” que escreve no arquivo que encontrar a palavra procurada.

Vamos supor que você queira apenas encontrar arquivos com a palavra BRANCO;

grep -r "BRANCO" .

Utilizei a função grep com a opção -r (recursivo), pois o find neste caso não é necessário.

Isso não era pra ser um artigo (e não ehh..rs)

é apenas uma dica e também pra eu mesmo consultar, caso eu esqueça…rs

abraço!

Automate running dhclient in Ubuntu

Well, this is basically a reminder to the future when you need to reconfigure my network. haha!

Since I’m using a DHCP service on a router “D-Link”, I needed to automate my settings on my network interface to avoid always run the command “dhclient”.

/etc/nework/interfaces

auto eth0
iface eth0 inet dhcp

So save the file “interfaces”, run “ifdown eth0″ to stop the service and “ifup eth0″ to starter again.

- Now run the command “ifdown eth0″ for stop service

root@btlagutoli-desktop:/home/btlagutoli# ifdown eth0
There is already a pid file /var/run/dhclient.eth0.pid with pid 1125
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:xx:aa:dd:dd:dff
Sending on   LPF/eth0/00:xx:aa:dd:dd:dff
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 192.168.0.1 port 67
suspect value in server_name option - discarded



- Finally, run “ifup eth0″ for start the service again

root@btlagutoli-desktop:/home/btlagutoli# ifdown eth0
There is already a pid file /var/run/dhclient.eth0.pid with pid 1125
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:xx:aa:dd:dd:dff
Sending on   LPF/eth0/00:xx:aa:dd:dd:dff
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 192.168.0.1 port 67
suspect value in server_name option - discarded

That’s it!

Sincronização por FTP (mirrors)

Resolvi fazer este artigo, porque tive que atender uma demanda, que precisava deixar dois ambientes espelhados, ou seja, idênticos (mirrors) e que utilizasse protocolo FTP para se comunicar.

Depois de pesquisar algumas opções, cheguei no lftp que faz o trabalho muito bem, inclusive bem parecido ao Rsync, veja;

./sincronizacao.sh

#!/bin/bash
HOST="ftp.meuserver.com.br" #seu endereço ou ip do FTP
USER="seu_usuário" #seu usuário
PASS="sua_senha" #sua senha
LCD="/home/sua_home/teste/" #diretório local
RCD="teste/" #diretório remoto (FTP), o script procura na raiz do ftp

lftp -c "set ftp:list-options -a;
open ftp://$USER:$PASS@$HOST;
lcd $LCD;
cd $RCD;
mirror --reverse \
       --verbose \
       --delete \
       --exclude-glob a-dir-to-exclude/ \
       --exclude-glob a-file-to-exclude \
       --exclude-glob a-file-group-to-exclude* \
       --exclude-glob other-files-to-esclude"

Obs: O único parâmetro que vou deixar uma observação “–delete” que faz a comparação dos dois ambiente e se existir algum arquivo no servidor remoto (FTP) e não existir localmente ele apaga o arquivo do servidor remoto, então tome cuidado!!

Qualquer dúvida, faça sua pergunta!

Até a próxima!

Alterar editor default no Linux

Bom, isso não é um artigo e sim uma pequena dica para as pessoas que odeiam editar arquivos utilizando o nano (/bin/nano).

No Ubuntu o Nano  é o editor default e para alterar isso, digite;

sudo update-alternatives --config editor

Executando o comando você terá as seguintes opções;

btlagutoli@agutoli:/var/www/gazetaesportiva$ sudo update-alternatives --config editor
Existem 4 escolhas para a alternativa editor (fornecendo /usr/bin/editor).

  Seleção    Caminho             Prioridade Estado
------------------------------------------------------------
* 0            /bin/nano            40        modo automático
  1            /bin/ed             -100       modo manual
  2            /bin/nano            40        modo manual
  3            /usr/bin/vim.basic   30        modo manual
  4            /usr/bin/vim.tiny    10        modo manual

Pressione ENTER para deixar a escolha corrente[*] ou digite o número selecionado:

Eu prefiro utilizar o vim, então escolhi a opção 4

É isso.

abraço!

SVN

SVN – Ignorando diretórios

Quem trabalha com versionamento, sabe que existem diretórios que não faz sentido versionar como por ex. diretórios “dinâmicos”, ou seja, conteúdo que muda constantemente (xml,cache etc).

Para estes casos, existe uma propriedade que podemos setar diretamente no diretório, que faz o Subversion (SVN) desconsiderar o mesmo.

Considerando está estrutura simples;

-- Projeto
        | -- cache
        | -- templates
        | -- models
        | -- views
        | -- index.php
$ cd Projeto/cache/
Projeto/cache$ svn propset svn:ignore '*' .
propriedade 'svn:ignore' setada em '.'

Thanks!

  • RSS
  • Facebook
  • Google+
  • LinkedIn
  • Twitter
  • Git Hub
  • YouTube