Você está na página 1de 9

O comando 

mt é responsável por controlar as operações dos


drives de fitas magnéticas. No CentOS, por exemplo, este
comando poderá ser instalado a partir do pacote "mt-st.x86_64
0:1.1-14.el7":

[root@curso7:~]# yum install mt-st

Resolvendo dependências

--> Executando verificação da transação

---> O pacote mt-st.x86_64 0:1.1-14.el7 será instalado

--> Resolução de dependências finalizada

Dependências resolvidas

================================================
===============================================

 Package             Arq.                 Versão                     


Repo                Tam.

================================================
===============================================

Instalando:

 mt-st               x86_64               1.1-14.el7                 


base                45 k

Resumo da transação

================================================
===============================================
Instalar  1 Package

Tamanho total do download: 45 k

Tamanho depois de instalado: 95 k

Por exemplo, para visualizar o estado do dispositivo /dev/st0,


basta utilizar a opção –f para especificar o seu arquivo
correspondente, por fim, utilizar a opção "status":

[root@curso7:~]# mt –f /dev/st0 status

Outra opção importante a ser memorizada é a "rewind". Como


já sabemos, os dispositivos /dev/nst* não rebobibam
automaticamente após o término de uma operação de backup.
Sendo assim, podemos utilizar o comando mt para rebobiná-
las:

a fast, versatile, remote (and local) file-copying tool

[root@curso7:~]# mt –f /dev/nst0 rewind

A opção "offline" é também importante já que, além de


rebobinar, a fita também será ejetada.  

Já o comando rsync é semelhante ao comando scp, ou seja, é


possível efetuar cópias de arquivos locais e fazê-los trafegar
para um dado destino através da rede. Mas, o rsync é mais
"inteligente", no sentido que ele compara os dados na origem
com os dados eventualmente presentes no destino – seja este
local ou, até mesmo, remoto. Com isso, ele apenas copia os
arquivos que tenham sido modificados. 

Por exemplo, primeiro vamos trabalhar de forma local. Nosso


objetivo será copiar o conteúdo de /root/Estudos/ e posicionar
os arquivos em /opt/exemplo no próprio host local – de forma a
criarmos a sincronização:

# Descrição das opções

# a – modo "archive" -> equivalente ao uso das opções


rlptgoD. Isso inclui todas

# as opções necessárias e importantes, como a cópia recursiva


de arquivos,

# preservação das características dos arquivos, como links


simbólicos,

# permissões, data e hora de modificação etc.

# z – realiza a compactação dos dados durante a transferência

# v – modo detalhado – exibe as informações sobre quais


arquivos estão sendo

# transferidos.

# h – exibe a saída em um formato legível por humanos.

[root@curso7:~]# rsync –azvh Estudos /opt/exemplo/

sending incremental file list

created directory /opt/exemplo

Estudos/

Estudos/File1.txt

Estudos/File2.txt
Estudos/File3.txt

Estudos/File4.txt

Estudos/File5.txt

sent 1.02K bytes  received 150 bytes  2.35K bytes/sec

total size is 1.31K  speedup is 1.11

[root@curso7:~]# ls -l /opt/exemplo/Estudos

total 20

-rw-r--r-- 1 root root 172 Dez  2 09:53 File1.txt

-rw-r--r-- 1 root root 539 Dez  2 08:27 File2.txt

-rw-r--r-- 1 root root 527 Dez  1 18:13 File3.txt

-rw-r--r-- 1 root root  36 Dez  2 09:48 File4.txt

-rw-r--r-- 1 root root  34 Dez  2 10:15 File5.txt

Se rodarmos novamente o comando anterior, observe que


nenhum arquivo será manipulado – já que nada foi modificado:

[root@curso7:~]# rsync –azvh Estudos /opt/exemplo/

sending incremental file list

sent 169 bytes  received 17 bytes  372.00 bytes/sec

total size is 1.31K  speedup is 7.03

Agora, vamos criar o arquivo Estudos/File6.txt e, em seguida,


rodar novamente o comando rsync:

[root@curso7:~]#  cp Estudos/File3.txt Estudos/File6.txt

[root@curso7:~]# rsync –azvh Estudos /opt/exemplo/

sending incremental file list

Estudos/

Estudos/File6.txt

sent 436 bytes  received 39 bytes  950.00 bytes/sec

total size is 1.83K  speedup is 3.86

Note que, como incluímos um novo arquivo no diretório de


origem, este foi devidamente posicionado sob /opt/exemplo.

Essa mesma lógica também se aplica na manipulação


daqueles já existentes:

# Alterando o arquivo /root/Estudos/File2.txt

[root@curso7:~]#  echo "Outra alteração..." >>


Estudos/File2.txt

[root@curso7:~]# rsync –azvh Estudos /opt/exemplo/

sending incremental file list

Estudos/File2.txt

