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