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.
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?