URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7004
[ Назад ]

Исходное сообщение
"Скрипт архивирования"

Отправлено oaealex , 05-Дек-07 16:04 
Есть C++ проект. Поделитесь опытом - как правильно проффесионально написать скрипт архивирования, который бы сохранял структуру папок текущего каталога. и некого каталога лежащего допустим в другом месте.
Каталоги могут  - меняться - добавляться.
Сейчас используется чтото типа такого:

SRC=myprog.tar.bz2
EX=\*.cpp \*.h* \*.mak \*.sh
tar -cvf $SRC $EX
scp $SRC login@destcomp:/arch/myprog

Что тут плохо - подпапки надо указывать руками, расширения для подпапок прописывать явно.


Содержание

Сообщения в этом обсуждении
"Скрипт архивирования"
Отправлено angra , 05-Дек-07 18:07 
У вас есть объективные причины чтобы использовать именно такой(архивирование с копированием) способ синхронизации/бэкапа? Просто в 99% случаев rsync или система контроля версий значительно лучше решают эту задачу. Учитывая что у вас данные это С++ проект, какая либо система контроля версий просто необходима.

"Скрипт архивирования"
Отправлено oaealex , 06-Дек-07 09:06 
>У вас есть объективные причины чтобы использовать именно такой(архивирование с копированием) способ
>синхронизации/бэкапа? Просто в 99% случаев rsync или система контроля версий значительно
>лучше решают эту задачу. Учитывая что у вас данные это С++
>проект, какая либо система контроля версий просто необходима.

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

в виндовом rar ест такой ключик -u - обнавлять файлы, -r - включать поддиректории,
Получается 3 строки

set P=App.rar
rar u -r -x@arc_NO %P% @arc_list
copy %P% Q:\arh_prj\АПП\


Где в arc_list - перечень архивируемых расширений файлов и папок не лежащих в текущей
директории.

Разве в скрите Linux нельзя написать также просто и красиво ? Наверно можно.
Как ?


"Скрипт архивирования"
Отправлено angra , 06-Дек-07 11:09 
Вы хотите чтобы я за вас почитал man tar и нашел нужные ключи? Особенно с учетом того что есть GNU и BSD версия tar имеющие очень различный набор и неизвестно какая стоит у вас.

В rsync ничего сложного нет, никакой дополнительной установки не требуется он замечательно работает через ssh. Я его применяю даже когда в синхронизируемых каталогах всего несколько файлов. Просто не вижу чем архивирование, перенос архива и его разворачивание может быть удобней,  ну не предназначена архивация для этого, это все равно что забивать гвозди долотом. В винде просто нет rsync и поэтому используется костыль в виде архиватора, но не надо виндовые привычки тащить в другую систему.



"Скрипт архивирования"
Отправлено oaealex , 07-Дек-07 09:06 
>Вы хотите чтобы я за вас почитал man tar и нашел нужные
>ключи?

Отмечено, и не раз, что сообщество Linux отличает некая грубость в общении - и видимо считается что чем круче пошлешь - тем более крутой ты "перец" и сильно тебя уважать все начнут.
Командная строка так влияет ? :)
Всетаки видимо от человека зависит.

Про rsync и Subversion понятно и при наличии свободного окна они конечно
будут изучены и применен более подходящий вариант, коль иных путей нет.

>tar имеющие очень различный набор и неизвестно какая стоит у вас.

Понятно.
>
>В rsync ничего сложного нет, никакой дополнительной установки не требуется он замечательно
>работает через ssh. Я его применяю даже когда в синхронизируемых каталогах
>всего несколько файлов. Просто не вижу чем архивирование, перенос архива и
>его разворачивание может быть удобней,  ну не предназначена архивация для
>этого, это все равно что забивать гвозди долотом. В винде просто
>нет rsync и поэтому используется костыль в виде архиватора, но не
>надо виндовые привычки тащить в другую систему.

Да есть там все, ребят, и системы контроля версий и много чего другого.
Но для каждой задачи - удобна своя ОС.

Спсибо за подсказки.

Алексей.


"Скрипт архивирования"
Отправлено angra , 09-Дек-07 20:31 
>>Вы хотите чтобы я за вас почитал man tar и нашел нужные
>>ключи?
>
>Отмечено, и не раз, что сообщество Linux отличает некая грубость в общении
>- и видимо считается что чем круче пошлешь - тем более
>крутой ты "перец" и сильно тебя уважать все начнут.

Странный вы человек. Причем здесь грубость. Вы что считаете, что я или любой другой юниксоид помнит наизусть все ключи для всех версий tar? Мне, например,при использовании tar хватает всего пяти ключей:zjctx, причем я не уверен что под BSD версией tar все они будут работать, но когда мне понадобится выполнить BSD tar я просто загляну в man. Так что для ответа на ваш вопрос мне пришлось бы самому открыть man и поискать ключи, подходящие вам. Я не вижу ни одной причины почему вы не могли бы сделать это сами, особенно с учетом того, что мне неизвестно что за tar у вас на машине. Помощь человеку в решении проблемы заключается в направлении его в нужную сторону, а не в делании за него его работы.

>Командная строка так влияет ? :)

Нет, долгая жизнь в сетевом обществе, начиная с fido, и знакомство с нэтикетом. А вообще рекомендую почитать "как правильно задавать вопросы", это поможет не только на этом форуме, но и на многих других.

>Да есть там все, ребят, и системы контроля версий и много чего другого.

