Compacta todas as pastas na pasta A para a pasta B sem “backups”

0

eu tenho uma pequena pergunta.

Eu quero compactar todas as pastas em / etc / nginx / html / (existem as pastas do site) para dentro / etc / nginx / html / backups /

Agora você vê: A pasta "backups" está na mesma pasta, como "Website1" e "Website2" Eu não quero comprimir a pasta "backups"

Eu tento isso:

cd $PATH_TO_WEBFOLDER

folders='for i in $(ls -d */ | grep -Ev "(backups)"); do echo ${i%%/}; done'
for ftp in $folders; do
  tar -cvvzf $ftp-$datum.tar.gz *
done

Mas isso funciona. Então eu tento isso:

PATH_TO_WEBFOLDER="/etc/nginx/html"
datum=$(date +"%d-%m-%Y")
BACKUP_PATH="/etc/nginx/html/backups/$datum"


# make absolute and add dir
backup_path="$(readlink -f "$backup_path")/FTPBACKUP"
cd $PATH_TO_WEBFOLDER

for d in */; do
  d="${d%/}" # strip trailing slash

  if [ -n "${d##*(backup)*}" ]; then
    tar cvvzf "$backup_path/$d-$datum.tgz" "$d" 
  fi
done

Mas também não funciona: /

Alguém pode me ajudar?

    
por Dr.JoeBeer 31.03.2017 / 07:37

1 resposta

0

A solução fácil parece estar usando tar para excluir uma pasta:

tar --exclude=./backups/ -cvvzf $ftp-$datum.tar.gz *

Isso deve ser bastante simples.
Eu encontrei no meu sistema que --exclude tinha que estar logo após o comando tar.

    
por 02.04.2017 / 12:18

Tags