у меня есть маленький вопрос.

Я хочу сжать все папки в /etc /nginx /html / (есть папки сайта) в /etc /nginx /html / backups /

Теперь вы видите: папка "backups" находится в той же папке, что и "Website1" и "Website2". Я не хочу сжимать папку "backups"

Я пытаюсь это:

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

Но это не работает. Тогда я попробую это:

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

Но это также не работает:/

Может кто-нибудь мне помочь?

1 ответ1

0

Кажется, что простым решением является использование tar для исключения папки:

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

Это должно быть довольно просто.
В моей системе я обнаружил, что --exclude должно быть сразу после команды tar.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .