Backup com a ferramenta tar
Publicado por Perfil removido (última atualização em 26/12/2018)
[ Hits: 2.912 ]
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 de uma base MYSQL específica.
Backup de MySql para outro servidor FTP!
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)