Arquivos Mensais: julho 2008

Configurando Linux para usar o OpenDNS

Em horários de pico, os servidores DNS da Brasil Telecom ficam praticamente inutilizáveis. Portanto, resolvi configurar meu computador para usar o OpenDNS.

O primeiro passo depende de como você obtém seu endereço de IP. No meu caso, é via DHCP, então tive que alterar o arquivo /etc/conf.d/dhcpcd . O importante aqui é que o arquivo /etc/resolv.conf não seja reescrito cada vez que você se conectar.

Caso você também use o dhcpcd, adicione -R à lista de argumentos no arquivo /etc/conf.d/dhcpcd:
DHCPCD_ARGS="-R -t 30 -h $HOSTNAME"

Depois disso, edite o /etc/resolv.conf para usar os servidores do OpenDNS:
nameserver 208.67.222.222
nameserver 208.67.220.220

Coloque-os no topo do arquivo para que eles tenham prioridade. Os números, caso você queira confirmar, estão no canto inferior direito da página do OpenDNS.

Obs: A primeira vez que eu fiz isso o /etc/resolv.conf foi reescrito. Creio que para isso não acontecer, você deve editar o arquivo /etc/conf.d/dhcpcd, reiniciar o daemon do dhcpcd (no caso do Archlinux, /etc/rc.d/network restart) e então editar /etc/resolv.conf.

Publicidade

LaTeX e acentos em português

Eu gosto bastante de gerar PDFs com o LaTeX, mas estava com alguns problemas quando precisava copiar textos do PDF para outro lugar.

A solução é bastante simples: faltava uma linha no pre-âmbulo do documento, a parte entre \documentclass e \begin{document}.

\usepackage[brazilian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

A linha que faltava eu colocar era a última, mas as outras linhas também são úteis quando se for escrever em português. A primeira é o babel, que muda o texto que aparece quando se escreve, por exemplo, \chapter. Ele também é o responsável pela hifenização correta das palavras. A segunda é para que você escreva o documento diretamente com os acentos, e não usando macros (“á” ao invés de “\´a”). A terceira muda a condificação da fonte, tornando possível copiar textos com acentos.

Divindo arquivo em partes menores no Linux

Eu queria fazer o backup de alguns arquivos no Gmail, mas depois de juntá-los num tar.gz, o arquivo ficou grande demais para mandá-lo por email. Resolvi o problema dividindo o arquivo em partes menores e mandando-as individualmente.

Antes de mais nada, vamos juntar todos os arquivos em um tar. O ideal é que você crie uma pasta antes, pois quando for descompactar, os arquivos não serão jogados no diretório em que você está trabalhando, mas sim dentro dessa mesma pasta.
$ mkdir backup

Agora copie todos os arquivos que você quer fazer o backup para essa pasta. Se quiser, pode criar novas pastas dentro dessa.
$ cp arquivo1 arquivo2 arquivo3 ... backup

Depois disso, criaremos o tar. Você pode simplesmente criá-lo, ou também compactá-lo com o gzip ou o bzip2. Existem outras opções também, mas essas são as mais comuns. O bzip2 compacta melhor, mas é um pouco mais lerdo.
$ tar -cvf backup.tar backup # sem compactação
$ tar -zcvf backup.tar.gz backup # gzip
$ tar -jcvf backup.tar.bz2 backup # bzip2

Pode ser que você queira ver de que tamanho ficou o tar e ver se vai precisar dividi-lo ou não.
$ ls -lh | grep backup

Para dividi-lo, usaremos o split. No Archlinux ele vem no pacote coreutils, então é praticamente certeza que ele estará instalado. De maneira geral, ele será utilizado da seguinte forma:
$ split -b tamanho_individual arquivo_de_origem prefixo

Assim ele dividirá o arquivo_de_origem em arquivos de tamanho_individual (em bytes, ou você pode usar algum sufixo de tamanho) cada e com o nome prefixoaa, prefixoab, prefixoac… Eu usei algumas opções a mais, no fim ficou assim:
split -a 1 -b 9MB -d --verbose backup.tar.gz backup.tar.gz.

  • O -a 1 modifica os identificadores após o prefixo, então ao invés de backup.tar.gz.aa, eu terei backup.tar.gz.a.
  • O -d usa números no lugar de letras depois do prefixo, então no fim eu fiquei com backup.tar.gz.0, 1, 2, etc.

Esse passo não é destrutivo. Em outras palavras, ele não apagará o arquivo original.

Para juntar usaremos o cat. Você pode primeiro reconstituir o arquivo original e então descompactá-lo, ou usar um pipe direto do cat para o tar. Vamos criar um novo diretório antes para evitar confusões com nome de arquivos antes.
$ mkdir tmp && mv backup.tar.gz.* tmp && cd tmp
$ cat backup.tar.gz.* > backup.tar.gz #reconstitui o arquivo e
$ tar -xvzf backup.tar.gz # descompacta o arquivo. ou
$ cat backup.tar.gz.* | tar -xvz # usa o pipe

Só se lembre de na hora de descompactar usar as opções certas, -z para gzip, -j para bzip2 e nada para apenas tar. Perceba também que no primeiro caso usamos -xvzf porque descompactamos um arquivo, no segundo não usamos o -f porque o tar está lendo do stdin.