24 de fev. de 2014

Comparando e igualando diretórios com o rsync

Outro dia mostrei como criar um compartilhamento NFS. Na ocasião eu precisava comparar e igualar uns diretórios e para isso usei o utilitário rsync.

Comparando diretórios

rsync -vrhin <diretório_origem> <diretório_destino>
Onde:
  • v - mostra os arquivos e diretórios que são copiados
  • r - pesquisa os diretórios e subdiretórios abaixo dos diretórios indicados como origem e destino
  • h - mostra as informações de maneira compreensível
  • i - mostra alguns detalhes como a direção, o tipo de arquivo, o processo, as diferenças
  • n - não faz nenhuma alteração nos arquivos
Se o diretório contiver muitos subdiretórios e arquivos, o ideal é mandar a saída padrão para um arquivo para facilitar a conferência:
rsync -vrhin <diretório_origem> <diretório_destino> > resultado

Igualando diretórios

rsync -vazuhi --progress --delete <diretório_origem> <diretório_destino>
... onde:
  • a - mantém atributos e permissões no destino iguais à origem
  • z - compacta os arquivos na origem para reduzir o tráfego, descompactando-os automaticamente no destino
  • u - no caso do arquivo ou diretório já existir no destino, só copia/atualiza se esse for mais antigo que o que está sendo copiado
  • --progress - mostra o progresso individual da cópia de cada arquivo
  • --delete - apaga arquivos presentes no destino que não estão mais presentes na origem
Obviamente é necessária cautela ao usar o recurso, principalmente se existem dados sensíveis no destino.
Se houver dúvida, use a opção n (dry-run) a fim de observar o resultado antes de rodar o processo definitivo, o comando ficaria assim:
rsync -vazuhin --progress --delete <diretório_origem> <diretório_destino>

17 de fev. de 2014

Pós instalação no Ubuntu e variantes

Esses são os passos básicos que eu faço sempre que instalo o Ubuntu, Xubuntu ou Lubuntu em algum micro ou máquina virtual.
Atualizado em 10/04/2017.
Atenção! Eu faço esses passos nos meus micros, se você resolver testar, faça por sua própria conta e risco.

Adiciona o repositório Partners

sudo add-apt-repository "deb http://archive.canonical.com/ubuntu $(lsb_release -sc) partner"

Adiciona suporte a arquitetura i386, caso não exista

sudo dpkg --add-architecture i386

Atualiza sistema

sudo apt update && sudo apt full-upgrade && sudo apt autoremove && sudo apt purge && sudo apt clean

Desativa mensagens de depuração do APPPORT

sudo sed -i "s/enabled=1/enabled=0/g" /etc/default/apport && sudo service apport restart

Libera a exibição dos aplicativos iniciados automaticamente

