Backup com a ferramenta tar
Publicado por Perfil removido (última atualização em 26/12/2018)
[ Hits: 2.955 ]
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
Backup Ubiquiti com usuários e senhas SSH diferentes
Backup e envio do arquivo + md5sum para o FTP da escolha do usuário
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
PC não liga no filtro de linha (3)
Desde que seja DDR3, posso colocar qualquer memória? (3)
Instalar sem formatar, pergunta meio boba. [RESOLVIDO] (7)
Curso gratuito Defesa de redes 10ª Maratona CiberEducação Cisco Brasil... (0)