Módulo 7 - Roteiro 1

Tarefas

No final deste módulo você deve submeter em um ÚNICO arquivo PDF os seguintes prints:

  • Atividade 7.1: passo 13.
  • Atividade 7.2: passo 11.
  • Atividade 7.3: passo 8.
  • Atividade 7.4: passo 9.
  • Atividade 7.5: passo 10.

Atividade 7.1 – Aplicando o Software RAID 0 no Kali Linux

Nesta atividade, vamos usar o Terminal para descobrir como implementar o RAID 0 no Kali Linux com 2 partições de 100M cada uma. Importante: nos passos do Terminal que você deve apertar somente “Enter”, o espaço ficará em branco após os “:”.

Mas antes de iniciar a atividade, vamos precisar criar dois novos discos para a máquina virtual. Para isso a VM deve estar desligada e então considere os seguintes passos:

Pré-atividade 1) Abra o virtual box e selecione a VM do Kali Linux.

Pré-atividade 2) Abra as configurações da VM (Settings). Selecione no menu vertical, lateral, esquerdo a opção Storage (Armazenamento).

Pré-atividade 3) Existe apenas um disco, com nome "Kali Linux.vdi". Crie dois novos discos com 100MB cada, clicando no ícone "Add hard disk". Crie um novo disco com nome "Disk1" e escolha-o. Faça o mesmo procedimento criando um segundo disco "Disk2".

Vamos começar a atividade inicializando nosso Kali Linux.

1) Abra o Terminal e execute o seguinte comando para ser super usuário:

┌──(aluno㉿kali)-[~]
└─$ sudo -i
[sudo] senha para aluno:

2) Agora temos dois novos discos nos sistema. Você pode observar isso listando os dispositivos do tipo "sb" no diretório "dev":

┌──(root㉿kali)-[~]
└─# ls /dev/sd*

Observe que aparecem os dispositivos "sdb" e "sdc" (sem partições). Você também pode ver os discos disponíveis (os tamanhos dos discos /dev/sdb e /dev/sdc podem variar um pouco):

┌──(root㉿kali)-[~]
└─# fdisk -l

4) Agora criaremos as 2 partições primárias de 100M cada uma para usarmos no RAID0 (aperte “ENTER” nos campos onde nada é inserido). Elas serão sdb (e logo a seguir faremos para sdc):

┌──(root㉿kali)-[~]
└─# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.41.1).                                                            
Changes will remain in memory only, until you decide to write them.                              
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap                                
partitions on this disk.                                                                         

Command (m for help): n                                                                            
Partition type                                                                                     
   p   primary (0 primary, 0 extended, 4 free)                                                     
   e   extended (container for logical partitions)                                                 
Select (default p):                                                                                

Using default response p.                                                                          
Partition number (1-4, default 1):                                                                 
First sector (2048-4194303, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4194303, default 4194303):

Created a new partition 1 of type 'Linux' and of size 100 MiB.

5) Veja como ficaram as partições agora:

Command (m for help): p
Disk /dev/nvme1n1: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c63bfb2

Device         Boot  Start    End Sectors  Size Id Type
/dev/sdb1        2048 206847  204800  100M 83 Linux

6) Para finalizar, devemos aplicar as modificações na tabela de partições e fazer com que o Kernel fique ciente desta atualização com os seguintes comandos:

Command (m for help): w
The partition table has been altered.
Syncing disks.

7) Repita o procedimento a partir do passo 4, mas agora para o dispositivo "sdc".

8) Agora que temos as partições que formarão o RAID0 (sdb1 e sdc1), vamos configurar as duas novas partições em Raid 0 com o utilitário mdadm. Note que o RAID0 é determinado em --level=0.

Instale o "mdadm" para gerenciamento de dispositivos RAID:

┌──(root㉿kali)-[~]
└─# apt install mdadm

Crie o dispositivo RAID do tipo zero:

┌──(root㉿kali)-[~]
└─# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

Agora você tem um array /dev/md0 com 2 partições configuradas em Raid 0. Para testar e verificar o disco criado com RAID 0 no Kali Linux, temos de executar os próximos passos.

9) Verifique se o dispositivo RAID está carregado no sistema, digitando o seguinte comando:

┌──(root㉿kali)-[~]
└─# ls -l /dev/md0
brw-rw---- 1 root disk 9, 0 fev 18 12:04 /dev/md0