sudo sed -i "s/NoDisplay=true/NoDisplay=false/g" /etc/xdg/autostart/*.desktop

Drivers de vídeo open source otimizados

sudo add-apt-repository ppa:oibaf/graphics-drivers && sudo apt update && sudo apt full-upgrade

zRAM

sudo apt install zram-config

PRELINK

sudo apt install prelink
sudo prelink -amR
sudo sed -i "s/PRELINKING=unknown/PRELINKING=yes/g" /etc/default/prelink
sudo /etc/cron.daily/prelink
echo 'DPkg::Post-Invoke {"echo Running prelink, please wait…;/etc/cron.daily/prelink";}' | sudo tee /etc/apt/apt.conf

PRELOAD

sudo apt install preload

Habilita o NUMLOCK na inicialização do Lubuntu

sudo sed -i "s/# numlock=0/numlock=1/g" /etc/xdg/lubuntu/lxdm/lxdm.conf

Utilitários e codecs

sudo apt install ubuntu-restricted-extras rar unrar zip unzip p7zip-full gparted lame baobab fslint

# Instala o Docky e ativa a composição na inicialização do Lubuntu
sudo apt install docky compton && echo compton -b >> .config/lxsession/Lubuntu/autostart

Baixa e instala o Google Chrome para AMD64 ou i386

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && sudo dpkg -i google-chrome-stable_current_amd64.deb

wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb && sudo dpkg -i google-chrome-stable_current_i386.deb || sudo apt-get install -f

Baixa e instala o Discord

wget https://discordapp.com/api/download?platform=linux&format=deb && sudo dpkg -i discord-*.deb || sudo apt install -f

Alguns programas que uso no dia-a-dia

# Imagem e Editoração
sudo apt install scribus gimp gimp-data-extras inkscape

# Mídia
sudo apt install vlc

# Comunicação
sudo apt install telegram

# Android ADB tools
sudo apt install android-tools-adb android-tools-fastboot

# Eletrônica
sudo apt install fritzing kicad sigrok pulseview

Arduino IDE

# Instalar a IDE disponível no repo Ubuntu para baixar as dependências
sudo apt-get install arduino arduino-mk

# Download da última versão da IDE em
https://www.arduino.cc/en/Main/Software

# Descompactar o arquivo
tar -xvf arduino-1.8.?-linux64.tar.xz

# Mover para o diretório /opt
sudo mv arduino-1.8.? /opt/arduino

# Criar a entrada de menu para a IDE nova
cd /opt/arduino
sudo ./install.sh

# Adicionar o usuário aos grupos necessários
sudo usermod -a -G tty,dialout `id -un`

# Reiniciar a seção. Não é necessário reiniciar o computador.

Acertar entradas do menu

# Remove todas as entradas da seção Desenvolvimento
sudo sed -i "s/Development;//g" /usr/share/applications/*.desktop

14 de fev. de 2014

Formatando disquetes menores que 1.44Mb

Vale para qualquer micro que use drives de disquetes baseados no padrão Shugart.

No DOS/Prompt de Comando do Windows (CMD)

format <letra_unidade> /t:<num_trilhas> /n:<num_setores> /u

#5,25" DD 360Kb
format a: /t:40 /n:9 /u

#3,5" DD 720Kb
format a: /t:80 /n:9 /u
Essa postagem será atualizada com mais informações... em algum momento.

12 de fev. de 2014

Compartilhando arquivos via NFS no Xubuntu 13.10

Outro dia precisei compartilhar muitos arquivos entre duas máquinas rodando Xubuntu. Que, até onde eu sei, não tem uma opção tão prática quanto a existente no Ubuntu (compartilhar direto no menu de contexto dos diretórios)... como não tinha tempo, fui direto pro console.
Na máquina 10.0.0.1 onde estavam os arquivos que eu queria:
# instala o servidor nfs
sudo apt-get install nfs-kernel-server -y

# define o diretório a ser compartilhado e as opções
echo "/home/usuario *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports

# restringe o acesso a todos
echo "portmap: ALL" >> /etc/hosts.deny
echo "lockd: ALL" >> /etc/hosts.deny
echo "mountd: ALL" >> /etc/hosts.deny
echo "rquotad: ALL" >> /etc/hosts.deny

# libera o acesso apenas a um ou uma gama de ips
echo "portmap: 10.0.0.0/2" >> /etc/hosts.allow
echo "lockd: 10.0.0.0/2" >> /etc/hosts.allow
echo "mountd: 10.0.0.0/2" >> /etc/hosts.allow
echo "rquotad: 10.0.0.0/2" >> /etc/hosts.allow
echo "statd: 10.0.0.0/2" >> /etc/hosts.allow

# reinicia o servidor nfs
sudo /etc/init.d/nfs-kernel-server restart
Na máquina 10.0.0.2 onde os arquivos seriam acessados:
# instala o cliente nfs
sudo apt-get install nfs-common

# cria um diretório onde será montado o mapeamento
mkdir ~/pastaqualquer

# monta o mapeamento
sudo mount -t nfs 10.0.0.1:/home/usuario ~/pastaqualquer

# se quiser que monte automaticamente no boot, não era o meu caso, mas...
echo "10.0.0.1:/home/usuario /pastaqualquer nfs rw 0 0" >> /etc/fstab
Funciona :)
PS.: Eu uso a opção sync no compartilhamento para evitar arquivos corrompidos, é mais demorado, mas também é muito mais seguro.
PS. 2: Pode ser necessário dar permissões de leitura/escrita (chmod) no diretório compartilhado. Não foi o meu caso, pois usei o mesmo usuário.