sent 464 bytes  received 36 bytes  1.00K bytes/sec

total size is 1.86K  speedup is 3.71


Agora, vamos copiar o conteúdo do diretório /etc e posicioná-lo
no diretório /Recebidos/Host_CentOS/ do servidor de backups:

[root@curso7:~]#  rsync –azvh /etc


root@backup_server:/Recebidos/Host_CentOS

sent 11.79M bytes  received 45.87K bytes  3.38M bytes/sec

total size is 32.40M  speedup is 2.74 total size is 12,415,957 


speedup is 4.00

Estando agora no servidor de backups, podemos perceber o


sucesso da execução anterior ao listarmos o conteúdo do
diretório /Recebidos/Host_CentOS/etc/:

[root@curso7:~]#  ls –l /Recebidos/Host_CentOS/etc/

total 1904

drwxr-xr-x  3 root root   4096 Sep 19 17:19 abrt

-rw-r--r--  1 root root     16 Jul  4 13:39 adjtime

drwxr-xr-x  2 root root   4096 Jul  4 13:29 akonadi

-rw-r--r--  1 root root   1518 Jun  7  2013 aliases

-rw-r--r--  1 root root  12288 Jul  4 13:45 aliases.db

....

Importante:

É importante destacar que, da forma que fizemos, o


servidor remoto também precisa possuir o pacote "rsync"
instalado. Caso não estivesse e fosse desejado realizar a
transferência de forma segura, bastaria utilizar o
comando rsync junto à opção "e" seguida pela string "ssh":

[root@curso7:~]#  rsync –e ssh –azvh /etc


root@backup_server:/Recebidos/Host_CentOS

Na máquina de origem, vamos incluir mais um arquivo


em /etc – denominado "teste.dltec"

[root@curso7:~]#  echo "teste dltec" > /etc/teste.dltec

Em seguida, rodamos novamente o comando rsync passando


também a opção "u", de forma que somente os arquivos que
sofreram alterações sejam enviados (neste exemplo, somente
o arquivo /etc/teste.dltec será enviado):

[root@curso7:~]#  rsync –aruzv /etc


root@backup_server:/Recebidos/Host_CentOS

sending incremental file list

etc/

etc/teste.dltec

sent 85.17K bytes  received 786 bytes  34.38K bytes/sec

total size is 32.40M  speedup is 376.98

Agora, vamos remover o arquivo /etc/teste.dltec no host de


origem e, em seguida, rodar novamente o comando rsync:

[root@curso7:~]#  rm –f /etc/teste.dltec

[root@curso7:~]#  rsync –aruzv /etc


root@backup_server:/Recebidos/Host_CentOS
sending incremental file list

etc/

sent 116,823 bytes  received 1,198 bytes  47,208.40 bytes/sec

total size is 12,415,957  speedup is 105.20

Note que nada é enviado ao host de destino. Estando no


servidor de backups, podemos visualizar que o arquivo
"teste.dltec" ainda encontra-se no
diretório /Recebidos/Host_CentOS/etc:

[root@curso7:~]#  ls –l /Recebidos/Host_CentOS/etc

-rw-r--r-- 1 root root 12 Dec  2 16:10


/Recebidos/Host_CentOS/etc/teste.dltec

Para resolver esta questão, incluímos a opção "--delete" ao


comando rsync:

[root@curso7:~]#  rsync –auzv --delete /etc


root@backup_server:/Recebidos/Host_CentOS

sending incremental file list

deleting etc/teste.dltec

sent 116,832 bytes  received 1,222 bytes  78,702.67 bytes/sec

total size is 12,415,957  speedup is 105.17

Neste momento, o arquivo "teste.dltec" já não se encontrará


disponível no servidor de backups.

Importante:
Como todos os procedimentos que são realizados
costumeiramente, pode ser interessante a criação de
scritps de shell para automatizar os processos de backup.

Porém, é importante ressaltar a importância de se prestar


bastante atenção no uso do "shebang" (ou
"hashpling") /bin/sh nesses scripts. Se a intenção for fazer
com que os scripts sejam interpretados pelo Bash,
assegure-se que este arquivo esteja realmente apontando
para o shell em questão. Isso é dito porque, em algumas
distribuições, /bin/sh também poderá estar apontando
para /bin/dash, por exemplo.

No CentOS 7, por exemplo, vemos que /bin/sh é um link


simbólico para /bin/bash:

[root@curso7:~]#  ls -l /bin/sh

lrwxrwxrwx 1 root root 4 Set 19 17:17 /bin/sh -> bash

Já no Debian 9.11, por exemplo, este mesmo arquivo é um


link simbólico para /bin/dash:

[root@curso7:~]#  ls -l /bin/sh

lrwxrwxrwx 1 root root 4 Jan 24  2017 /bin/sh -> dash

Você também pode gostar