10) Agora você pode formatar o dispositivo RAID 0 com um sistema de arquivos, como ext4. Use o seguinte comando para formatar o dispositivo:

┌──(root㉿kali)-[~]
└─# mkfs.ext4 /dev/md0
mke2fs 1.47.2 (1-Jan-2025)
Creating filesystem with 200704 1k blocks and 50200 inodes
Filesystem UUID: 2af2ba0a-a2bc-4054-bce9-76b569b15ede
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

11) Crie um diretório onde deseja montar o dispositivo RAID 0, por exemplo:

┌──(root㉿kali)-[~]
└─# mkdir /mnt/raid0

12) Monte o dispositivo RAID 0 no diretório que você criou usando o seguinte comando:

┌──(root㉿kali)-[~]
└─# mount /dev/md0 /mnt/raid0

13) Agora você pode acessar o disco RAID 0 montado em /mnt/raid0. Use comandos como ls para listar o conteúdo do disco e df -h para verificar o espaço disponível:

┌──(root㉿kali)-[~]
└─# df -h
Sist. Arq.       Tam. Usado Disp. Uso% Montado em
udev             1,9G     0  1,9G   0% /dev
tmpfs            388M  996K  387M   1% /run
/dev/nvme0n1p1    19G   18G  511M  98% /
tmpfs            1,9G     0  1,9G   0% /dev/shm
tmpfs            5,0M     0  5,0M   0% /run/lock
tmpfs            1,9G  424K  1,9G   1% /tmp
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-journald.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-udev-load-credentials.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-sysctl.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-tmpfiles-setup-dev-early.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-tmpfiles-setup-dev.service
/dev/nvme0n1p15  124M  286K  124M   1% /boot/efi
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-tmpfiles-setup.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/serial-getty@ttyS0.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/getty@tty1.service
tmpfs            388M  120K  388M   1% /run/user/0
tmpfs            388M  128K  388M   1% /run/user/1001
/dev/md0         179M   63K  165M   1% /mnt/raid0

Finalmente, temos nossa partição em RAID0 (última linha do comando anterior) de armazenamento para livre uso (não ficou com 200M, 100M + 100M, porque alguns MegaBytes são reservados para o uso desta unidade)!

14) Veja como ficou a configuração de discos - os tamanhos dos discos /dev/sdb1 e /dev/sdc1 podem variar um pouco (NÃO SE ESQUEÇA DE PRINTAR ESTE PASSO!):

┌──(root㉿kali)-[~]
└─# fdisk -l                                                            
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c63bfb2

Device         Boot  Start    End Sectors  Size Id Type
/dev/sdb1        2048 206847  204800  100M 83 Linux

Disk /dev/sdc: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c63bfb2

Device         Boot  Start    End Sectors  Size Id Type
/dev/sdc1        2048 206847  204800  100M 83 Linux

Disk /dev/sda: 19 GiB, 20401094656 bytes, 39845888 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9FFA977A-4F2F-44A0-BCAC-15A77352798A

Device           Start      End  Sectors  Size Type
/dev/sda1  262144 39845854 39583711 18,9G Linux filesystem
/dev/sda2   2048     8191     6144    3M BIOS boot
/dev/sda3   8192   262143   253952  124M EFI System

Partition table entries are not in disk order.


Disk /dev/md0: 196 MiB, 205520896 bytes, 401408 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes

Veja que o disco RAID /dev/md0 foi criado!

15) Antes de passar para a próxima atividade, vamos desfazer o dispositivo RAID 0 criado:

┌──(aluno㉿kali)-[~]
└─$ umount /mnt/raid0

┌──(aluno㉿kali)-[~]
└─$ mdadm --stop /dev/md0

┌──(aluno㉿kali)-[~]
└─$ mdadm --zero-superblock /dev/sdb1 /dev/sdc1

16) Feche o Terminal. Caso você queira, pode implementar esta solução usando 2 discos rígidos físicos no seu computador. Para isso, você deverá identificar corretamente as partições e aplicar a mesma lógica do laboratório.

Parabéns! Agora, você sabe como implantar o RAID0 no Linux!  

Atividade 7.2 – Aplicando o Software RAID 1 no Kali Linux

Nesta atividade, vamos usar o Terminal para descobrir como implementar o RAID 1 no Kali Linux com 2 partições de 100M cada uma.

Vamos começar inicializando nosso Kali Linux. Nesta atividade vamos utilizar os 2 discos já criados e inseridos na VM, realizados na atividade 1 deste roteiro.

