1

Всем здравствуйте!
Прошу помочь в таком вопросе. Нужно сохранить в архиве строго определённые типы файлов рекурсивно из всех подкаталогов с сохранением структуры подкаталогов. Сколько ни бился - сохраняются либо абсолютно все файлы, либо те которые нужно, но без вложенных каталогов. Причём неважно каким архиватором пользуешся tar, rar, zip, arj.
Заранее благодарен.

2

rsync может делать резервное копирование файлов с определенным расширением. Так что смотрите в сторону его.

Apple MacBook Pro OS X 10.8
HP ProLiant Microserver Ubuntu 12.04

3

Посмотрел rsync, всё то же самое, можно работать только по чёрному списку (исключения). А  надо сохранить только определённые типы файлов. Пользовательские директории на сервере набиты горами мусора, интересуют только *.doc, *.xls ну и ещё пять-шесть видов оффисных документов, писать на всё остальное файл исключений нереально. В виндовсе всё решалось просто RAR-ом, а здесь это не работает.
И хотелось бы это делать какими то стандартными средствами Линукса, для обеспечения дальнейшей совместимости.

4 (11.06.2010 10:41:24 отредактировано Cruiser78)

vip-888 пишет:

Посмотрел rsync, всё то же самое, можно работать только по чёрному списку (исключения).

А что мешает раскурить нечто вроде такого:

#/bin/sh
#
names="*.doc *.xls"
SOURCEPATH="/home"
LOG="/var/log/mylog"

for name in $names; do
 find $SOURCEPATH -name $name -exec rsync bla-bla-bla ;  -print  >> $LOG
done

То есть на каждый найденный в find файл запускать правильно написанный под твою конкретную конфигурацию rsync? По моему стандартный юниксовый путь... Кроме этого ещ и find'у можно указать интервал времени, за который файло просматиривать и совсем старое в расмторение не брать.

5

vip-888, fsbackup попробуйте, очень гибкая настройка конфигов :-)

It is good day to die ...
MS Windows 10
Заметки о главном...

6 (11.06.2010 19:52:31 отредактировано )

vip-888 пишет:

Нужно сохранить в архиве строго определённые типы файлов рекурсивно из всех подкаталогов с сохранением структуры подкаталогов.

find projects/ -regex ".*\.\(sh\|cpp\|c\)" | tar cjvvf test.tbz -T -

сохраняет каталог projects/ вместе со всей структурой. но не все файлы, а исключительно
*.sh
*.cpp
*.c
Попробуйте сами, если не верите bx

Cruiser78 пишет:

А что мешает раскурить нечто вроде такого:

попробуйте сначала.
это медленно и криво.
тогда уж заюзайте опцию -o команды find
что-то вроде
find . \( -name "*.x" -o -name "*.y" \) ...
а в конце лучше -print0 | xargs -0 tar -cf z.tar

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

drBatty пишет:

find projects/ -regex ".*\.\(sh\|cpp\|c\)" | tar cjvvf test.tbz -T -

сохраняет каталог projects/ вместе со всей структурой. но не все файлы, а исключительно
*.sh
*.cpp
*.c
Попробуйте сами, если не верите

Попробовал - действительно работает, в принципе меня это устраивает. Всем спасибо. Отдельное спасибо drBatty.