LinuxForum.Fans
Тема

Резервное копирование

Автор: vip-888 7 сообщений 3191 просмотров
#50478

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

#50626

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

#50662

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

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

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

text

#/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'у можно указать интервал времени, за который файло просматиривать и совсем старое в расмторение не брать.

#50671

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

#50831
vip-888 написал:
Нужно сохранить в архиве строго определённые типы файлов рекурсивно из всех подкаталогов с сохранением структуры подкаталогов.
text
find projects/ -regex ".*\.\(sh\|cpp\|c\)" | tar cjvvf test.tbz -T -

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

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

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

#51391
drBatty написал:
find projects/ -regex ".*\.\(sh\|cpp\|c\)" | tar cjvvf test.tbz -T -

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

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

Войдите или зарегистрируйтесь, чтобы ответить.