1) Abra o Terminal e execute o seguinte comando para ser super usuário:

┌──(aluno㉿kali)-[~]
└─$ sudo -i
[sudo] senha para aluno:

2) Confira a configuração dos discos (os tamanhos dos discos /dev/sdb1 e /dev/sdc1, que devem estar com aproximadamente 100Mb):

┌──(root㉿kali)-[~]
└─# fdisk -l                                                            
Disk /dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c63bfb2

Device         Boot  Start    End Sectors  Size Id Type
/dev/sdb1        2048 206847  204800  100M 83 Linux

Disk /dev/sdc: 2 GiB, 2147483648 bytes, 4194304 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9c63bfb2

Device         Boot  Start    End Sectors  Size Id Type
/dev/sdc1        2048 206847  204800  100M 83 Linux

Disk /dev/sda: 19 GiB, 20401094656 bytes, 39845888 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9FFA977A-4F2F-44A0-BCAC-15A77352798A

Device           Start      End  Sectors  Size Type
/dev/sda1  262144 39845854 39583711 18,9G Linux filesystem
/dev/sda2   2048     8191     6144    3M BIOS boot
/dev/sda3   8192   262143   253952  124M EFI System

Partition table entries are not in disk order.

3) Vamos criar o array RAID 1 com os dispositivos e sdb1 e sdc1 usando o seguinte comando:

┌──(root㉿kali)-[~]
└─# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
To optimalize recovery speed, it is recommended to enable write-indent bitmap, do you want to enable it now? [y/N]? y
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
Continue creating array [y/N]? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

Note que o RAID1 é determinado em --level=1.

4) Verifique se o dispositivo RAID está carregado no sistema, digitando o seguinte comando:

┌──(root㉿kali)-[~]
└─# ls -l /dev/md1
brw-rw---- 1 root disk 9, 1 out 6 16:53 /dev/md1

5) Verifique o status do RAID (md1) recém-criado usando o seguinte comando:

┌──(root㉿kali)-[~]
└─# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid1 nvme1n1p4[1] nvme1n1p3[0]
      101376 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

unused devices: <none>

Isso mostrará informações resumidas sobre todos os arrays RAID presentes no sistema. Certifique-se de que o array RAID 1 (md1) esteja listado como ativo.

6) Para poder usar o array md1, formate o array RAID com o sistema de arquivos de sua escolha. Por exemplo, para formatar como ext4, use o seguinte comando:

┌──(root㉿kali)-[~]
└─# mkfs.ext4 /dev/md1
mke2fs 1.47.2 (1-Jan-2025)
Creating filesystem with 101376 1k blocks and 25376 inodes
Filesystem UUID: 11177e82-b1ac-4f49-9d22-8f5be016009b
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

7) Crie um ponto de montagem para o array RAID. Por exemplo:

┌──(root㉿kali)-[~]
└─# mkdir /mnt/raid1

8) Monte o array RAID no ponto de montagem recém-criado e na sequência veja que o /dev/md1 está presente no modo RAID1 (NÃO SE ESQUEÇA DE PRINTAR ESTE PASSO!):

┌──(root㉿kali)-[~]
└─# mount /dev/md1 /mnt/raid1

┌──(root㉿kali)-[~]
└─# df -h
Sist. Arq.       Tam. Usado Disp. Uso% Montado em
udev             1,9G     0  1,9G   0% /dev
tmpfs            388M 1008K  387M   1% /run
/dev/nvme0n1p1    19G   18G  511M  98% /
tmpfs            1,9G     0  1,9G   0% /dev/shm
tmpfs            5,0M     0  5,0M   0% /run/lock
tmpfs            1,9G  556K  1,9G   1% /tmp
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-journald.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-udev-load-credentials.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-sysctl.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-tmpfiles-setup-dev-early.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-tmpfiles-setup-dev.service
/dev/nvme0n1p15  124M  286K  124M   1% /boot/efi
tmpfs            1,0M     0  1,0M   0% /run/credentials/systemd-tmpfiles-setup.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/serial-getty@ttyS0.service
tmpfs            1,0M     0  1,0M   0% /run/credentials/getty@tty1.service
tmpfs            388M  120K  388M   1% /run/user/0
tmpfs            388M  128K  388M   1% /run/user/1001
/dev/md0         179M   63K  165M   1% /mnt/raid0
/dev/md1          88M   46K   81M   1% /mnt/raid1

