LINUX.ORG.RU
ФорумAdmin

Как исключить папку при архивировании


0

3

Привет. Подскажите пожалуйста как в данной ситуации исключить из бекапа одну директорию.

Есть такой скрипт:

find ./ -maxdepth 1 -type d -exec tar -czf /home/backups/$HOSTNAME-$DAY/www/sites/{}.tar.gz {} \;

Он архивирует все папки в директории в отдельные архивы.

Мне нужно исключить из него определенную папку, пытаюсь так:

find ./ -maxdepth 1 -type d -exec tar -czf /home/backups/$HOSTNAME-$DAY/www/sites/{}.tar.gz --exclude=testsite.ru {} \;

Но в папке просто создается файл --exclude=testsite.ru

Подскажите пожалуйста как правильно выполнить данную команду. Спасибо:)


Как исключить папку

Мамку уже исключил, вендузоид?

anonymous
()
Ответ на: комментарий от blind_oracle

Спасибо!

Делаю так:

find ./ -maxdepth 1 -type d -and -not -iname testsite.ru -exec  tar -czf /home/backups/$HOSTNAME-$DAY/www/sites/{}.tar.gz {} \;

Но все равно архивирует testsite.ru

klu41k
() автор топика
Ответ на: комментарий от klu41k

Мда, посмотрите в начале, исключается ли из списка найденных директорий директория с именем 'testsite.ru':

find ./ -maxdepth 1 -type d -and -not -iname testsite.ru

kostik87 ★★★★★
()
Ответ на: комментарий от klu41k

Мда, не верю. Проверьте:

mkdir /tmp/test
cd /tmp/test
touch 1 2 3 4 5 testsite.ru
mkdir folder
find ./ -maxdepth 1 -type f -and -not -iname testsite.ru -exec  tar -czf folder/{}.tar.gz {} \;
ls folder

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Спасибо!! Я затупил, как всегда...

почему-то написал вместо www/sites/{}.tar.gz {} \; (скобок{}) имя файла...

Но все равно на пустых директориях работает, а вот в директории с сайтами запускаю, и команда просто висит, ждал пол-часа ничего не произошло , архивы почему-то не появились..

klu41k
() автор топика
Ответ на: комментарий от klu41k

Поставь лучше echo между -exec и tar и приведи здесь вывод этой команды вместе со строкой вызова команды.

unterwulf
()

Делаю так

#!/bin/bash

MyUSER=«user» # Вписываем имя пользователя mysql, желательно создать отдельного с урезанными правами
MyPASS=«mysqlpas» # Пароль от этого пользователя
MyHOST=«127.0.0.1» # Адрес сервера MySQL
DBName=«mysiteru» # Имя базы данных

DEST=«/var/www/mysite.ru/backup» # путь к папке с бэкапами
DATE=`/bin/date '+%Y.%m.%d'` # заносим в переменную DATE текущую дату
FILE=«$DEST/$DBName»_«$DATE.sql.gz»

# оптимизация(если не нужна - комментируем)
mysqlcheck -u $MyUSER -p$MyPASS --auto-repair --check --optimize --all-databases >/dev/null 2>&1

# сохраняем дамп mysql
mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $DBName --single-transaction | gzip -9 > $FILE

# архивируем все каталоги, кроме тех, в которых находится файл .noarchive
/bin/tar -zcf /var/sites/mysiteru/www/ $DATE.backup.tar.gz --exclude-tag=.noarchive ./

/bin/tar -czvf $DEST/$DATE.tar.gz /var/www/mysite.ru/public/

# удаляем архивы, которым уже больше семи дней
/usr/bin/find $DEST -type f -name *.gz -atime +7 -exec rm -f \{\} \; >/dev/null 2>&1

censured
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.