Покажите мне rsync в винде "изкаропки". У меня он есть потому что стоит cygwin, но в дефолтной поставке его нет. Был бы rsync+ssh там изначально врядли вам пришло бы в голову использовать архиватор для синхронизации.


"Скрипт архивирования"
Отправлено oaealex , 10-Дек-07 07:48 
>Вы что считаете, что я или
>любой другой юниксоид помнит наизусть все ключи для всех версий tar?

Уважаемый Angra, ну неужели Вы думаете, что я полез в конфу предварительно не проштудировав ключи tar в man ? Когда я их не нашел - то возникло 2 версии:
1) Я их тупо не увидел в Mandrake 10
2) Их нет.

Поэтому и возник данный пост - в надежде что да - есть - и пусть "ткнут носом" -
ну не "загнется" от этого мое и без того несильно взращенное самолюбие :).

Если события развиваются по п.2 - то это какбы противоречет Unix - way - "система - комплекс маленьких утилит - каждая из которых ХОРОШО делает свою работу" :)
Рекурсивный обход каталогов - ну что тут хитрого ? И даже если мне скажут - "блин, знаеш -вещь конечно неплохая - но не сделали еще"- я тоже это пойму. Но когда мне говорят - знаеш есть такая вещь - как система контроля версий - и ты ее используй - а не ищи "ключик" - такой подход четео напрягает.
Не из за того, что ради малого ключика - приходится ставить систему контроля (да прекрасная она наверняка и могуча - ну никто не спорит), да воспользуюсь я ей - нет слов - только вопрос - обойти рекурсивно каталоги - уже "заедает" - что, это невозможно ? :) А то что так никто не делает - очень сомнительно.
Да напишу я в шелле такой скрипт - только велосипед изобретать не хочется.

>Помощь человеку в решении проблемы заключается в направлении его
>в нужную сторону, а не в делании за него его работы.

Безусловно. Меня только веселят ответы - Вопрос:...? Ответ: man abcd.
Круто конечно - ни комментариев, не обоснования своей позиции, тем более что человек
задающий вопрос как правило уже этот man abcd  - "...и так и сяк и об косяк...".
Ну в данном случае с позицией все понятно :)

Да ладно, ребят, все равно спасибо за дискурсию. Позицию вашу я понял и в конце концов буду двигаться по вашей подсказке, поскольку не сомневаюсь в вашей компетенции и
опыте - ну наверняка очень поболее моего :)

Ну а тот факт - что в Linux есть над чем поработать - причем в самых кажется "хоженных" местах - "к бабке не ходи".

>>Да есть там все, ребят, и системы контроля версий и много чего другого.
>
>Покажите мне rsync в винде "изкаропки". У меня он есть потому что
>стоит cygwin, но в дефолтной поставке его нет. Был бы rsync+ssh
>там изначально врядли вам пришло бы в голову использовать архиватор для
>синхронизации.

Не буду спорить - не компетентен :) Но Архиватор в Винде - есть и работает и делает свою маленькую работу там - хорошо :) Но за деньги - гад такой :)

С уважением Алексей.


"Скрипт архивирования"
Отправлено angra , 10-Дек-07 19:50 
tar очень хорошо делает СВОЮ работу, а gnu версия добавляет ему еще и несколько лишних, но удобных на практике опций. Если вы его пытаетесь использовать не по назначению, то кто вам доктор. Не совсем понятно что вы хотите от него получить. tar изначально работает рекурсивно, при желании это отключается --no-recursion. Если вам нужна лишь часть каталогов вы их перечисляете, если лишь часть файлов, то используйте --exclude, если при раскрутке не нужно перезаписывать файлы используйте -k. Что за страшные опции вы используете для rar что не нашли им аналагов в tar? В крайнем случае если уж список у вас формируется особо извращенным образом, то формируйте его при помощи find и скармливайте tar.


>Ну а тот факт - что в Linux есть над чем поработать - причем в самых кажется "хоженных" местах - "к бабке не ходи".

Чаще всего надо работать над инерцией мышления пользователей пришедших с других систем. Ведь не так как в винде/маке/досе это вовсе не значит плохо, более того зачастую это более эффективно, хоть некоторым и непривычно. Вы бы видели какой шок вызывает винда при переходе на нее тех, кто начинал в линуксе, в том числе и на десктопе (который по непонятным мне причинам считается сильным местом в винде), про администрирование и говорить нечего.


"Скрипт архивирования"
Отправлено oaealex , 11-Дек-07 08:52 
>Что за страшные опции вы используете для rar что не нашли им аналагов в
>tar?

Не знаю как в тар - а наша дискурсия точно рекурсивна, т.к. ответ предполагает уход на пост номер 2 в этой ветви :) Бррр :)

Спасибо, Angra за ответы.
Удачи.
Алексей.


"Скрипт архивирования"
Отправлено DeadMustdie , 06-Дек-07 09:41 
Странный у Вас скрипт получился. Я бы использовал нечто типа

dmpfile=/home/DATA/dumps/data.tar.bz2
srcdir=/home/me/projects
trgdir=login@dest:/arch/projects
cd $srcdir && tar cfj $dmpfile . && scp $dmpfile $trgdir && rm -f $dmpfile


"Скрипт архивирования"
Отправлено DeadMustdie , 06-Дек-07 09:41 
А вообще Subversion рулит.

"Скрипт архивирования"
Отправлено Arpo , 06-Дек-07 13:03 
>А вообще Subversion рулит.

Действительно на днях поставил SVN пока все довольны...
Ставится на раз-два, настраивается еще проще...