Finalmente, temos nossa partição em RAID1 com 88M de armazenamento para livre uso (não ficou com 100M porque alguns MegaBytes são reservados para o uso desta unidade)!

9) Feche o Terminal. Caso você queira, pode implementar esta solução usando 2 discos rígidos físicos no seu computador. Para isso, você deverá identificar corretamente as partições e aplicar a mesma lógica do laboratório.  

Atividade 7.3 – Replicando conteúdo de pastas no Kali Linux com o Rsync de forma manual

Nesta atividade, vamos usar o Terminal para descobrir como implementar a replicação do conteúdo de uma pasta para outra no Kali Linux.

Vamos começar inicializando nosso Kali Linux.

1) Abra o Terminal e execute o seguinte comando para ser super usuário:

┌──(aluno㉿kali)-[~]
└─$ sudo -i
[sudo] senha para aluno:

2) Navegue até a pasta Documentos:

┌──(root㉿kali)-[~]
└─# cd /home/aluno/Documentos/

3) Crie duas pastas na pasta Documentos com todas as permissões (leitura, escrita e execução com o comando “-m 777”) para que não tenhamos problemas na replicação. As pastas são “PastaA” e “PastaB” (confira que foram criadas):

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# mkdir -m 777 PastaA PastaB

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# ls            
PastaA  PastaB

4) Navega até a PastaA e cria um arquivo Teste.txt com o programa nano:

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# cd PastaA                

┌──(root㉿kali)-[/home/aluno/Documentos/PastaA]
└─# nano Teste.txt

5) Na janela do nano, escreva:

Teste de Pasta A para Pasta B

Em seguida, aperte “Ctrl + x”, “s” para salvar e “Enter” para confirmar.

6) Liste o conteúdo da “PastaA” para ver que foi criado o arquivo “Teste.txt”. Em seguida, navegue até a “PastaB” e também liste essa pasta para verificar que está vazia:

┌──(root㉿kali)-[/home/aluno/Documentos/PastaA]
└─# ls
Teste.txt

┌──(root㉿kali)-[/home/aluno/Documentos/PastaA]
└─# cd /home/aluno/Documentos/PastaB

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls

7) Replique o conteúdo da (arquivo “Teste.txt”) para a “PastaB”:

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# rsync -avz /home/aluno/Documentos/PastaA/Teste.txt /home/aluno/Documentos/PastaB 
sending incremental file list
Teste.txt

sent 140 bytes  received 35 bytes  350,00 bytes/sec
total size is 30  speedup is 0,17

O comando conta com os seguintes:

  • rsync: Este é o comando principal que invoca o utilitário rsync para sincronização de arquivos e diretórios.
  • -avz: Estas são opções que modificam o comportamento do rsync: -a: Modo de transferência no qual os arquivos são transferidos de forma recursiva e preservando as permissões, proprietários, grupos e timestamps. -v: Modo verboso que exibe informações detalhadas durante a execução do rsync, mostrando os arquivos que estão sendo sincronizados. -z: Compressão durante a transferência, o que pode reduzir o tempo de transferência para arquivos grandes ou em redes de baixa largura de banda.
  • /home/aluno/Documentos/PastaA/Teste.txt: Este é o arquivo de origem que será sincronizado.
  • /home/aluno/Documentos/PastaB: Este é o diretório de destino onde os arquivos e diretórios da pasta de origem serão copiados. Se os arquivos na pasta de destino já existirem, eles serão atualizados ou substituídos para corresponder aos da pasta de origem durante a sincronização.

8) Finalmente, liste o conteúdo da “PastaB” e verifique que o conteúdo da “PastaA” (arquivo “Teste.txt”) foi replicado na “PastaB” (NÃO SE ESQUEÇA DE PRINTAR ESTE PASSO!):

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls
Teste.txt

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# cat Teste.txt                   
Teste de Pasta A para Pasta B

9) Apague somente o arquivo Teste.txt presente na PastaB:

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls
Teste.txt

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# rm *                                                                            
zsh: sure you want to delete the only file in /home/aluno/Documentos/PastaB [yn]? y

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls

10) Perceba que o arquivo Teste.txt ainda está presente em /home/aluno/Documentos/PastaA. Deixe assim mesmo porque esse arquivo será usado na próxima Atividade!

Parabéns! Neste ponto você conseguiu efetuar a replicação com RSYNC com sucesso! Caso você queira, pode conferir o resultado abrindo as pasta.  

