segunda-feira, 28 de outubro de 2019

Fazendo automount no Raspberry

Neste post vou mostrar como configurar o Raspberry para que ele sempre monte um disco rígido (externo) conectado via USB.

Você irá precisar do pacote autofs, que pode ser instalado usando o comando abaixo:
sudo apt-get install autofs
Para saber qual é o dispositivo do seu disco rígido, você pode utilizar a saída do dmesg que irá mostrar algo semelhante ao conjunto de linhas abaixo
[  228.147834] scsi 0:0:0:0: Direct-Access     ST2000DM 001-1CH164            PQ: 0 ANSI: 2 CCS
[  228.149532] sd 0:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
[  228.150010] sd 0:0:0:0: [sda] Write Protect is off
[  228.150031] sd 0:0:0:0: [sda] Mode Sense: 00 38 00 00
[  228.150702] sd 0:0:0:0: [sda] Asking for cache data failed
[  228.150727] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  228.169859]  sda: sda1
[  228.173948] sd 0:0:0:0: [sda] Attached SCSI disk
[  228.177756] sd 0:0:0:0: Attached scsi generic sg0 type 0
ou pode utilizar o fdisk com a opção -l que vai mostrar algo
$ sudo fdisk -l
Disk /dev/sda: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: 001-1CH164      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x04db6408

Device     Boot Start        End    Sectors  Size Id Type
/dev/sda1        2048 3907026943 3907024896  1,8T  7 HPFS/NTFS/exFAT

Configurando autofs

Por padrão, autofs monta dispositivos em /var/autofs/. 
Precisamos configurá-lo para montar os dispositivos.

1- começamos editando o arquivo /etc/auto.master e acrescentado a linha abaixo no final do arquivo. A linha inserida contem diversos campos separados por espaços. O primeiro campo é o caminho sob o qual autofs monta os dispositivos. O segundo campo indica o arquivo de configuração para esta entrada. O último campo lista as opções para este diretório. timeout indica o tempo limite mínimo até que os itens sejam desmontados.

 /mnt   /etc/auto.removable --timeout=2,sync,nodev,nosuid
2- Agora acrescentamos no arquivo de reconfiguração o disco rígido. O nome do arquivo de configuração é /etc/auto.removable neste nosso exemplo. Ele é definido no passo (1) mostrado anteriormente. Este arquivo pode ter diversas linhas. Uma para cada partição que você quiser montar. Como no nosso caso só temos uma partição, o arquivo terá somente uma linha (como mostrado abaixo). A linha é composta por diversos campos. O primeiro campo indica o ponto de montagem (local no seu filesystem onde ficará o acesso para a partição), o segundo campo tem opções (use man 5 autofs para mais detalhes) e o terceiro campo é o dispositivo a ser montado (que a gente descobriu com o fdisk).
SSD            -fstype=ntfs-3g            :/dev/sda1

4- Reinicie o autofs e a partição deve ser montada se não houve qualquer erro nos passos acima.

 sudo service autofs restart



domingo, 20 de outubro de 2019

Backup de um diretório para outro servidor utilizando SSH

Se você tem dois computadores linux é possível fazer o backup de um computador no outro utilizando um aplicativo gratuito e que é facilmente instalado.
Vou mostrar neste post como fazer isto no Ubuntu (outras distribuições o funcionamento é parecido, mas a instalação é muitas vezes diferente).
O rsync permite transferir e sincronizar dados entre computadores linux (existe uma instalação do rsync para o Windows, mas não é muito comum vê-la). O comando pode ser usado com o protocolo SSH, que criptografa a conexão e assim evita que alguém possa ler seus dados. Note que o acesso é via TCP-IP, isto significa que os computadores podem estar em dois lugares bem diferentes no mundo.
O rsync também fornece uma grande quantidade de opções que podem ser usadas, como modo de arquivamento, modo de backup, compactação de dados durante a transferência etc.
Vou mostrar aqui um exemplo simples que é normalmente o que eu utilizo.
Neste exemplo considero que o backup será feito a partir do meu computador chamado mycomp para outro computador que chamo myserver.

Instalação do rsync

A instalação no Ubuntu/Debian é feita com um comando simples mostrado abaixo. Neste nosso exemplo ele irá rodar no mycomp.

h3dema@mycomp $ sudo apt-get install rsync

Instalação do cliente SSH

Para utilizar a conexão via SSH, você irá precisar ter o cliente SSH instalado no computador que irá rodar o comando rsync. Neste nosso exemplo é o computador mycomp. Em muitas versões este cliente já está instalado, mas se não estiver use o comando abaixo para instalar

h3dema@mycomp $ apt-get install openssh-client

Vamos testar se o cliente está funcionando. Para isto utilizamos o comando abaixo. Veja que meu usuário é h3dema e meu servidor é myserver. Você deve trocar estes dois valores para o seu usuário e computador. Note que o nome do servidor pode ser o nome completo na rede, tipo myserver.mydomain.com.br.

h3dema@mycomp $ ssh h3dema@myserver


Instalação do servidor SSH

Você precisa que o computador myserver tenha o servidor SSH instalado e ativo. A instalação é bem simples também bastando um comando.

h3dema@myserver $ apt-get install openssh-server
h3dema@myserver $ service sshd start

Fazendo o backup

O commando que eu utilizo para fazer o backup é mostrado abaixo.
O parâmetro “-a” é de archive, ele irá copiar recursivamente, copia links como links e muito mais.
O parâmetro “-v” é de verbose, que força o rsync a mostrar o que ele esta fazendo. Eu gosto de habilitá-lo porque assim consigo acompanhar o que esta sendo backupeado.
O parâmetro “—delete-excluded” ira apagar no destino os arquivos que foram removidos na origem.
“-e ssh” indica para o rsync que ele deve utilizar o cliente SSH.
 O comando irá copiar o diretório “mydir” na origem (e todos os subdiretórios e arquivos) para o computador myserver, utilizando o usuário h3dema e vai colocar estes dados da origem no diretório “mynewdir” no destino.

h3dema@mycomp $ rsync -av --delete-excluded -e ssh ./mydir h3dema@myserver:mynewdir

Dependendo de como for sua configuração do SSH o comando acima irá utilizar um certificado local para fazer o login no computador remoto, ou irá apresentar uma linha de login onde você deverá digitar a senha do usuário h3dema.

Desabilitar ModemManager no Ubuntu

 ModemManager provides a unified, high-level interface to control all kinds of modems: 4G/5G modems (LTE/NR) 3G modems NB-IoT / Cat-M1 modul...