Backup com a ferramenta tar
Publicado por Perfil removido (última atualização em 26/12/2018)
[ Hits: 3.069 ]
Download 1545143383.backup.sh (versão 2)
Download 1545414558.backup.sh (versão 3)
Cria backups utilizando a ferramenta tar, que usado para armazenar vários arquivos em um único, preservando informações como datas e permissões. Este script também remove backups antigos criados pelo mesmo, de acordo com o valor definido na variável "time_until_old_backups_are_deleted=3" em dias.
O nome dos arquivos a serem feito o backup deve ser especificado na variável $FILES e a variável $BACKUP_DIR é necessária para informar qual o diretório raiz onde todos os arquivos($FILES) estão.
Versão 2 - Enviado por erick Darko em 18/12/2018
Changelog: O nome dos arquivos a serem feito o backup deve ser especificado na variável $F e a variável $BACKUP_DIR é necessária para informar qual o diretório raiz onde todos os arquivos($F) estão.
Os arquivos podem ficar em qualquer diretório em $HOME
Apenas usuários normais (que não são root) podem executar o script
#!/usr/bin/env bash SECONDS=0 # -> runtime trap quit 2 # Setup FILES=( "Documents Development .config/i3* .bashrc .vim/vimrc .xinitrc" # <-- change it to your files ) BACKUP_DIR="/home/$USER/" # Where the $FILES are ############################################################ f="backup_$(date +%H%M_%y%m%d).tar" # the backup.tar file name. Do not change it ! echo -e "\n$(date)" > ${log_path}${f::-4}.log { for i in {0..80};do echo -n '-' ;done ; echo; } >> ${log_path}${f::-4}.log log_path="$(find $HOME -name .backup_logs -type d )" if [ -z "$log_path" ];then mkdir $HOME/.backup_logs/; echo "creating .backup_logs/ folder in $HOME." log_path="$HOME/.backup_logs/" else log_path="${log_path}/" fi c=0 for i in $FILES;do BACKUP_PATH[$c]="/home/$USER/"$i c=$((c+1)) done echo "files/folders: ${BACKUP_PATH[@]}" >> ${log_path}${f::-4}.log { for i in {0..80};do echo -n '-' ;done ; echo; } >> ${log_path}${f::-4}.log old_backups=($(find $BACKUP_DIR -name "backup_*_*.tar*" -type f -printf '%f\n')) time_until_old_backups_are_deleted=3 # days for i in ${old_backups[@]};do id=$(echo $i | grep -o -P '(?<=.)[0-9]+(?=\.)' | tr -d [:space:]) echo "ID:$id $i" >> ${log_path}${f::-4}.log y="${id:0:2}" # cut -c1-2 >> year if [ "${id:2:1}" -le 9 ];then if [ "${id:2:1}" -eq 1 -a $(date +%m) -ge 10 ];then m="${id:2:2}" # cut -c3-4 >> month d="${id:4}" else m="${id:2:1}" # cut -c3 d=$(echo ${id:3} | tr -d [:blank:]) fi fi if [ $y -eq $(date +%y) ];then if [ $(date +%d) -ge $((d+time_until_old_backups_are_deleted)) -a $m -le $(date +%m) ];then rm -vf $i >> ${log_path}${f::-4}.log fi else if [ $(date +%d) -eq $time_until_old_backups_are_deleted -a $(date +%m) -eq 1 ];then rm -vf $i >> ${log_path}${f::-4}.log fi fi done { for i in {0..80};do echo -n '-' ;done ; echo; } >> ${log_path}${f::-4}.log quit(){ echo ; read -n1 -p "Are you sure you want to leave? [y/n]" answer ; echo answer=${answer,,} if [ "${answer:0:1}" == "y" -o ${#answer} -eq 0 ];then rm -vi ${BACKUP_DIR}$f cat ${log_path}${f::-4}.log ; rm -v ${log_path}${f::-4}.log exit 0 fi } _HELP_(){ script_path=$(find $HOME -name backup.sh -user 1000) if [ -z "$script_path" ];then echo "script not found"; else echo "Source: $script_path" ;fi echo -e """Usage: ./backup \nCreates backups using the tar tool, which is used to store multiple files in a single file, preserving information such as dates and permissions. This script also removes old backups created by it, according to the value defined in the variable: \"time_until_old_backups_are_deleted = 3\" in days. The name of the files to be backed up must be specified in the \$FILES variable and the \$BACKUP_DIR variable and necessary to inform the root directory where all files in (\$FILES) are. by erickDarko 2018 """ exit 0 } case $1 in -h) _HELP_ ;; *) tar cf ${BACKUP_DIR}$f ${BACKUP_PATH[@]} ;; esac echo "Size: $(du -sh ${BACKUP_DIR}$f)" >> ${log_path}${f::-4}.log if [ $? -ne 0 ];then rm -vi ${BACKUP_DIR}$f ;fi ELAPSED="Elapsed: $(($SECONDS / 3600))hrs $((($SECONDS / 60) % 60))min $(($SECONDS % 60))sec" echo $ELAPSED >> ${log_path}${f::-4}.log
Script para gravação de BKPs em DVDs-RW
rsyncdev-pt_BR_v6.sh - Um baixador automático de ISOs de Sabayon Linux, versão 6
Ferramenta de backup do HD para dispositivos externos
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gestão de Ambiente em uma rede Linux (2)
Ajuda Pra Melhoria do NFTABLES. (7)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (4)