Você está na página 1de 8

O comando 

cpio ("copy in, copy out") também costuma ser


utilizado para criar agrupamentos de arquivos.

No exemplo a seguir, estaremos criando o arquivo "cpio" do


conteúdo presente no diretório /root/Dltec. Vamos visualizar
primeiramente os seus arquivos:

[root@curso7:~]# ls –l Dltec

total 0

-rw-r--r-- 1 root root 0 Dez  5 15:16 Teste1.txt

-rw-r--r-- 1 root root 0 Dez  5 15:16 Teste2.txt

-rw-r--r-- 1 root root 0 Dez  5 15:16 Teste3.txt

Agora, a partir de /root, aplicaremos o comando cpio da


seguinte maneira: ele irá receber em sua STDIN a listagem do
diretório (a partir do comando ls) e, em seguida, irá
redirecionar este conteúdo ao arquivo "teste.cpio", a ser criado
no diretório corrente: 

[root@curso7:~]# ls Dltec/*.txt | cpio -ov > teste.cpio

Dltec/Teste1.txt

Dltec/Teste2.txt

Dltec/Teste3.txt

1 block

A opção -o do comando também poderá ser substituída por --


create, indicando a utilização do comando em modo "copy-out"
(para gerar o arquivo em questão). Já a opção –v (ou --verbose)
é utilizada para que sejam discriminados na STDOUT os
resultados dos procedimentos realizados.

Se quisermos visualizar o conteúdo de um arquivo "cpio",


utilizamos o comando da seguinte forma:

[root@curso7:~]# cpio –itv

-rw-r--r--   1 root     root            0 Dec  5 15:16 Dltec/Teste1.txt

-rw-r--r--   1 root     root            0 Dec  5 15:16 Dltec/Teste2.txt

-rw-r--r--   1 root     root            0 Dec  5 15:16 Dltec/Teste3.txt

No exemplo a seguir, estaremos utilizando o


comando cpio para extrair o conteúdo do arquivo "teste.cpio"
no diretório Dltec2. Desta forma, a partir deste último diretório,
lançamos:

[root@curso7:~/Dltec2]# cpio –ivd < ../teste.cpio

Dltec/Teste1.txt

Dltec/Teste2.txt

Dltec/Teste3.txt

1 block

Neste momento é criado o subdiretório Dltec já contendo todos


os arquivos que foram extraídos.

O comando cpio também poderá ser usado para realizar a


cópia de uma árvore inteira de diretórios e posicionar estas
cópias em um outro local. Acompanhe:
[root@curso7:~]# mkdir /mnt/dltec

[root@curso7:~]# cd /etc

# Copiando todos os arquivos e

[root@curso7:~]# find . –depth | cpio –pmvd /mnt/dltec

Neste momento, todos os arquivos e subdiretórios de /etc/ são


copiados para o diretório /mnt/dltec.

O comando dd é também bastante importante, já que poderá


ser utilizado para realizar cópias de discos e/ou partições
inteiras. Observe o cenário:

[root@curso7:~]# lsblk –f

NAME            FSTYPE      LABEL UUID                                  


MOUNTPOINT

sda                                                                     

├─sda1          xfs               58ab4873-129a-4fb4-920a-


a5810589a76d   /boot

└─sda2          LVM2_member       Jnbyz1-w8ZE-rFBg-lC9w-


Lfl3-iCag-QIUG3j

  ├─centos-root xfs               67162f2b-fedc-4abc-89e6-


3ca426c92736   /

  ├─centos-swap swap              3adf0d1f-81b4-4ad2-9b4d-


93c1358726c9   [SWAP]

  └─centos-home xfs               39b37893-ed8e-4bc3-b409-


d0f939a05de8   /home
sdb                                                                     

└─sdb1          ext4              0dca501f-1ae3-4675-8b14-


08dd15e5445b  

sdc                                                                      

└─sdc1          ext4              0dca501f-1ae3-4675-8b14-


08dd15e5445b  

sdd                                                                     

└─sdd1          ext4              a04c299d-57f6-4346-afef-


9a0a1346edea  

sr0             

Vamos montar o sistema de arquivos presente na


partição /dev/sdb1 em /mnt e gravar alguns arquivos.
Acompanhe:

# Montando o sistema de arquivos contido em /dev/sdb1

[root@curso7:~]# mount /dev/sdb1 /mnt

# Copiando conteúdos de /etc/ para /mnt

[root@curso7:~]# cp -r /etc/* /mnt/

# Visualização do conteúdo parcial de /mnt

[root@curso7:~]# ls –l /mnt

total 1920

drwxr-xr-x  3 root root   4096 Dez  2 11:49 abrt


-rw-r--r--  1 root root     16 Dez  2 11:49 adjtime

drwxr-xr-x  2 root root   4096 Dez  2 11:49 akonadi

-rw-r--r--  1 root root   1518 Dez  2 11:49 aliases

