Backup com a ferramenta tar
Publicado por Perfil removido (última atualização em 26/12/2018)
[ Hits: 3.101 ]
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
rotate.sh - Rotaciona arquivos de acordo com a data
Script de backup dos hosts do Zabbix
Restauração de backup Firebird a partir de um arquivo .7Z contendo um GBK
Backups automáticos de rádios Intelbras APC5
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Debian 13 "trixie&... lançado! (44)
Rust é o "C da nossa geração"? (3)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)