Para quem tiver interesse, colei um exemplo de script em : http://pastebin.com/f2df68d8d
Para torna-lo um executável em sua maquina : chmod a+x /local/do/script.sh Para executar : /local/do/script.sh []'s a todos. 2009/8/13 Sharkman BR <[email protected]>: > > Bom trabalho, amigo! > Mto legal sua iniciativa! Ajudará mta gente! > Obrigado! > >> Date: Thu, 13 Aug 2009 17:08:09 -0300 >> From: [email protected] >> To: [email protected] >> Subject: Re: [Ubuntu-BR] Alguem conhece algum programa de backup que >> comprima arquivos individualmente mantendo a estrutura original de >> diretorios ? >> >> Respondendo a mim mesmo, criei uma funcao em bash script para realizar >> essa operação, se alguem tiver interesse é só copiar para seu script : >> function do_copy() { >> # copia uma pasta de um local de origem >> # para um local de destino >> # Porem faz a compactacao para o destino se a extensao nao for a do >> tipo ja compactada >> copiar_de_origem="$1" >> copiar_para_destino="$2" >> RESULT_VALUE="OK" >> LISTA_NAO_COMPACTAR=".7z .ace .ain .alz .apz .ar .arc .ari .arj .ark >> .axx .b64 .ba .bh .boo .bz .bz2 .bzip \ >> .bzip2 .c00 .c01 .c02 .car .cbr .cbz .cp9 .cpgz .cpt .dar .dd .deb >> .dgc .dist .ecs .efw \ >> .fdp .gca .gz .gzi .gzip .ha .hbc .hbc2 .hbe .hki .hki1 .hki2 .hki3 >> .hpk .hyp .ice .ipg \ >> .ipk .ish .j .jgz .jic .kgb .lbr .lemon .lha .lnx .lqr .lzh .lzm >> .lzma .lzo .lzx .md .mint \ >> .mpkg .mzp .p7m .package .pae .pak .paq6 .paq7 .paq8 .par .par2 .pbi >> .pcv .pea .pf .pim .pit \ >> .piz .pkg .pup .pup .puz .pwa .qda .r00 .r01 .r02 .r03 .rar .rev .rk >> .rnc .rpm .rte .rz .rzs \ >> .s00 .s01 .s02 .s7z .sar .sdc .sdn .sea .sen .sfs .sfx .sh .shar >> .shk .shr .sit .sitx .spt \ >> .sqx .sqz .tar .taz .tbz .tbz2 .tg .tgz .tlz .tz .uc2 .uha .vsi .wad >> .war .wot .xef .xez \ >> .xpi .xx .y .yz .z .z01 .z02 .z03 .z04 .zap .zip .zipx .zix .zoo .zz >> .jpg .png .gif .cab .exe" >> >> LISTA_NAO_SALVAR=".tmp .$ .~ .swp" >> >> >> if [ "$copiar_de_origem" = "" ] ; then >> echo "Erro na copia de arquivos : O endereco de origem não foi >> informado." >> return >> fi >> if [ "$copiar_para_destino" = "" ] ; then >> echo "Erro na copia de arquivos : O endereco de destino não foi >> informado." >> return >> fi >> if ! [ -d "$copiar_para_destino" ] ; then >> mkdir -p "$copiar_para_destino" >> fi >> >> # lendo todos os arquivos na pasta de origem e jogando para dentro >> de um arquivo temporario >> temp=`mktemp` >> find $copiar_de_origem/ -type f >$temp >> while read ARQ_ATUAL ; do >> ARQ_ATUAL_PASTA=`dirname "$ARQ_ATUAL"` >> NOME_ARQUIVO=`basename "$ARQ_ATUAL"` >> NOME_ARQUIVO_EXT=${NOME_ARQUIVO#*.} >> NOVA_PASTA="$copiar_para_destino/$ARQ_ATUAL_PASTA" >> COMPACTAR_ARQUIVO="S" >> SALVAR_ARQUIVO="S" >> [[ "$LISTA_NAO_SALVAR" =~ "${NOME_ARQUIVO_EXT}" ]] && SALVAR_ARQUIVO="N" >> ! [ -d "$NOVA_PASTA" ] && mkdir -p "$NOVA_PASTA" >> if [ -d "$NOVA_PASTA" ] && [ "$SALVAR_ARQUIVO" = "S" ] ; then >> [[ "$LISTA_NAO_COMPACTAR" =~ "${NOME_ARQUIVO_EXT}" ]] && >> COMPACTAR_ARQUIVO="N" >> if [ "$COMPACTAR_ARQUIVO" = "S" ] ; then >> echo "[$NOME_ARQUIVO_EXT] transferindo [$ARQ_ATUAL] para >> [$NOVA_PASTA/$NOME_ARQUIVO.gz]" >> gzip -c "$ARQ_ATUAL" >"$NOVA_PASTA/$NOME_ARQUIVO.gz" >> else >> echo "[$NOME_ARQUIVO_EXT] transferindo [$ARQ_ATUAL] para >> [$NOVA_PASTA/$NOME_ARQUIVO]" >> cp "$ARQ_ATUAL" "$NOVA_PASTA/$NOME_ARQUIVO" >> fi >> else >> echo "Falha ao copiar o arquivo [$ARQ_ATUAL] para [$NOVA_PASTA]." >> RESULT_VALUE="FALHOU" >> fi >> done < $temp >> [ -f "$temp" ] && rm -f "$temp" >> } >> >> >> Testei agora a pouco e tá funcionando redondo, é só colocar no seu >> script a funcao acima e usa-la assim : >> do_copy "/home/fulano" "/media/usbdisk" >> >> Só preciso acrescentar mais tipos de arquivos que considero já >> compactados e lista de extensoes de arquivos temporarias para o backup >> ir mais rapido. Afinal não faz muito sentido compactar um jpg/zip/rar >> e nem jogar para o backup aqueles horrendos .$$$ >> >> []'s a todos. >> >> >> 2009/8/13 hamacker <[email protected]>: >> > Olá pessoal, >> > >> > Estou procurando algum programa ao estilo rsync que recrie a estrutura >> > original porém com os arquivos individualmente, explico. >> > >> > Os programas como tar/gz, 7zip, rar, zip, etc... comprimem diretorios >> > inteiros depositando todos os diretórios dentro de um único pacote >> > .7z/zip/tar. >> > Eu gostaria de saber se há algum programa que apenas recrie os >> > diretórios e comprima apenas os arquivos que existem nele, ex: >> > >> > /home/fulano/teste.odt >> > /home/fulano/projetos/projeto-importante.dxf >> > >> > se tornaria na unidade de destino : >> > /home/fulano/teste.odt.gz >> > /home/fulano/projetos/projeto-importante.dxf.gz >> > >> > Eu gostaria de fazer isso para facilitar alguns obstaculos >> > operacionais que temos por aqui. >> > Eu venho estudando uma forma do rsync fazer isso, mas ainda não achei. >> > >> > Alguem conhece um método assim ? >> > >> >> -- >> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece >> >> Lista de discussão Ubuntu Brasil >> Histórico, descadastramento e outras opções: >> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br > > _________________________________________________________________ > Emoticons e Winks super diferentes para o Messenger. Baixe agora, é grátis! > http://specials.br.msn.com/ilovemessenger/pacotes.aspx > -- > Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece > > Lista de discussão Ubuntu Brasil > Histórico, descadastramento e outras opções: > https://lists.ubuntu.com/mailman/listinfo/ubuntu-br > -- Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece Lista de discussão Ubuntu Brasil Histórico, descadastramento e outras opções: https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