-rw-r--r--  1 root root  12288 Dez  2 11:49 aliases.db

....

# Desmontagem do sistema de arquivos montado em /mnt

[root@curso7:~]# umount /mnt

Agora vamos copiar todo o conteúdo da


partição /dev/sdb1 (incluindo espaços não utilizados) e
posicioná-lo em /dev/sdc1. Para isso, utilizamos o
comando dd da seguinte forma:

# of = indica o dispositivo que irá receber os dados

# if = indica o dispositivo de origem – que irá oferecer os dados

[root@curso7:~]# dd if=/dev/sdb1 of=/dev/sdc1

16775168+0 registros de entrada

16775168+0 registros de saída

8588886016 bytes (8,6 GB) copiados, 163,809 s, 52,4 MB/s

Vamos montar o sistema de arquivos da


partição /dev/sdc1 em /mnt e, em seguida, listar o conteúdo que
fora copiado da partição /dev/sdb1:

[root@curso7:~]# mount /dev/sdc1 /mnt


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

total 1920

drwxr-xr-x  3 root root   4096 Dez  2 11:49 abrt

-rw-r--r--  1 root root     16 Dez  2 11:49 adjtime

drwxr-xr-x  2 root root   4096 Dez  2 11:49 akonadi

-rw-r--r--  1 root root   1518 Dez  2 11:49 aliases

-rw-r--r--  1 root root  12288 Dez  2 11:49 aliases.db

....

[root@curso7:~]# umount /mnt

Agora, vamos criar o backup de todo o disco /dev/sdb e gerar o


arquivo de saída "MeuBackupSda.img" no diretório corrente:

[root@curso7:~]# dd if=/dev/sdb of=MeuBackUpSdb.img

16777216+0 registros de entrada

16777216+0 registros de saída

8589934592 bytes (8,6 GB) copiados, 47,2743 s, 182 MB/s

[root@curso7:~]# ls –lh MeuBackUpSdb.img

-rw-r--r-- 1 root root 8,0G Dez  2 12:27 MeuBackUpSdb.img

Em seguida, vamos posicionar o conteúdo deste arquivo


gerado no disco /dev/sdd:
[root@curso7:~]# dd if=MeuBackUpSdb.img of=/dev/sdd

16777216+0 registros de entrada

16777216+0 registros de saída

8589934592 bytes (8,6 GB) copiados, 158,461 s, 54,2 MB/s

# Montando /dev/sdd1 em /mnt

[root@curso7:~]# mount /dev/sdd1 /mnt

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

total 1920

drwxr-xr-x  3 root root   4096 Dez  2 11:49 abrt

-rw-r--r--  1 root root     16 Dez  2 11:49 adjtime

drwxr-xr-x  2 root root   4096 Dez  2 11:49 akonadi

-rw-r--r--  1 root root   1518 Dez  2 11:49 aliases

-rw-r--r--  1 root root  12288 Dez  2 11:49 aliases.db

Para finalizar, vamos agora criar uma cópia do MBR do


disco /dev/sda (presente em seus primeiros 512 bytes) e
posicionaremos este conteúdo no arquivo "MbrDisco1.img":

[root@curso7:~]# dd if=/dev/sda of=MbrDisco1.img bs=512


count=1

1+0 registros de entrada

1+0 registros de saída


512 bytes (512 B) copiados, 0,0003341 s, 1,5 MB/s

[root@curso7:~]# ls –lh MbrDisco1.img

-rw-r--r-- 1 root root 512 Dez  2 12:57 MbrDisco1.img 

A opção "bs" é utilizada para indicar ao comando dd o tamanho


de bytes que deverá ser manipulado por vez (512 bytes, neste
exemplo). Como dejamos obter os primeiros 512 bytes,
especificamos na opção "count" o valor 1.

Apenas como mais um exemplo da utilização das opções "bs"


e "count", vamos imaginar que precisamos criar um arquivo
com um determinado tamanho (1 GB, por exemplo). Podemos
utilizar o arquivo especial /dev/zero, que irá preencher o arquivo
a ser criado ("teste.txt") com valores zero.

Sendo assim, vamos trabalhar com blocos com 1 MB de


tamanho ("bs"). Ou seja, serão manipulados 1 megabyte por
vez durante a operação do comando dd. Em seguida,
especificamos o "count" com o valor 1024 – para que sejam
capturados 1024 Megabytes ao total a partir desses blocos
(1MB * 1024 vezes = 1024 MB = 1 GB):

[root@curso7:~]# dd if=/dev/zero of=teste bs=1M count=1024

1024+0 registros de entrada

1024+0 registros de saída

1073741824 bytes (1,1 GB) copiados, 1,51772 s, 707 MB/s

[root@curso7:~]# ls –lh teste

-rw-r--r-- 1 root root 1,0G Dez  2 13:25 teste

Você também pode gostar