Article image

RM

Rafael Mota24/01/2024 16:47
Compartilhe

Como fazer backup usando shell scripts

  • #Linux

Em geral, um shell script configura quais diretórios devem ser copiados e passa esses diretórios como argumentos para o utilitário tar, que cria um arquivo compactado. O arquivo compactado pode então ser movido ou copiado para outro local. O arquivo também pode ser criado em um sistema de arquivos remoto, como uma montagem Network File System (NFS).

O shell script

O shell script a seguir usa tar para criar um arquivo compactado em um sistema de arquivos NFS montado remotamente.

#!/bin/bash

# Definição dos diretórios a serem copiados.
backup_files="/home /var/spool/mail /etc /root /boot /opt"

# Diretório de destino do backup.
dest="/mnt/backup"

# Criação do nome do arquivo de backup com a data e o nome do host.
day=$(date +%Y-%m-%d)
hostname=$(hostname)
archive_file="${hostname}-${day}.tgz"

# Mensagem de início do backup.
echo "Iniciando backup dos seguintes diretórios:"
echo "$backup_files"
echo "para o destino: $dest/$archive_file"
echo "Data e hora do início do backup:"
date
echo

# Backup dos arquivos utilizando o tar.
tar czf "${dest}/${archive_file}" $backup_files || {
  echo "Erro ao criar o arquivo de backup. Abortando."
  exit 1
}

# Mensagem de conclusão do backup.
echo
echo "Backup concluído com sucesso."
echo "Data e hora do término do backup:"
date

# Listagem detalhada dos arquivos no destino para verificar os tamanhos.
echo
echo "Listagem detalhada dos arquivos no diretório de backup:"
ls -lh "$dest"

Executando o script

Execute a partir de um terminal

A maneira mais simples de usar o script de backup acima é copiar e colar o conteúdo em um arquivo (chamado backup.sh por exemplo). O arquivo deve ser tornado executável:

chmod u+x backup.sh

Em seguida, em um terminal, execute o seguinte comando:

sudo ./backup.sh

Essa é uma ótima maneira de testar o script para garantir que tudo funcione conforme o esperado.

Referências

Repositório do GitHub



Compartilhe
Comentários (0)