Atividade 7.4 – Replicando conteúdo de pastas no Kali Linux com o Rsync automaticamente a cada minuto

Nesta atividade, vamos usar o Terminal para descobrir como implementar a replicação do conteúdo de uma pasta para outra no Kali Linux.

Vamos começar inicializando nosso Kali Linux.

1) Abra o Terminal e execute o seguinte comando para ser super usuário:

┌──(aluno㉿kali)-[~]
└─$ sudo -i
[sudo] senha para aluno:

2) Navegue até Documentos e veja que está presente a “PastaA” com o arquivo “Teste.txt” e a “PastaB” vazia:

┌──(root㉿kali)-[~]
└─# cd /home/aluno/Documentos                                                       

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# ls
PastaA  PastaB

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# cd /home/aluno/Documentos/PastaA

┌──(root㉿kali)-[/home/aluno/Documentos/PastaA]
└─# ls
Teste.txt

┌──(root㉿kali)-[/home/aluno/Documentos/PastaA]
└─# cd /home/aluno/Documentos/PastaB

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls

3) Vamos criar um script na pasta Documentos (pode ser qualquer outra pasta do seu agrado) chamado sync_script.sh. Ele será executado automaticamente a cada minuto pelo Kali Linux. Nesse script estará implementada a replicação via o Rsync da “PastaA” para a “PastaB”:

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# cd /home/aluno/Documentos 

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# nano sync_script.sh

4) Crie o script no nano:

#!/bin/bash

rsync -avz /home/aluno/Documentos/PastaA/ /home/aluno/Documentos/PastaB/

Em seguida, aperte “Ctrl + x”, “s” para salvar e “Enter” para confirmar.

5) Vamos tornar o script executável, utilizando o comando:

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# chmod +x sync_script.sh

6) Vamos abrir o agendador de tarefas do Kali Linux com o próximo comando. Será solicitado que você escolha um editor de texto padrão. Selecione o editor nano.

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# crontab -e
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
Choose 1-3 [1]: 1
no crontab for root - using an empty one
crontab: installing new crontab

Adicione a seguinte linha no arquivo de texto aberto (pode ser na última linha):

* * * * * /home/aluno/Documentos/sync_script.sh

A linha mostrada acima fará que nosso script seja executado a cada minuto! Para maiores informações de como mudar esse parâmetro, veja: https://cron.help/

Em seguida, aperte “Ctrl + x”, “s” para salvar e “Enter” para confirmar.

7) Aguarde por 1 minuto (pode ser que demore um pouquinho mais) e abra um segundo Terminal, repita o passo 1, navegue até a Pasta B, que estava vazia, e verifique que agora conta com o arquivo “Teste.txt”:

┌──(aluno㉿kali)-[~]
└─$ sudo -i
[sudo] senha para aluno:

┌──(root㉿kali)-[~]
└─# cd /home/aluno/Documentos/PastaB 

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls
Teste.txt

8) Volte ao Terminal 1, navegue até a Pasta A e crie o seguinte arquivo txt:

┌──(root㉿kali)-[~]
└─# cd /home/aluno/Documentos/PastaA

┌──(root㉿kali)-[/home/aluno/Documentos/PastaA]
└─# nano Teste2.txt

Adicione a seguinte linha no arquivo de texto:

Novo teste!

Em seguida, aperte “Ctrl + x”, “s” para salvar e “Enter” para confirmar. Esse novo arquivo deve também ser replicado automaticamente em até 1 minuto para a pasta “PastaB”.

9) Volte ao Terminal 2, espere no máximo 1 minuto e verifique o conteúdo da “PastaB” (NÃO SE ESQUEÇA DE PRINTAR ESTE PASSO!).

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# ls
Teste1.txt  Teste2.txt

┌──(root㉿kali)-[/home/aluno/Documentos/PastaB]
└─# cd /home/aluno/Documentos/

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# ls
PastaA  PastaB  sync_script.sh

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# rm -r *      
zsh: sure you want to delete all 3 files in /home/aluno/Documentos [yn]? y

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# ls

10) Edite novamente o agendamento de aplicações, usando o comando:

┌──(root㉿kali)-[/home/aluno/Documentos]
└─# crontab -e

Apague a linha que foi adicionada no passo 6.

Perceba que neste laboratório, 2 arquivos de texto foram replicados automaticamente da “PastaA” para a “PastaB”. Este laboratório também serve para qualquer tipo de arquivo, como imagens, vídeos ou documentos!