Criação de Arquivos PDF
Criação de Arquivos PDF
Ricardo Biloti [<biloti (a) ime unicamp br>]
Existe um pacote muito interessante para criar arquivos PDF, chama-se dvipdfm (http://odo.kettering.edu/dvipdfm/index.html). É um software livre que converte arquivos DVI (gerados pelo TeX/LaTeX) em arquivos PDF. Suas principais vantagens são: aceita hyperlinks, inclui imagens em PS, EPS, PDF, PNG e JPEG, pode rotacionar imagens e fazer outros efeitos, aceita a criação de bookmarks, índice, thumbnails, cores, links, aceita os comandos padrão para arquivos DVI e uma grande classe de extensões populares, etc. É verdade que para que se possa desfrutar de tudo isso é necessário ter o arquivo original escrito em TeX ou LaTeX, e nem todo mundo tem familiaridade com esses formatadores de texto. Porém existem ambientes WYSIWYG, que podem fazer a interface entre o LaTeX e o usuário, por exemplo o LyX (http://www.lyx.org/) ou sua versão para o KDE, o KLyX (http://www.devel.lyx.org/~ettrich/klyx.html). =
Fonte: http://www.dicas-l.com.br/print/20000627.html
Segurança do Sistema de Arquivos
Segurança do Sistema de Arquivos
Colaboração: Rubens Queiroz de Almeida
Verificar falhas de segurança no sistema de arquivos é outra tarefa importante do administrador. Primeiramente devem ser identificados os arquivos que podem ser alterados por usuários não autorizados, arquivos que podem involuntariamente dar permissões excessivas a usuários e arquivos que possam fornecer acesso a invasores. É importante também monitorar modificações no sistema de arquivos e possuir mecanismos que permitam a volta do sistema ao estado original.
O comando find é um comando de propósito geral para pesquisar o sistema de arquivos. O comando
# find / -type f -a ( -perm 0400 -o -perm 0200 ) -print
localiza todos os arquivos do sistema com os bits setuid ou setgid ligados. A saída deste comando deve ser analisada para determinar se não existe algum arquivo suspeito na lista.
O comando
# find / -perm -2 -print
identifica todos os arquivos com permissão de escrita universal.
O comando
# find / -nouser -o nogroup -print
identifica arquivos que não pertencem a nenhum usuário ou a nenhum grupo. Imediatamente após a instalação de um sistema, deve-se gerar um arquivo que liste a configuração inicial dos arquivos do sistema:
# ls -aslgR /bin /etc /usr >> MasterChecklist
Este arquivo contém uma lista completa de todos os arquivos nestes diretórios. As linhas referentes a arquivos que mudem freqüentemente devem ser removidas do arquivo. O masterchecklist deve ser guardado em um local seguro para evitar adulterações. Para pesquisar alterações no sistema de arquivos, execute o comando acima novamente e compare-o com o arquivo mestre:
# diff MasterChecklist Currentlist
Outro aspecto muito importante é a realização de backups freqüentes do sistema de arquivos. Backups não apenas protegem contra falhas de hardware mas também contra deleções acidentais.
Acrônimos ;-)
PERL - Pathetically Eclectic Rubbish Lister PCMCIA - People Can't Memorize Computer Industry Acronyms ISDN - It Still Does Nothing APPLE - Arrogance Produces Profit Losing Entity SCSI - System Can't See It DOS - Defunct Operating System BASIC - Bill's Attempt to Seize Industry Control IBM - I Blame Microsoft DEC - Do Expect Cuts CD-ROM - Comsumer Device, Rendered Obsolete in Months OS/2 - Obsolete Soon, Too WWW - World Wide Wait MACINTOSH - Most Applications Crash; If Not, The Operating System Hangs
Fonte: http://www.dicas-l.com.br/print/19970508.html
O comando csplit
O comando csplit
Colaboração: Rubens Queiroz de Almeida
Outro comando também utilizado para se dividir um arquivo em vários outros é o comando csplit (Content Split).
Ao contrário do comando split, abordado na dica anterior, o comando csplit permite que se especifique uma string que irá indicar o delimitador de cada um dos novos arquivos.
Tomemos como exemplo o arquivo abaixo, chamado arq1:
arq1
Capítulo 1
Era uma vez, era uma vez três porquinhos, Palhaço, Palito e Pedrito.
.
Capítulo 2 E o Lobo Mau, ... Capítulo 3 E o caçador, matou o Lobo Mau, casou-se com a Chapeuzinho Vermelho, e viveram felizes para sempre.
The End
@@@ Fim arq1
O autor, colocou todos os capítulos do livro em apenas um arquivo e depois se arrependeu. Agora ele quer criar vários arquivos contendo um capítulo cada. O comando abaixo pode resolver este problema:
% csplit -f Capit arq1 "/Capitulo/" <2> % ls -l total 4 -rw-r--r-- 1 queiroz supsof 0 Jun 17 18:31 Capit00 -rw-r--r-- 1 queiroz supsof 85 Jun 17 18:31 Capit01 -rw-r--r-- 1 queiroz supsof 29 Jun 17 18:31 Capit02 -rw-r--r-- 1 queiroz supsof 136 Jun 17 18:31 Capit03 -rw-r--r-- 1 queiroz supsof 250 Jun 17 18:11 arq1
Traduzindo, o comando csplit irá criar vários arquivos iniciados em "Capit", até um máximo de 3 arquivos (parâmetro <2>, computa-se o número entre colchetes + 1). Este valor indica o número de vezes que o comando será repetido. No nosso exemplo, foi especificado exatamente o número de capítulos contidos no arquivo original (3). Caso não conheçamos este valor, podemos especificar um número que sabemos maior que o número de arquivos existentes. O comando csplit irá reclamar, e apagar todos os arquivos já criados. Para evitarmos que isto aconteça, basta especificar a flag "-k", ou seja, a reclamação continuará sendo feita, mas o trabalho já feito não será removido. O que não pode é se especificar um número inferior ao desejado. Neste caso, o comando ficaria como:
% csplit -k -f Capit arq1 "/Capitulo/" <9> 0 85 29 csplit: <9> - out of range 136
A quebra será feita, tomando-se por base o nosso exemplo, antes da string Capitulo, exclusive. Devido a isto, o primeiro arquivo, Capit00, está vazio. Os arquivos criados, à exceção do arquivo Capit00 que está vazio, contêm:
Capit01
Capitulo 1 Era uma vez, era uma vez três porquinhos, Palhaço, Palito e Pedrito. ...
Capit02
Capitulo 2 E o Lobo Mau, ...
Capit03
Capitulo 3 E o caçador, matou o Lobo Mau, casou-se com a Chapeuzinho Vermelho, e viveram felizes para sempre. The End
O comando csplit todavia, é um pouco complexo. Existe um programa de domínio público chamado slice, que é muito mais flexível e fácil de usar que o comando csplit. O programa slice (e onde encontrá-lo), será abordado em breve nesta lista.
Dica Humorística :-)
BASTARD OPERATOR FROM HELL #13
I'm busy with my new shell replacement login script, and it's almost foolproof. Let's just say it pops up with:
"Yes means No and No means Yes. Delete all files [Y]? "
upon login. I'm really starting to worry about the number of account breakins we've been having recently.... The manager isn't though. His main concern appears to be the number of computer-related fatalities on campus. Funny world, isn't it?
I flip the excuse card. "DOPPLER EFFECT" Sounds implausible enough that it's plausable - with a little work of course.
The phone, the bane of my existance, rings.
"Hello, Computer Room" I say, being helpful
"Is this the Technicians?" The caller asks.
Amazing the number of deaf people that use these things. What the hell, I'm bored..
"Yes it is" I lie (Nixon could've done with me)
"I've got a problem with my floppy drive, it doesn't seem to be reading all the time"
"Hmmm. How old is the drive?"
"About a year.."
"And it sometimes fails and sometimes works, but it's starting to fail more and more?"
"YES!"
"Yeah, it's the Doppler effect of magnetism.."
"I thought that only happened with light and sound?"
Bullshit mode ON<
"Yes, well it's been found that on a spinning surface, like a disk, the particle's magnetic alignment changes, especially when the head is stationary and slightly magnetised in respect to it."
"Duh. Oh"
"So, what you need to do is to demagnetise the head. Have you got a disk head demagnetising loop?"
Hmm.... No?"
"OK, we'll have to do it the hard way. Have you got your original diskettes for your software?"
"Yeah."
"Right, chuck them in the drive, one by one, and format them."
"WHAT?!"
"Don't worry, it won't work - remember the drive is failing. All that happens is that the virgin magnetic field of the disks realigns the magnetic field of the head, because they weren't written by a doppler effected drive."
"Oh, yeah!"
"So, when it gives you a write error and asks if you want to continue, you say yes. Do it with all your original diskettes, then, to complete the demagnetising process, run a head cleaning diskette through the drive as well, which will pick up the stray magenetic particles clinging to the head."
"Oh. Ok. Thanks"
"Don't thank me - IT'S MY JOB"
I put the phone down, it rings again. It's the big boss.
"Simon, could you come to my office please?"
ALERT!<
Quick as I can, I press the panic button on our LAN-Analyser, or to be more precise, the "Generate 90% random traffic" button
"Sure, would you like me to come now, or..
The other phone rings. I chuck it on hands free
"Hello, Computer Room, Simon Here, How can I help?"
"THE NETWORK IS DOWN, ALL OUR PCS HAVE SHIT THEMSELVES!" the voice on hands -free screams into the mouthpeice of the other phone
"I see" I say calmly "Yes, our Monitor shows it up, it looks to be a bad segment of thinwire - please hold the line while I unplug it"
I press the "I just got a raise" button (AKA "Stop Traffic Generation") on the Lan Analyser, and almost immediately the user shouts back "Excellent, it's working now, thanks"
"That's ok, don't mention it. Have a nice day"
The big-boss has been listening to all this, so I reckon that the trip to his office won't be so bad after all. I tell him I'll be right down as soon as I secure the net and hang up. On the way down, I invent a new buzzword which always keep management happy. Complete Transient Lockout. Sounds much better than pulling the plug. Like Master-Reset sounds better than off-switch.
I get to his office and the staffing officer is there too. Uh-oh.
"Simon - How would you like to be our System Manager?"
?!!!
"Well... I don't know, I like that hands on.."
"Extra 10 grand a year, Varisty Car.."
"Monaro?"
"Ok"
"Sold!"
....And so ends the saga, as it should have at #10.
<spt (a) grace waikato ac nz>
Fonte: http://www.dicas-l.com.br/print/19970619.html
Semana 4Linux: A Importância da Segurança na Kernel Space
Semana 4Linux - A Importância da Segurança na Kernel Space
Colaboração: Tiago Luiz Maruyama
Em um passado não muito distante, um servidor configurado corretamente tinha seus riscos de ser invadido, mas esse risco era fisicamente dimencionado até os limites da sua rede local. Mas nos dias de hoje isso não é mais possível, por causa da chegada da Internet.
O grande crescimento de computadores interconectados, o crescimento de serviços virtuais e a quantidade de softwares com finalidades ilícitas, trazem como consequência a preocupação de se defender dessas pessoas mal intencionadas que posso utilizar esses softwares que tentam de várias formas invadir seu computador.
Existem vários aplicativos voltados a detectar a invasão do seu sistema, mas existem dois tipos de IDS, o que trabalha na user space (nível de usuário) ou kernel space (nível de kernel).
Podemos dizer que os IDS do tipo tripware que trabalha na camada de usuário podem ser mais vulneráveis, sendo assim burlados com mais facilidade, porque a maioria desses IDS tem arquivos de configuração, onde é informado , quais diretórios ou arquivos que precisam ter a proteção do IDS.
Caso a pessoa que efetuar a invasão não precisar fazer nenhuma alteração em arquivos, que estão relacionados no arquivo de configuração do IDS, somente fizer alterações em arquivos não configurados no IDS ou na camada de kernel ela possivelmente ela não será notada,tudo depende do contexto como o acesso arbitrário ocorreu.
Já com um sistema configurado com um IDS que esteja na camada de kernel, a dificuldade aumenta porque tudo o que a pessoa estiver tentando executar, gerará uma chamada no kernel(systemcall), assim como o IDS está na camada de kernel, todas as chamadas feitas geram mensagens de logs.
O registro das atividades dos usuários e serviços dos sistemas é, notoriamente, muito importante para os administradores e como foi citado o fato de todas as chamadas ao sistema que são negadas serem registradas, cria um cenário muito importante para auditorias futuras.
A importância de registro dos eventos do sistemas é tanta, que na norma NBR ISO/IEC 17799, o item 9.7.1 é todo dedicado ao "Registro (log) de eventos. Deixando claro que registro de eventos são também prioridade em uma política de segurança.
Em um sistema de log, oficialmente somente o root poderia alterar os arquivos de log, já com o Lids aplicado, nem o root teria o poder de alterar esses arquivos.
Lids é um path de segurança no nível de kernel, ou seja, é necessário a recompilação do kernel para a aplicação do path. Esse patch pode ser encontrado no site oficial do LIDS "www.lids.org" e o fonte do kernel em "www.kernel.org"
As ferramentas que acompanham o patch do Lids "lidsadm e lidsconf" são fáceis de utilizar e de configurar, elas estão no nível de usuário e servem para configurar as ACLs que serão determinadas pelo root, que, dependendo da configuração das ACLs do Lids, não será mais o dono do sistema, mas sim somente um usuário comum.
Como o Lids está no nivel de kernel, ele é acionado já no início do boot do sistema, portanto, já na inicialização o sistema se encontra protegido.
Com esse sistema de proteção no boot, ela nega permissão a muitos serviços padrões do sistema, como o dmesg, que gera um relatório de todo a inicialização do kernel. Isso é muito importante, por isso que se deve liberar o dmesg a gravar no diretório /var/log/.
# lidsconf -A BOOT -o /var/log/dmesg -j WRITE
Todos sabem que o arquivo /etc/shadow contém as senhas de todos os usuários do sistema e que as senhas estão criptografadas. Mesmo assim, existe um grande risco de alguém descobrí-las.
Por esse motivo, o LIDS trabalha da seguinte forma: ainda como usuário root é possivel determinar que nenhum binário vá conseguir o acesso a esse arquivo de senhas, colocando uma regra de DENY (proibido), por exemplo:
# lidsconf -A -o /etc/shadow -j DENY
Mas o mais importante é que para toda regra existem as exceções, podendo assim liberar qual binário poderá acessar o /etc/shadow como READONLY (somente leitura). Um exemplo claro, seria o binário /bin/login, que precisa ter permissão de leitura no arquivo para que possa efetuar o login normalmente.
# lidsconf -A -s /bin/login -o /etc/shadow -j READONLY
Mas caso se tente visualizar o conteúdo do arquivo com outros binários (por exemplo: vi, cat, more, etc..), o IDS acusará que esse arquivo não existe.
Da mesma que é possivel proibir o acesso as arquivos para todos os binários e liberar para alguns, também existe a possibilidade de ocultar processos, isso mesmo esconder os processos. Veja por exemplo como ocultar o processo do serviço ssh.
# ldisconf -A -s /usr/sbin/sshd -o CAP_HIDDEN -j GRANT
Quando tentar listar os processos da máquina, esse processo do serviço ssh não aparecerá, mas o serviço está ativo.
Diante desse poder de fogo sugiro como a melhor opção seria utilizar os dois sistemas de IDS, para que vc esteja protegido na camada de usuário e na camada de kernel. Assim dificultado em muito possiveis atividades arbritárias.
Mesmo hoje tendo recursos como LIDS e outros como o SELinux, GrSecurity, devemos pensar sempre de forma estratégica em tudo que for possivel e viável tanto na Kernel Space como na User Space, pois em algumas situações como uma estação de trabalho fica impraticavel o uso de um recurso com LIDS.
O Lids também é um mecanismo a mais para aumentar o nível de segurança de um sistema operacional buscando atender também as diretrizes inerentes ao nível C2 de segurança no que diz respeito o Sistema Operacional.
O nivel C2 recomendado pelo TCSEC " Trusted Computer System Evaluation Criteria", que é nível de segurança minimo requerido pelo governo Americano e utilizada em algumas instituições no Brasil.
Outro valor agregado nessa história é que somente conhecendo profudamente como o sistema funciona e as respectivas aplicações que estejam sendo executadas, conseguimos tirar proveito de um recurso como LIDS, pois do contrário simplesmente nada vai funcionar corretamente, ou seja, além de melhoramos a segurança do sistema e aprendemos muito a emoção é grande :-).
Novidade: O curso ** "Segurança em Servidores Linux usando a BS7799 " ** da 4linux mostra como fazer customizações no sistema Linux objetivando melhorar sua segurança, buscando correlacionar as ações no sistema com as recomendações da norma internacional BS7799. Esta norma é utilizada pois é focada em Segurança deInformação e apesar de tratar de vários ativos iremos focar apenas o ativo software, dessa forma o foco será nos itens da norma relacionados a Software.
Saiba mais no site http://www.4linux.com.br/treinamento/security_415.php ou ligue para (011) 2125-4747
Fonte: http://www.dicas-l.com.br/print/20050902.html
Leitura de Arquivos PDF Protegidos
Leitura de Arquivos PDF Protegidos
Colaboração: Fernando M. Roxo da Motta
Para a leitura de arquivos PDF criptografados, que requerem senha para sua visualização, é só usar o comando:
xpdf -upw <senha> arq.pdf
Fonte: http://www.dicas-l.com.br/print/20010124.html
Semana do Júlio Neves: Substituição de Processos
Semana do Júlio Neves - Substituição de Processos
Colaboração: Júlio Neves
Ontem aqui apareceu uma dica sobre named pipes, hoje vou mostrar que o Shell também usa os named pipes de uma maneira bastante singular, que é a substituição de processos (process substitution). Uma substituição de processos ocorre quando você põe um < ou um > grudado na frente do parêntese da esquerda. Teclando-se o comando:
$ cat <(ls -l)
Resultará no comando ls -l executado em um subshell como é normal, porém redirecionará a saída para um named pipe temporário, que o Shell cria, nomeia e depois remove. Então o cat terá um nome de arquivo válido para ler (que será este named pipe e cujo dispositivo lógico associado é /dev/fd/63), e teremos a mesma saída que a gerada pela listagem do ls -l, porém dando um ou mais passos que o usual.
Como poderemos constatar isso? Fácil... Veja o comando a seguir:
$ ls -l >(cat) l-wx------ 1 jneves jneves 64 Aug 27 12:26 /dev/fd/63 -> pipe:[7050]
É... Realmente é um named pipe.
Você deve estar pensando que isto é uma maluquice de nerd, né? Então suponha que você tenha 2 diretórios: dir e dir.bkp e deseja saber se os dois estão iguais (aquela velha dúvida: será que meu backup está atualizado?). Basta comparar os dados dos arquivos dos diretórios com o comando cmp, fazendo:
$ cmp <(cat dir/*) <(cat dir.bkp/*) || echo backup furado
ou, melhor ainda:
$ cmp <(cat dir/*) <(cat dir.bkp/*) >/dev/null || echo backup furado
Este é um exemplo meramente didático, mas são tantos os comandos que produzem mais de uma linha de saída, que serve como guia para outros. Eu quero gerar uma listagem dos meus arquivos, numerando-os e ao final dar o total de arquivos do diretório corrente:
while read arq do ((i++)) # assim nao eh necessario inicializar i echo "$i: $arq" done < <(ls) echo "No diretorio corrente (``pwd``) existem $i arquivos"
Tá legal, eu sei que existem outras formas de executar a mesma tarefa. Mas tente fazer usando while, sem usar substituição de processos que você verá que este método é muito melhor.
Até amanhã...
Duvidas? <julio neves (a) gmail com>
Deseja fazer curso de Programação em Shell? <julio neves (a) tecnohall com br>
Conheça também o livro de Programação Shell de Júlio Neves
Fonte: http://www.dicas-l.com.br/print/20050222.html
Vim: Edição de Múltiplos Arquivos
Vim - Edição de Múltiplos Arquivos
Colaboração: Danilo Gonzalez Hashimoto <<danilo (a) liec ufscar br>>
O vim pode ser utilizado para editar múltiplos arquivos, sem a necessidade de se usar janelas, como comentado em mensagens anteriores.
Para isto, basta digitar algo como:
vim arquivo1.txt arquivo2.txt arquivo3.txt arquivo4.txt
Será aberta uma janela com o conteúdo do arquivo1.txt, porém eu posso navegar entre os diversos arquivos da lista, segundo os comandos abaixo:
:e nomearquivo ; abre outro arquivo :ls ; lista os arquivos abertos :bn ; próximo arquivo :bp ; arquivo anterior :b1 ; vai para o primeiro arquivo, ou :b2, :b3, ...
Boletim EAD Links
A equipe EAD do Centro de Computação divulga mensalmente o Boletim EAD Links. Esse Boletim destina-se a informar sobre links relacionados com educação a distância.
Para fazer sua inscrição nesta lista visite http://www.ead.unicamp.br/php_ead/cadastro.php
Fonte: http://www.dicas-l.com.br/print/20030917.html
Mesclando arquivos de vídeo
Mesclando arquivos de vídeo
Colaboração: Rafael Martins
Eu já havia utilizado o comando cat para mesclar filmes em formato MPEG, porém acredito que seja o único formato que permite isso, para o formato AVI devemos utilizar o avimerge:
avimerge -o arq_saida.avi -i arq1.avi arq2.avi ...
ele vem no pacote transcode
Existe também o avicat, mas este não funciona tão bem quanto o avimerge, pois não suporta audio com VBR(taxa variável).
Fonte: http://www.dicas-l.com.br/print/20050719.html
Remoção de arquivos iniciados em -
Remoção de arquivos iniciados em -
Colaboração: Rubens Queiroz de Almeida
Uma pergunta que aparece com bastante frequencia nas listas de discussão de Unix é como remover arquivos que possuam nomes que comecem com "-". O Unix utiliza o caracter "-" como indicativo de flags para seus comandos.
Por exemplo, caso tenhamos um arquivo chamado "-a" e tentemos remove-lo
% rm -a rm: illegal option -- a Usage: rm [-firRe] [--] file ...
A operação não foi efetuada porque o argumento fornecido ao comando "rm" foi interpretado como uma opção e não como o nome de um arquivo. Para contornarmos este problema, basta preceder o nome do arquivo por um outro caracter "-", como exemplificado abaixo:
% rm - -a
Fonte: http://www.dicas-l.com.br/print/19970502.html
Conceitos sobre Tipos, Utilização e Gerenciamento de Backups
Conceitos sobre Tipos, Utilização e Gerenciamento de Backups
Colaboração: Renato José Rudnicki
Neste artigo, pretendo explicar um pouco sobre o que é um backup, quais os tipos, mídias usuadas e alguns conceitos importantes. Hoje é impossível pensar em uma empresa que não tenha backup, independente de se for pequena média ou grande. Em um próximo artigo, falarei sobre que tipos de backup tem um melhor custo/benefício dependendo do ambiente local.
1. Visão geral sobre Backup
O utilitário Backup ajuda a proteger os dados de perdas acidentais se ocorrerem falhas de hardware ou de mídia de armazenamento no sistema. Por exemplo, você pode usar o utilitário Backup para criar uma cópia dos dados que estão no disco rígido e arquivá-los em outro dispositivo de armazenamento. A mídia de armazenamento de backup pode ser uma unidade lógica, como um disco rígido, um dispositivo de armazenamento separado, como um disco removível, ou uma biblioteca inteira de discos ou fitas organizados e controlados por alterador robótico. Se os dados originais do disco rígido forem apagados ou substituídos acidentalmente ou se ficarem inacessíveis devido a um defeito do disco rígido, você poderá restaurar facilmente os dados usando a cópia arquivada.
2. Tipos de Backups
Se você perguntar a alguém que não é familiarizado com backups, a maioria pensará que um backup é somente uma cópia idêntica de todos os dados do computador. Em outras palavras, se um backup foi criado na noite de terça-feira, e nada mudou no computador durante o dia todo na quarta-feira, o backup criado na noite de quarta seria idêntico àquele criado na terça. Apesar de ser possível configurar backups desta maneira, é mais provável que você não o faça. Para entender mais sobre este assunto, devemos primeiro entender os tipos diferentes de backup que podem ser criados. Estes são:
- Backups completos
- Backups incrementais
- Backups diferenciais
3. Backups Completos
Este tipo consiste no backup de todos os arquivos para a mídia de backup. Conforme mencionado anteriormente, se os dados sendo copiados nunca mudam, cada backup completo será igual aos outros. Esta similaridade ocorre devido o fato que um backup completo não verifica se o arquivo foi alterado desde o último backup; copia tudo indiscriminadamente para a mídia de backup, tendo modificações ou não. Esta é a razão pela qual os backups completos não são feitos o tempo todo Todos os arquivos seriam gravados na mídia de backup. Isto significa que uma grande parte da mídia de backup é usada mesmo que nada tenha sido alterado. Fazer backup de 100 gigabytes de dados todas as noites quando talvez 10 gigabytes de dados foram alterados não é uma boa prática; por este motivo os backups incrementais foram criados.
4. Backups Incrementais
Ao contrário dos backups completos, os backups incrementais primeiro verificam se o horário de alteração de um arquivo é mais recente que o horário de seu último backup. Se não for, o arquivo não foi modificado desde o último backup e pode ser ignorado desta vez. Por outro lado, se a data de modificação é mais recente que a data do último backup, o arquivo foi modificado e deve ter seu backup feito. Os backups incrementais são usados em conjunto com um backup completo frequente (ex.: um backup completo semanal, com incrementais diários).
A vantagem principal em usar backups incrementais é que rodam mais rápido que os backups completos. A principal desvantagem dos backups incrementais é que para restaurar um determinado arquivo, pode ser necessário procurar em um ou mais backups incrementais até encontrar o arquivo. Para restaurar um sistema de arquivo completo, é necessário restaurar o último backup completo e todos os backups incrementais subsequentes. Numa tentativa de diminuir a necessidade de procurar em todos os backups incrementais, foi implementada uma tática ligeiramente diferente. Esta é conhecida como backup diferencial.
5. Backups Diferenciais
Backups diferenciais são similares aos backups incrementais pois ambos podem fazer backup somente de arquivos modificados. No entanto, os backups diferenciais são acumulativos, em outras palavras, no caso de um backup diferencial, uma vez que um arquivo foi modificado, este continua a ser incluso em todos os backups diferenciais (obviamente, até o próximo backup completo). Isto significa que cada backup diferencial contém todos os arquivos modificados desde o último backup completo, possibilitando executar uma restauração completa somente com o último backup completo e o último backup diferencial. Assim como a estratégia utilizada nos backups incrementais, os backups diferenciais normalmente seguem a mesma tática: um único backup completo periódico seguido de backups diferenciais mais frequentes. O efeito de usar backups diferenciais desta maneira é que estes tendem a crescer um pouco ao longo do tempo (assumindo que arquivos diferentes foram modificados entre os backups completos). Isto posiciona os backups diferenciais em algum ponto entre os backups incrementais e os completos em termos de velocidade e utilização da mídia de backup, enquanto geralmente oferecem restaurações completas e de arquivos mais rápidas (devido o menor número de backups onde procurar e restaurar). Dadas estas características, os backups diferenciais merecem uma consideração cuidadosa
6. ALGUMAS VANTAGENS E DESVANTAGENS
6.1. BACKUP COMPLETO
VANTAGENS: Os arquivos são mais fáceis de localizar porque estão na mídia de backup atual. Requer apenas uma mídia ou um conjunto de mídia para a recuperação dos arquivos.
DESVANTAGENS: É demorado. Se os arquivos forem alterados com pouca freqüência, os backups serão quase idênticos.
6.2. BACKUP INCREMENTAL
VANTAGENS: Requer a menor quantidade de armazenamento de dados. Fornece os backups mais rápidos.
DESVANTAGENS: A restauração completa do sistema pode levar mais tempo do que se for usado o backup normal ou diferencial.
6.3. BACKUP DIFERENCIAL
VANTAGENS: A recuperação exige a mídia apenas dos últimos backups normal e diferencial. Fornece backups mais rápidos do que um backup normal.
DESVANTAGENS: A restauração completa do sistema pode levar mais tempo do que se for usado o backup normal. Se ocorrerem muitas alterações nos dados, os backups podem levar mais tempo do que backups do tipo incremental.
7. Midias de Backup
7.1. Fita
A fita foi o primeiro meio de armazenamento de dados removível amplamente utilizado. Tem os benefícios de custo baixo e uma capacidade razoavelmente boa de armazenamento. Entretanto, a fita tem algumas desvantagens. Ela está sujeita ao desgaste e o acesso aos dados na fita é sequencial por natureza. Estes fatores significam que é necessário manter o registro do uso das fitas (aposentá-las ao atingirem o fim de suas vidas úteis) e também que a procura por um arquivo específico nas fitas pode ser uma tarefa longa.
Por outro lado, a fita é uma das mídias de armazenamento em massa mais baratas e carrega uma longa reputação de confiabilidade. Isto significa que criar uma biblioteca de fitas de tamanho razoável não abocanha uma parcela grande de seu orçamento, e você pode confiar no seu uso atual e futuro.
As unidades de fita são uma opção interessante apenas para quem precisa armazenar uma grande quantidade de dados, pois o custo por megabyte das mídias é bem mais baixo que o dos HDs e outras mídias. O problema é que o custo do equipamento é relativamente alto e as fitas não são muito confiáveis, o que acaba obrigando o operador a fazer sempre pelo menos duas cópias para ter um nível maior de segurança. Para quem tem um pequeno negócio ou para usuários domésticos elas definitivamente não valem à pena.
7.2. Disco
Nos últimos anos, os drives de disco nunca seriam usados como um meio de backup. No entanto, os preços de armazenamento caíram a um ponto que, em alguns casos, usar drives de disco para armazenamento de backup faz sentido. A razão principal para usar drives de disco como um meio de backup é a velocidade. Não há um meio de armazenamento em massa mais rápido. A velocidade pode ser um fator crítico quando a janela de backup do seu centro de dados é curta e a quantidade de dados a serem copiados é grande.
8. Tornando seus backups eficientes
- Etiquete claramente seus backups. Inclua o nome da máquina, a unidade, a data do backup e o número do disco ou fita. Uma etiqueta pode ser parecida com esta: BACKUP de Admin C: 15/07/99 #4/6
- Mantenha seus backups em lugar seguro, fresco e seco. É melhor manter backup importante fora do local do micro, de forma que, se o seu escritório pegar fogo, seus backups não se queimarão. Se não você puder armazená-los fora do prédio do escritório por alguma razão, pelo menos mantenha-os em um andar separado, para que eles possam manter-se a salvo do local de desastres.
- Não faça backups do que você não precisa, eles apenas o confundirão mais tarde. Se a sua empresa formatar o disco rígido de alguém e começar tudo do zero, desfaça-se dos backups uma vez que você tenha determinado que nada importante estava na unidade.
- Teste seus backups periodicamente para assegurar-se de que eles funcionam.Calor, umidade e campos eletromagéticos podem fazer com que seus dados se deteriorem. Em geral, discos e pessoas sentem-se bem nas mesmas temperaturas: se você não se sente à vontade depois de ficar algumas horas numa sala, seus backups também não se sentirão.
- Não mantenha backups por anos e espere que eles permaneçam intactos sem ajuda. As cargas positivas e negativas em seus discos tendem a neutralizar umas às outras, e um disco deixado na prateleira voltará lentamente a ter uma superfície virgem, da mesma maneira que se você tivesse escrito na areia de uma praia, a escrita irá lentamente enfraquecer a menos que você as regrave diariamente. Você pode dar vida nova a suas fitas copiando seus backups para um meio recentemente formatado e a seguir reformatar a fita antiga. As fitas são geralmente projetadas para durar 2 a 3 anos.
9. Armazenamento de Backups
O que acontece após completar os backups? A resposta óbvia é que os backups devem ser armazenados. Entretanto, não é tão óbvio o que deve ser armazenado e onde. Para responder a estas questões, devemos considerar primeiro sob quais circunstâncias os backups devem ser usados. Há três situações principais:
- Pequenos e rápidos pedidos de restauração dos usuários
- Grandes restaurações para recuperar de um desastre
- Armazenamento em arquivos, pouco provável de ser usado novamente
Infelizmente, há diferenças irreconciliáveis entre os números 1 e 2. Quando um usuário apaga um arquivo acidentalmente, ele pretende recuperá-lo imediatamente. Isto siginifca que a mídia de backup não pode estar há mais de dois passos distante do sistema para o qual os dados devem ser restaurados. No caso de um desastre que precisa de uma restauração completa de um ou mais computadores do seu centro de dados, se o desastre foi de natureza física, o que quer que tenha destruído seus computadores, também destruiria os backups localizados próximos dos computadores. Isto seria uma situação terrível.
O armazenamento em arquivos é menos controverso. Já que a chance de ser utilizado para qualquer propósito é baixa, não haveria problema se a mídia de backup estivesse localizada há quilômetros de distância do centro de dados. As táticas para resolver estas diferenças variam de acordo com as necessidades da empresa em questão. Uma tática possível é armazenar o backup de diversos dias na empresa; estes backups são então levados para um local de armazenamento mais seguro fora da empresa quando os backups diários mais novos forem criados.
Uma outra tática seria manter dois conjuntos diferentes de mídia:
- Um conjunto no centro de dados estritamente para pedidos imediatos de restauração
- Um conjunto fora da empresa para armazenamento externo e recuperação de desastres
Obviamente, ter dois conjuntos significa ter a necessidade de rodar todos os backups duas vezes para fazer uma cópia dos backups. Isto pode ser feito, mas backups duplos podem levar muito tempo e copiar requer diversos drives de backup para processar (e provavelmente um sistema dedicado a executar as cópias).
O desafio do administrador de sistemas é encontrar um equilíbrio que atenda adequadamente às necessidades de todos, e também assegurar que os backups estejam disponíveis para a pior das situações.
+Questões de Restauração+
Enquanto os backups são uma ocorrência diária, as restaurações normalmente representam um evento menos frequente. No entanto, as restaurações são inevitáveis; elas serão necessárias, portanto é melhor estar preparado. É importante atentar para os vários cenários de restauração detalhados ao longo desta seção e determinar maneiras para testar sua habilidade em resolvê-los. E tenha em mente que o mais dfiícil de testar também é o mais crítico.
10. Restaurando do Zero
"Restaurar do zero" significa restaurar um backup de sistema completo em um computador com absolutamente nenhum dado de nenhum tipo sem sistema operacional, sem aplicações; nada. Em geral, há duas táticas básicas para restaurações do zero:
Reinstalar, seguido de restauração
Aqui o sistema operacional base é instalado como se um computador novo estivesse sendo configurado. Após instalar e configurar o sistema operacional, os drives de disco restantes podem ser particionados e formatados, e todos os backups restaurados pela mídia de backup.
Discos de recuperação do sistema Um disco de recuperação do sistema é uma mídia iniciável (bootable) de algum tipo (geralmente um CD) que contém um ambiente de sistema mínimo, capaz de executar as tarefas mais básicas de administração de sistemas. O ambiente de recuperação contém os utilitários necessários para particionar e formatar os drives de disco, os drives de dispositivo necessários para acessar o dispositivo de backup e o software necessário para restaurar os dados pela mídia de backup.
11. Testando Backups
Todos os tipos de backup devem ser testados periodicamente para garantir que os dados podem ser lidos através deles. É fato que, às vezes, os backups executados são por algum motivo ilegíveis. O pior é que muitas vezes isto só é percebido quando os dados foram perdidos e devem ser restaurados pelo backup. As razões para isto ocorrer podem variar desde alterações no alinhamento do cabeçote do drive de fita, software de backup mal-configurado a um erro do operador. Independente da causa, sem o teste periódico você não pode garantir que está gerando backups através dos quais poderá restaurar dados no futuro.
Fonte: http://www.dicas-l.com.br/print/20070427.html
GNU/Linux: Backup de Arquivos Pessoais
GNU/Linux - Backup de Arquivos Pessoais
Para fazer um backup de todos os arquivos pertencentes a um determinado usuário, podemos conjugar os comandos tar e o comando find, como abaixo:
$ tar -cvf archive.tar ``find . -user queiroz -print``
Compactando:
$ tar -cvzf archive.tar.gz ``find . -user queiroz -print``
Uma aplicação interessante é executar este comando antes de remover um usuário do sistema de forma a se manter um backup de seus dados.
Fonte: http://www.dicas-l.com.br/print/20020710.html
Sistema gerenciador de documentos (DMS) via Web
Sistema gerenciador de documentos (DMS) via Web
Colaboração: Luciana Meneghel Cordeiro
O KnowledgeTree é um sistema gerenciador de documentos (DMS) via Web desenvolvido pela Jam Warehouse e licenciado segundo os termos da licença GNU/FDL (Free Documentation License) criada pela Free Software Foundation.
O sistema é código aberto e pode ser baixado juntamente com seu código fonte no site http://www.ktdms.com. Uma versão para demonstração está disponível em http://demo.ktdms.com/login.php aos usuários que desejam conhecer o sistema antes de instalá-lo.
O sistema oferece ferramentas que permitem e incentivam o compartilhamento do conhecimento por meio de documentos que são armazenados em um repositório de acesso aos usuários cadastrados no sistema. Entre as ferramentas estão: controle de versão, busca avançada, metadados, workflow e outras.
O KnowledgeTree usa metadados e uma estrutura de pastas para organizar os documentos no repositório. Uma funcionalidade do sistema oferece um método de categorização de documentos definido por metadado relacionado. Um documento do tipo 'artigo', por exemplo, tem um número de atributos relacionados a ele, que podem ser: autor, assunto do artigo ou data da publicação. Os atributos são referidos como campo metadado.
Para acessar o sistema o usuário necessita de um navegador atual, como o Firefox 1.0+ ou o Internet Explorer 6.0+. E para instalar
o KnowledgeTree em um servidor são necessários os seguintes requisitos:
- PHP 4.3.0 ou acima, mas abaixo de PHP 5.0.
- Bibliotecas PHP LDAP.
- MySQL Server, Cliente e biblioteca PHP, versão 4.0 ou acima.
- Apache 1.2 ou acima.
- Catdoc (requerido para indexar arquivos no Linux/UNIX).
- Xpdf (requerido para indexar arquivos no Microsoft Windows e Linux/UNIX, instalado pelo Windows Installer).
- Antiword (requerido para indexar arquivos no Microsoft Windows, instalado pelo Windows Installer).
- Info-Zip (requerido para indexar arquivos no Microsoft Windows, instalado pelo Windows Installer).
- Microsoft Windows 2000/2003 Server ou Linux ou FreeBSD ou Sun Solaris ou qualquer plataforma capaz de hospedar o Apache/MySQL/PHP descritos acima.
O sistema foi testado com Microsoft ActiveDirectory, OpenLDAP e iPlanet Directory Server, mas pode funcionar com qualquer diretório LDAP. O sistema atribui permissões aos usuários por meio do tipo de login que eles possuem. Isso determina quais funcionalidades estarão disponíveis ao usuário.
Mais informações
Fonte: http://www.dicas-l.com.br/print/20060430.html
Recuperando partições danificadas
Recuperando partições danificadas
Assim como no Windows, você nunca deve desligar o micro no botão ao rodar qualquer distribuição Linux.
Mas, acidentes acontecem. A energia elétrica acaba de vez em quando, alguns dos drivers de softmodems podem fazer o micro travar (estes drivers são proprietários, por isso não é possível corrigir bugs, como em outras partes do sistema; você depende unicamente da boa vontade do fabricante) e assim por diante.
Durante o boot, o sistema verifica as partições em busca de problemas, tentando resolver qualquer inconsistência no sistema de arquivos causado por um desligamento incorreto. Você pode perder alguns arquivos que ainda não tivesse sido salvos no HD, mas a idéia é que a verificação coloque todo o resto em ordem.
Para partições em ReiserFS é usado o reiserfsck, para partições em Ext2 ou Ext3 é usado o fsck e para partições em XFS é usado o xfs_repair.
Mas, em alguns casos, o dano pode ser grande o suficiente para que não seja possível repará-lo automaticamente, fazendo com que o sistema simplesmente deixe de dar boot.
Não há motivo para pânico. Você pode dar boot pelo CD do Kurumin e usá-lo para reparar as partições danificadas.
Abra um terminal e vire root (su), lembre-se que ao rodar o Kurumin pelo CD você pode definir a senha de root usando o comando "sudo passwd". A partição a ser reparada precisa estar desmontada. Vou usar como exemplo a partição /dev/hda1.
Se for uma partição Ext2 ou Ext3, use o comando:
# fsck /dev/hda1
Ele vai começar a apontar os erros e perguntar se cada um deve ser corrigido. Normalmente você pode ir apenas respondendo "y" para tudo, mas caso existam dados realmente importantes na partição é melhor prestar mais atenção. Arquivos danificados ou fragmentos de arquivos que puderam ser recuperados vão para a pasta "lost+found" no diretório raiz da partição.
Numa partição ReiserFS, comece com o comando:
# reiserfsck --check /dev/hda1
Ele exibe um aviso:
Do you want to run this program?[N/Yes] (note need to type Yes if you do):
Ou seja, você precisa digitar "Yes" para continuar, caso apenas dê Enter ele aborta a operação.
Ele vai verificar toda a estrutura do sistema de arquivos e indicar os erros encontrados. O próximo passo é usar a opção "--fix-fixable":
# reiserfsck --fix-fixable /dev/hda1
Este segundo comando efetivamente corrige todos os erros simples, que possam ser corrigidos sem colocar em risco as demais estruturas do sistema de arquivos. Em 90% dos casos isto é suficiente.
Caso seja encontrado algum erro grave, ele vai abortar a operação. Estes erros mais graves podem ser corrigidos com o comando:
# reiserfsck --rebuild-tree /dev/hda1
Este comando vai reconstruir do zero todas as estruturas do sistema de arquivos, vasculhando todos os arquivos armazenados. Esta operação pode demorar bastante, de acordo com o tamanho e quantidade de arquivos na partição. Nunca interrompa a reconstrução, caso contrário você não vai conseguir acessar nada dentro da partição até que recomece e realmente termine a operação.
O --rebuild-tree vai realmente corrigir qualquer tipo de erro no sistema de arquivos. Ele só não vai resolver o problema caso realmente existe algum problema físico, como por exemplo um grande número de setores defeituosos no HD.
Finalmente, caso você esteja usando uma partição formatada em XFS, comece com o:
# xfs_check /dev/hda1
Ele vai indicar os problemas encontrados. Para realmente corrigi-los, rode o:
# xfs_repair /dev/hda1
Assim como no caso do reiserfsck, todo o processo é automático. Ao contrário do ext2, tanto o reiserfs quanto o XFS são sistemas de arquivos muito complexos, por isso qualquer intervenção manual só aumentaria a possibilidade de destruir tudo.
Mas, ambos incluem algumas opções avançadas, que podem ser especificadas no comando. Você pode dar uma olhada dentro dos manuais: "man reiserfsck" ou "man xfs_repair".
Gostou da dica? Conheça outros trabalhos do autor
- Livro Impresso: Linux Ferramentas Técnicas Carlos E. Morimoto. 256 páginas, R$ 27.
- Agenda de cursos presenciais em SP e RS
Fonte: http://www.dicas-l.com.br/print/20050621.html
Fatiamento de arquivos para transferência em links de baixa qualidade
Fatiamento de arquivos para transferência em links de baixa qualidade
Colaboração: Roberto Baronas
A transferência de grande quantidade de dados entre servidores UNIX distantes, servidos por links de telecomunicação de baixa qualidade às vezes é um problema que nos causa grandes dissabores, principalmente devido às frequentes interrupções que possam ocorrer.
No meu caso, uma solução caseira que resolveu em definitivo o problema de transferência de quatro arquivos de +-600Mb entre o Brasil e a Bolívia, num link de baixa velocidade foi a seguinte:
Usei o comando split conforme mostrado abaixo, para fatiar os arquivos de 600Mb em aproximadamente oito arquivos de 80Mb cada:
split -b 80m o92dk1.tar dk1
Esse comando, pegou o arquivo o92dk1.tar com aproximadamente 600Mb de tamanho e o quebrou em fatias com o tamanho máximo de 80Mb, no caso, oito fatias, prefixadas pelo string dk1.
O resultado do que ocorreu pode ser visto abaixo:
-rw-r--r-- 1 oracle dba 649144320 Feb 3 15:17 o92dk1.tar -rw-r--r-- 1 root sys 83886080 Feb 15 16:52 dk1aa -rw-r--r-- 1 root sys 83886080 Feb 15 16:52 dk1ab -rw-r--r-- 1 root sys 83886080 Feb 15 16:52 dk1ac -rw-r--r-- 1 root sys 83886080 Feb 15 16:52 dk1ad -rw-r--r-- 1 root sys 83886080 Feb 15 16:52 dk1ae -rw-r--r-- 1 root sys 83886080 Feb 15 16:53 dk1af -rw-r--r-- 1 root sys 83886080 Feb 15 16:53 dk1ag -rw-r--r-- 1 root sys 61941760 Feb 15 16:53 dk1ah
A restauração pôde ser feita via comando cat, da seguinte forma:
cat dk1aa dk1ab dk1ac dk1ad dk1ae dk1aaf dk1ag dk1ah > novo_arquivo
Assim, pudemos, transmitir as fatias, e em caso de queda de link, perderiamos somente a fatia que estava sendo transmitido no momento da queda. As fatias já transferidas estavam salvas.
Para testar a integridade dos arquivos, bastou utilizar o comando cksum no arquivo original o92dk1.tar e no arquivo de destino arquivo_novo. Os números do resultado devem ser os mesmos para ambos os arquivos. Abaixo temos um exemplo:
cksum o92dk1.tar 97395000 649144320 o92dk1.tar cksum arquivo_novo 97395000 649144320 arquivo_novo
O valor verificador encontrado foi o número 97395000 para os dois arquivos, o que provou a integridade dos mesmos.
Finalmente, temos um exemplo do script que foi utilizado no servidor de destino para efetuar a transferência dos arquivos:
ftp -n -i -v arcturus.ho.u2236.unilever.com << eod >>zz_ftp.log 2>&1 user usuario senha pwd lcd /diretorio_de_origem cd /diretorio_de_Destino get dk1aa get dk1ab get dk1ac get dk1ad get dk1ae get dk1af get dk1ag get dk1ah eod
Sistema Operacional utilizado: HP-UX 11i ou 11.11
Bem, espero que esse procedimento lhes possa ser útil. No meu caso, ajudou, e muito...
Roberto Baronas
Fonte: http://www.dicas-l.com.br/print/20050322.html
Migracao sistemas de arquivos EXT3 para RAID-X
Migracao sistemas de arquivos EXT3 para RAID-X
Colaboracao: Jairo Willian Pereira - jairo(at)progonos(dot)com
Passo 00: Material Necessario
- Live-CD de reparacao bootavel c/ raidtools (ex. Knoppix 3.x)
- PC auxiliar para a replicacao dos dados e reconstrucao dos arrays
- HD adicional
- raidtools 0.9 (ou posterior) instalado na maquina "em migracao"
Passo 01: Introducao
Dispositivos RAID sao combinacoes de particoes em arrays de algum tipo previamente definido. Significa "Redundant Array of Inexpensive Disks" e foram inicialmente implementados e definidos por pesquisadores da Universidade de Berkeley, Califórnia. Atualmente existem onze onze tipos de RAID (0, 1, 2, 3, 4, 5, 6, 7, 10, 53 e 0+1), sendo os mais comuns:
RAID0 - Stripping Disc. Funciona transformando diversos discos em uma unica unidade. Prove maior velocidade de acesso em funcao de segmentar os dados entre os discos envolvidos no processo. O fator "seguranca" eh prejudicado, nao fornecendo qualquer tipo de redundancia. Minimo de 2 particoes.
RAID1 - Mirror Disc. Trabalha com sistema de espelhamento, onde a informacao gravada em um disco eh duplicada no disco parceiro. Se comparado ao RAID0, perde no quesito velocidade, mas fornece seguranca adicional a partir do clone. Nesse sistema, pode haver utilizacao de discos "Spare" aumentando proporcionalmente a seguranca do sistema. O espaco disponivel e uma das desvantagens, visto que trabalha com duplicacao da informacao. Minimo de 2 particoes.
RAID5 - Parity Disc. Similar ao RAID-0, mas implementa paridade de dados através do funcao logica XOR. Assim, consegue uma camada de seguranca adicional, usando um dos discos como disco de paridade (o RAID4 eh similar, mas grava a informacao de paridade no mesmo disco). Minimo de 3 discos.
Passo 02: Backup das Particoes de Dados
Para maior seguranca durante processo de migracao, eh altamente recomendado o backup do disco origem, seja em midia removivel ou outro dispositivo de armazenamento em massa. Eh altamente recomendado que o usuario leia mesmo que parcialmente a manpage das utilitarios envolvidos nesse processo.
Passo 03: Replicacao dos Dados e Reconstrucao dos Arrays
Como inicialmente voce precisara de mais um disco para o processo de RAID, recomendo que particione e formate o novo disco exatemente igual ao disco origem. Faca um clone do disco origem (leia original, ou o disco principal) para o disco de destino, remove o disco original e execute as operacoes seguintes no disco de destino/clonado. Somente apos o RAID estar completamente em pe, enisra o disco original (que tambem deve ter uma copia reserva) e junte-o ao RAID.
Efetuar o boot do Live-CD de reparacao (Knoppix 3.x). Nesta configuracao, os disposistivos devem ser reconhecidos pelo sistema da seguinte forma:
/dev/hda - CD-ROM /dev/hde - Disco IDE-1 (Promise) - Original /dev/hdg - Disco IDe-2 (promise) - Clone
Essa copia pode ser efetuada particao a particao utilizando o tar.
# mount /dev/hdex /mnt/hdex # mount /dev/hdgx /mnt/hdgx # (cd /mnt/hdex; tar cpvls --atime-preserve --same-owner -f - .) | (cd /mnt/hdgx; tar xf -)
Recomendo que faca apenas o particionamento, visto que essa "nova particao sera posteriormente formatada". A ideia da copia eh interessante apenas para ter uma "garantia extra" enquanto o processo nao eh finalizado. Se preferir fazer a copia do disco por inteiro, podera utilizar tambem o dd.
# dd if=/dev/hde of=/dev/hdg bs=1024
Finalizado o processo, os discos ja estao particionados e operacionais. Removeremos o disco original, colocaremos o disco clonado na posicao do original, faremos um novo reboot com o Live-CD e alteraremos a definicao do tipo para cada particao participante do RAID. Veremos como inicialmente encontram-se as atuais particoes do disco CLONADO.
# fdisk -l /dev/hde Disk /dev/hde: 255 heads, 63 sectors, 9729 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hde1 1 1913 15366141 83 Linux /dev/hde2 1914 3188 10241437+ 83 Linux /dev/hde3 3189 3316 1028160 83 Linux /dev/hde4 3317 9729 51512422+ 5 Extended /dev/hde5 3317 3447 1052226 82 Linux swap /dev/hde6 3448 4340 7172991 83 Linux
Efetuando as alteracoes, o fdisk devera apresentar:
# fdisk -l /dev/hde Disk /dev/hde: 255 heads, 63 sectors, 9729 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hde1 1 1913 15366141 fd Linux raid autodetect /dev/hde2 1914 3188 10241437+ fd Linux raid autodetect /dev/hde3 3189 3316 1028160 fd Linux raid autodetect /dev/hde4 3317 9729 51512422+ 5 Extended /dev/hde5 3317 3447 1052226 82 Linux swap /dev/hde6 3448 4340 7172991 fd Linux raid autodetect
A snn informacoes sobre os dispositivos RAID, ficam armazenadas em /etc/raidtab. O arquivo eh o mesmo utilizado para qualquer tipo de RAID, alterando apenas opcoes especificas para cada tipo. Nesse exemplo (RAID1), nao ha presenca de "spare-disk" e tenho o indicador de falha de disco comentado. Vamos contruir o arquivo (esse arquivo devera ser gerado no disco de original, visto que posteriormente sera copiado para o HD destino).
#Partition 1 - /home raiddev /dev/md0 raid-level 1 nr-raid-disks 2 persistent-superblock 1 chunk-size 64k nr-spare-disks 0 device /dev/hde1 # failed-disk 0 raid-disk 0 device /dev/hdg1 raid-disk 1 #Partition 2 - /var raiddev /dev/md1 raid-level 1 nr-raid-disks 2 persistent-superblock 1 chunk-size 64k nr-spare-disks 0 device /dev/hde2 raid-disk 0 device /dev/hdg2 raid-disk 1 # Partiion 3 - /other raiddev /dev/mdX raid-level 1 nr-raid-disks 2 persistent-superblock 1 nr-spare-disks 0 device /dev/hdeY raid-disk 0 device /dev/hdgY raid-disk 1
Esse arquivo so vai entrar em funcionamento, quando as aplicacoes RAID (raidtools) estiverem operacionais, os dispositivos RAID completamente inicializados e adicionados alem de /etc/fstab estar apontado para os novos dispositivos (/dev/mdx). Esse processo sera posteriormente apresentado.
Para melhor ilustrar a disposicao dos arrays, no caso do arquivo anteriormente apresentado, temos:
md0 - formado por hde1 e hdg1 (/home) md1 - formado por hde2 e hdg2 (/var)
E assim sucessivamente para as demais particoes. Vale mencionar, que a particao de SWAP nao foi adicionada para participar do RAID. Um truque interessante esta em definir no arquivo /etc/fstab ambas as particoes de SWAP (hde5 e hdg5) com a mesma prioridade (pri=3).
Apos todas as definicoes, efetuaremos a construcao em background dos arrays. Para cada dispositivo raid (mdX), executar:
# mkraid /dev/mdX
Todo progresso da criacao dos arrays podera ser visulizada atraves do arquivo /proc/mdstat e poderao ser imediatamente utilizados apos a insercao do comando (nao ha necessidade de esperar a finalizacao). Caso deseje acompanha-lo, constantemente:
# while true; do clear; cat /proc/mdstat; sleep 5; done
Feito a inicializacao dos dispositivos RAID, refaremos a formatacao das particoes do disco (esse passo eh destrutivo e necessitara das informacoes do Backup oriundas do disco origem). Para cada dispositivo raid (mdX):
# mkfs -j -m0 -L <label> /dev/mdX
(onde <label> sera o nome da particao destino, e.g. /home, /var, etc...)
# fsck -f /dev/mdX
Finalizado esse processo, devemos montar os sistemas de arquivos backupeados e tranferi-los para a nova particao. Idealmente devemos criar para cada particao, uma diretorio dentro do respectivo destino (velho para disco backup e novo para disco RAID).
# cd /mnt; mkdir velho novo # cd /mnt/velho; # cd /mnt/novo;
Para cada particao, executaremos:
# mount -t ext3 /dev/hdVelho /mnt/velho/[home|root|var|...] # mount -t ext3 /dev/mdNovo /mnt/novo/[home|root|var|...]
Executando a copia dos dados das particoes antigas para as novas particoes.
# (cd /mnt/velho/xxx; tar cpvls --atime-preserve --same-owner -f - .) | (cd /mnt/novo/xxx; tar xf -)
Apos conferido a perfeita copia dos discos, remover os discos de backup, e rebootar a maquina. Obs: muita atencao com a posicao dos discos na controladora IDE. Outro detalhe, diz respeito a sobreposicao de arquivos. Lembre-se que voce devera ter as copias dos arquivos editados atualizadas no disco de origem!
Finalizado a copia, chegou a hora das alteracoes dos arquivos previamente editados. Boot a maquina com o Live-CD e monte a particao onde se encontra o diretorio root.
Edite os arquivos de configuracao para refletir as alteracoes na nomenclatura do disco no sistema, caso haja alguma mudanca (hde -> hdc ou outra alteracao).
Em sistemas Linux, a definicao & distribuicao do sistema de arquivos fica armazenado em /etc/fstab. O arquivo apresentado, inicialmente ainda esta usando o esquema de particoes antigo.
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/hde1 /home ext3 defaults 0 2 /dev/hde2 /var ext3 defaults 0 2 /dev/hde3 / ext3 errors=remount-ro 0 1 /dev/hde5 none swap sw,pri=3 0 0 /dev/hdg5 none swap sw,pri=3 0 0 /dev/hde6 /usr ext3 defaults 0 2 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
A nova versao devera comportar sua nova estrutura de dispositivos RAID, ficando:
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> /dev/md0 /home ext3 defaults 0 2 /dev/md1 /var ext3 defaults 0 2 /dev/md2 / ext3 errors=remount-ro 0 1 /dev/hde5 none swap sw,pri=3 0 0 /dev/hdg5 none swap sw,pri=3 0 0 /dev/md3 /usr ext3 defaults 0 2 proc /proc proc defaults 0 0 /dev/fd0 /floppy auto user,noauto 0 0 /dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
Feito as alteracoes, os arquivos do BootLoader deverao ser atualizados para refletir as modificacoes. Nesse exemplo (usando Grub), o arquivo grub.conf foi modificado para apontar para as identificaoes RAID.
kernel /boot/vmlinuz-2.4.20-13.7 ro root=/dev/md2 hda=ide-scsi
Obs: O Lilo oferece opcoes mais interessantes para lidar com boot alternativo em dispositivos RAID em caso de falhas. Segue exemplo de uma bem interessante. Consulte a manpage do programa para informacoes sobre compatibilidade e outros recursos.
boot=/dev/md2 raid-extra-boot="/dev/hde,/dev/hdg"
Passo 04: Ajustes Finais
Nesse ponto, reinstalar o grub, alterando antes para ambiente chroot apontando para a nova instalacao.
# chroot /mnt/novo /bin/bash # grub ... grub> root (hd0,0) grub> setup (hd0) grub> quit
Bootar o servidor e verificar se todo o sistema monta da maneira desejada.
Passo 05: Leitura Complementar & Links Interessantes
- Boot + Root + Raid + Lilo : Software Raid mini-HOWTO http://www.faqs.org/docs/Linux-mini/Boot+Root+Raid+LILO.html
- Root RAID HOWTO cookbook http://www.linux.org/docs/ldp/howto/Root-RAID-HOWTO.html
- Linux ATA RAID HOWTO http://www.tldp.org/HOWTO/ATA-RAID-HOWTO/index.html
- The Software-RAID HOWTO http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html
Fonte: http://www.dicas-l.com.br/print/20041017.html
Recuperando arquivos em partições ReiserFS
Recuperando arquivos em partições ReiserFS
Colaboração: André Luiz Fré
Recentemente onde trabalho foi necessário recuperar os arquivos de uma partição ReiserFS formatada acidentalmente. Pesquisando na internet, descobri uma dica[1] que ensina a fazer a recuperação de arquivos apagados e também de partições formatadas.
Aqui vai um passo-a-passo simples para exemplificar todo o processo.
Suponha que se deseja recuperar arquivos da partição /dev/hda2, e que exista uma partição /dev/hda1 para escrita.
Os procedimentos são:
- efetuar boot através de um Live CD
- montar uma partição para gravação (não deve ser a partição que se deseja recuperar!!):
# mkdir /mnt/logs # mount /dev/hda1 /mnt/logs
- gerar lista de badblocks presentes na partição que se deseja recuperar:
# badblocks -o /mnt/logs/badblocks.log /dev/hda2
- executar o utilitário reiserfsck na partição a ser recuperada:
# reiserfsck --rebuild-tree -S -l /mnt/logs/reiserfsck.log -B /mnt/logs/badblocks.log /dev/hda2
Os arquivos recuperados serão colocados no diretóriolost+foundna raiz da partição/dev/hda2.
Observações:
O reiserfsck pode abortar a execução caso encontre badblocks que não estão listados no arquivo badblocks.log. Neste caso, é necessário adicioná-los manualmente ao arquivo (a mensagem do reiserfsck indica quais são os blocos defeituosos).
Também não é garantido que o utilitário mantenha os nomes originais dos arquivos, podendo nomeá-los segundo o número do bloco onde estavam. Se você não conseguir encontrar aquele documento pelo nome, mas ainda sim lembrar-se de algum texto do conteúdo, pode usar o utilitário grep [2] para realizar a busca dentro dos arquivos recuperados.
Referências:
- [1] ReiserFS undelete/data recovery HOWTO <http://www.antrix.net/journal/techtalk/reiserfs_data_recovery_howto.comments>
- [2] http://www.dicas-l.com.br/dicas-l/19980702.php
KDE 4 disponível para Kubuntu
Fonte: Notícias Linux
Esta nota de imprensa informa a disponibilidade do KDE 4 para o Kubuntu. É uma versão para os desenvolvedores de aplicações, que poderão ir testando/compilando seus programas sob a nova versão. Parece que se pode conviver com KDE 3 e que incialmente não tem nenhuma mudança visual".
Confira: http://kubuntu.org/announcements/kde4-3.80.1.php Fonte: http://barrapunto.com/articles/06/09/11/239243.shtml
Comente: http://www.noticiaslinux.com.br/nl1158114408.html#comentarios
Fonte: http://www.dicas-l.com.br/print/20060917.html
Inicialização automática de programas e arquivos no KDE
Inicialização automática de programas e arquivos no KDE
Colaboração: Jaime Belmiro dos Santos
Uma das facilidades que os usuários mais nos requisitam é a inicialização automática de programas e/ou arquivos ao se logarem na interface gráfica do Linux.
Uns pedem a inicialização automática do cliente de e-mail, alguns do navegador de internet e ainda outros solicitam aquela planilha eletrônica em que trabalham quase todo o dia.
Para os usuários do KDE, exite o diretório Autostart no seguinte caminho:
/home/usuario/.kde/Autostart
Basta criar, neste diretório, um link simbólico para o programa ou arquivo que se deseja inicializar automaticamente.
Exemplo 1:
Para iniciar meu navegador de internet favorito (Opera) ao iniciar a sessão do KDE, primeiro descubro qual o caminho do executável do Opera através do comando which.
~$ which opera /usr/bin/opera
Em seguida, crio o link simbólico dentro do diretório Autostart.
$ ln -s /usr/bin/opera /home/usuario/.kde/Autostart/opera
Exemplo 2:
Para iniciar uma planilha eletrônica junto com o KDE, posso realizar o link simbólico do próprio arquivo a ser aberto.
$ ln -s /home/usuario/planilhas/financas.ods /home/usuario/.kde/Autostart/financas
Encerro a minha sessão KDE e, ao iniciá-la, lá estão meus programas e arquivos abertos automaticamente.
Fonte: http://www.dicas-l.com.br/print/20061004.html
Como listar os arquivos mais velhos e os arquivos maiores de um diretório
Como listar os arquivos mais velhos e os arquivos maiores de um diretório
Colaboração: Daniel de Souza Carvalho
Quando um "file system" está cheio as aplicações podem parar de funcionar!
O sistema está parado e você precisa liberar espaço, o telefone não para de tocar com gente reclamando e você não é o administrador desta máquina! E agora? Como liberar espaço?
Para procurar os diretórios com a maior quantidade de arquivos:
du -k . | sort -n -k 1 | tail -30
Para listar em um diretório os arquivos mais velhos:
ls -lt | tail -30
Para listar os arquivos maiores:
ls -l | sort -n -k 5 | tail -30
Agora é escolher os arquivos e jogar os grandes para a fita ou ou outro servidor, mais é bom saber quais arquivos podem ser removidos! :-)
Quando o "file system" tiver 90% de espaço ou algo assim, você pode compactar os arquivos grantes restantes com gzip, e eles ainda vão estar disponíveis para os usuários. Procure por arquivos PDF, PPT, DOC e a fins, que a principio não vão causar problemas sendo compactados. Agora arquivos ZIP, JPG, MP3 não adianta compactar!!!
É bom criar um script que envia um e-mail de alerta para o administrador do servidor, quando o "file system" estiver mais ou menos a 80%.
Chamada de Trabalhos para o FESTSOL, Juiz de Fora, MG
Está aberta até o dia 30 de julho de 2005, a chamada de trabalhos para o FESTSOL - FESTIVAL DO SOFTWARE LIVRE, que acontecerá nos dias 17 e 18 de setembro de 2005, no CTU - Colégio Técnico Universitário da UFJF (Universidade Federal de Juiz de Fora/MG), em Juiz de Fora/MG.
Os trabalhos devem ser enviados para o e-mail <apresenta (a) festsol com br> com os dados da (o) proponente (nome completo, curriculum, e-mail, telefones com códido de área, endereço) e da palestra (título e resumo). Os resultados serão divulgados no site do evento no dia 10 de agosto.
Mais informações no site do evento: www.festsol.com.br
Fonte: Equipe FESTSOL <http://festsol.com.br/www.festsol.com.br>
Fonte: http://www.dicas-l.com.br/print/20050706.html
Bloqueando anexos no qmailtoaster com MIME
Bloqueando anexos no qmailtoaster com MIME
Colaboração: Saulo Fabrin
Umas das maneiras de bloquear arquivos em anexo no qmail é utilizando o padrão MIME(codificador de arquivos) através do badmimetypes/badmimetypes.cdb .
Para bloquear arquivos com extensão .exe ou .xls por exemplo é necessário saber qual a codificação correspondente em MIME para inserir no arquivo badmimet ypes.
Conteúdo do arquivo badmimetypes (/var/qmail/control/)
#MIME : TVpQAAIAA - bloqueia arquivos com extensão .exe : 0M8R4KGxG - bloqueia arquivos com extensão .xls
De acordo com algumas documentações do qmail para realizar este trabalho seria necessário enviar email(com arquivo em anexo .exe ou .xls) para uma determinada conta e utilizar um editor para abrir a mensagem e retirar dela a codificação MIME, mas existe uma maneira mais fácil de obter estas informações como veremos a seguir:
MIME
: Obtendo codificação para bloquear .exe : # perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' : < nome-arquivo.exe | head -1 | cut -c1-9 : TVpQAAIAA : Obtendo codificação para bloquear .xls : # perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' : < nome-arquivo.xls | head -1 | cut -c1-9 : 0M8R4KGxG : Outra codificação para .exe : # perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' : < nome-arquivo.exe | head -1 | cut -c1-9 : TVqQAAMAA
O badmimetypes necessita dos nove primeiros caracteres para realizar os bloqueios, por este motivo foi utilizado o "head -1 | cut -c1-9"
Atualizando
Vamos atualizar o badmimetypes.cdb com os códigos gerados para que os bloqueios entre em vigor
: echo "TVpQAAIAA" >> /var/qmail/control/badmimetypes : echo "0M8R4KGxG" >> /var/qmail/control/badmimetypes : echo "TVqQAAMAA" >> /var/qmail/control/badmimetypes /var/qmail/bin/qmail-badmimetypes
Após isto basta realizar testes de envio com arquivos .exe e .xls e verificar se os mesmos são bloqueados com sucesso. A codificação MIME também pode ser utilizada para bloquear vírus, basta executar o mesmo procedimento com o arquivo infectado e atualizar o badmimetypes.cdb
Fonte: http://www.dicas-l.com.br/print/20060307.html
Criação de Arquivos MP3
Criação de Arquivos MP3
Eu sempre me esqueço quais comandos usar para criar arquivos MP3 a partir dos meus CDs. Para automatizar o processo, eu criei um script bem simples, que faz isto para mim.
É preciso que o seu computador possua os softwares cdparanoia e lame instalados.
#!/bin/sh cdparanoia -B for file in *.wav do lame -h $file ``echo $file | sed 's/wav/mp3/'`` done rm *.wav
Fonte: http://www.dicas-l.com.br/print/20020801.html
Gerenciamento de Espaço em Disco
Gerenciamento de Espaço em Disco
Colaboração: Rubens Queiroz de Almeida
A tarefa de manter espaço em disco em quantidade suficiente para que os usuários consigam trabalhar e o sistema operacional consiga funcionar decentemente é uma das mais importantes do administrador de sistemas.
O comando "find" é uma ferramenta excelente para desempenhar este tipo de tarefa.
Existem arquivos que aparecem no sistema de tempos em tempos e que ocupam um espaço considerável e não servem para nada.
Arquivos chamados "core" por exemplo são resultados de um dump de memória realizado por um programa para que o programador determine o que ocorreu de errado. Normalmente a maioria das pessoas não se dão ao trabalho de remover estes arquivos e eles continuam a existir no seu disco por um longo tempo, apenas ocupando espaço.
Arquivos postscript também ocupam muito espaço. Não recomendo que se remova estes arquivos, mas pelo menos eles podem ser compactados.
Arquivos há mais de um dia sem serem modificados e residentes no diretório /tmp, também não devem continuar vivendo.
Alguns administradores também têm por hábito remover os arquivos chamados a.out (embora isto possa gerar atritos com alguns usuários).
Também pode ser interessante descobrir quem está abrigando arquivos realmente grandes em seus diretórios para se tomar providências.
Bem, a descoberta de todos estes arquivos e as ações apropriadas podem ser tomadas automaticamente através de um simples shell script:
#! /bin/sh # Encontra e apaga arquivos chamados core find / -name core -print | xargs rm # Encontra e compacta arquivos postscript find / -name *.ps -print | xargs gzip # Encontra e remove arquivos chamados a.out find / -name a.out -print | xargs rm # Descobre arquivos maiores que 2048 blocos de 512 bytes e envia a relação # para o administrador de sistemas find / -size +2048 -print | xargs ls -l | mail root # Apaga arquivos residentes no diretório /tmp que não tenham sido # modificados há mais de um dia find /tmp -mtime +1 -print | xargs rm
Pensamento do Dia :-)
"Estive recentemente na América Latina e a única lembrança que eu tenho e a de que eu não estudei muito Latim na escola e não pude me comunicar com o povo de lá muito bem." (Vice-Presidente dos E.U.A. Dan Quayle)
Fonte: http://www.dicas-l.com.br/print/19970523.html
Linux: Tipos de Arquivos
Linux - Tipos de Arquivos
Em sistemas Linux, encontramos diversos tipos de arquivos, geralmente identificados por suas terminações:
Arquivos compactados com o programa compress .Z Arquivos criados com o comando `tar' (tape archive) .tar Arquivos compactados com o programa gzip .gz Arquivos criados com o comando `tar' e compactados com o programa `gzip' .tgz Arquivos texto .txt Arquivos html .html/.htm Arquivos PostScript .ps Arquivos de áudio .au/.wav Arquivos de imagens .xpm/.jpg/.gif/.png Arquivos de Distribuição de Software (Red Hat Package Manager) .rpm Arquivos de configuração .conf Código fonte de programas C .c Arquivos de Cabeçalho .h Código Objeto .o Programas Perl .pl Programas TCL .tcl Código Compartilhado .so
Esta é a convenção, que nem sempre é usada. Pode-se perfeitamente criar um arquivo texto que não tenha a terminação .txt. O comando `file' nos permite identificar a que categoria um arquivo pertence. Vejamos alguns exemplos:
$ file /etc/passwd n* /etc/passwd: ASCII text networks: empty nscd.conf: ASCII text nsswitch.conf: English text ntp: directory ntp.conf: English text
O comando `file' baseia suas decisões consultando o arquivo `/usr/share/magic', onde estão registradas as características dos principais tipos de arquivos do sistema. Para maiores informações consultar a documentação do arquivo `magic'.
Fonte: http://www.dicas-l.com.br/print/20000309.html
10 anos de dcraw
10 anos de dcraw
Colaboração: Bruno Buys
O dcraw fez 10 anos de idade no dia 23 de fevereiro. Ele é um utilitário que permite a decodificação de mais de 240 formatos proprietários de imagens de câmeras digitais. Sim, câmeras podem gravar imagens em jpeg, e é o que a maioria delas faz, e para vê-las não é necessário nenhum software especial. Mas podem também gravar no formato cru (ou 'raw', em inglês), que é mais apropriado para trabalho avançado em fotografia e impressão em alta resolução. E para decodificar os formatos crus, o software livre mais usado da atualidade é o dcraw.
O projeto é tocado por Dave Coffin, e mora em www.cybercom.net/~dcoffin/dcraw. Apesar do tamanho modesto, ele é de fundamental importância para o trabalho em fotografia avançada no GNU/Linux.
Câmeras digitais avançadas e/ou profissionais são capazes de gerar arquivos 'crus', ou seja, que contém todos os dados luminosos captados pelo CCD, com pouco ou nenhum tratamento na câmera e sem a perda de informação característica do jpeg. Estes arquivos, depois de serem convertidos para formatos como o tif ou ppm, são o melhor material para serem tratados em softwares de edição de imagem. E é aqui que o problema começa: cada fabricante de câmeras tem seu formato cru específico, diferente e incompatível. A cada nova geração de câmeras os formatos mudam, e como se isso não bastasse, alguns fabricantes (Nikon, por exemplo) parecem estar optando por criptografar os dados dos arquivos crus. Junto com a câmera o fabricante fornece uma mídia de instalação do software decodificador... para Windows ou Mac, é claro. Versão para GNU/Linux, sem chance. Abrir especificações dos formatos de arquivos, então, nem pensar.
O Dave Coffin passa a maioria do tempo de trabalho no dcraw fazendo engenharia reversa dos formatos de arquivos de câmeras. Segundo uma de suas entrevistas, ele até já se tornou bom na coisa! E o dcraw tem sido usado em uma série de outros programas livres ou nem tanto (somente uns trechos do código está sob a gpl, o resto é domínio público, mesmo).
O dcraw se tornou uma ferramenta presente na maioria das distribuições modernas. É pequeno, rápido e portável. E, segundo alguns fotógrafos, produz resultados *melhores* do que os softwares originais dos fabricantes.
Quem quiser se informar mais sobre a briga de foice em torno dos formatos crus pode ir até www.openraw.org. É uma iniciativa para pressionar a indústria a abrir especificações, ou a aderir a um formato raw público.
Nada melhor para comemorar o 10o aniversário de um software do que lançando uma nova versão!
O Dave não descansa: para a versão 8.60 ele implementou um novo tipo de filtro capaz de separar a informação real do ruído com mais precisão, melhorando até mesmo imagens de ISO mais baixo.
Se você tem uma câmera que grava em raw, uma olhada no projeto é altamente recomendada. Tem man page e ajuda em português. E se você não tem, vale conhecer o projeto assim mesmo. É um belo exemplo da força do software livre.
Fonte: http://www.dicas-l.com.br/print/20070316.html
Busca por Arquivos Grandes
Busca por Arquivos Grandes
Antes da dica de hoje gostaria de fazer um esclarecimento. O curso à distância de C da UFMG foi retirado do ar, não sei por qual razão. Quando escrevi a dica ele estava lá firme e forte. Mas a Web é assim mesmo, as coisas vêm e vão. Infelizmente este curso gerou um grande interesse por parte de muitas pessoas que infelizmente não puderam se utilizar dele. Como eu disse, eu não sei o que ocorreu, mas pode ser que em breve tudo volte ao ar.
Agora, a dica do dia:
Para encontrar os arquivos que estão ocupando muito espaço em seu sistema existem várias maneiras.
A primeira delas é com o comando find:
find . -size +1024k -print
Este comando faz uma busca, a partir do diretório corrente, por arquivos que possuam um tamanho superior a 1024k ou 1MB.
É possível também associar a saída do comando find ao comando ls para sabermos exatamente o tamanho dos arquivos encontrados:
find . -size +1024k -print | xargs ls -l
Podemos também ordenar a saída gerada do maior para o menor arquivo:
find . -size +1024k | xargs ls -l| sort +4 -nr
O comando sort vai ordenar a saída numericamente (-n) tomando por base o valor do quinto campo (a contagem começa em zero, que é o default) e reverter o resultado (-nr), colocando os maiores valores na frente.
Para ficar ainda melhor podemos fazer uma listagem contendo apenas o nome do arquivo e seu tamanho:
find . -size +1024k | xargs ls -l| sort +4 -nr |awk ''
Para encerrar, coloque a linha acima em uma shell script, chamada, por exemplo, de findbig de forma a tornar mais fácil o seu uso.
Todos os comandos acima foram testados em um sistema Conectiva Linux. Para outros sistemas podem ocorrer ligeiras variações na sintaxe dos comandos e no ordenamento dos campos do comando ls que requeiram algumas alterações.
Fonte: http://www.dicas-l.com.br/print/20000117.html
Mesclando arquivos de vídeo
Mesclando arquivos de vídeo
Colaboração: Sérgio Luiz Araújo Silva
Já havia visto tempos atrás como usar o comando split para dividir arquivos para poder transporta-los em disquetes.
no caso do split já existe uma dica aqui no dicas-l
Para juntar usamos o comando cat.
Para mais detalhes sobre o cat veja man cat.
A sintaxe para juntar arquivos é simples
cat arquivo1 arquivo2 > arquivao
O interessante é que por estes dias andei pegando na net vídeos que queria mesclar, digo, juntar.
Usei o cat assim como faria com arquivos de texto.
cat video1.mpg video2.mpg video3.mpg > filme.mpg
E funcionou perfeitamente.
Não se esqueça, entretanto, que os arquivos de vídeo devem ser do mesmo formato, caso contrário não vai funcionar.
Grupo PROPHP no Conisli
O grupo PROPHP estará no CONISLI 2005 promovendo atividades relacionadas ao PHP.
Estamos abrindo inscrições através do site do CONISLI para trabalhos, palestras, cases e soluções.
Se você é um profissional e deseja palestrar, inscreva-se
Esperamos você lá.
Grupo PROPHP
Fonte: http://www.dicas-l.com.br/print/20050708.html
Script Shell de Backup Incremental
Script Shell de Backup Incremental
Colaboração: Júnior Mulinari
Uma dica de Shell Script para quem já teve problemas com espaço para armazenar backups. Trabalho junto a equipe de manutenção do CodigoLivre (http://codigolivre.org.br), e os backups dos projetos são enormes. Não teríamos espaço suficiente para armazenar os backups diários por 7 dias. A saída foi fazer de forma incremental. O script abaixo faz backups incrementais usando recursos do GNU/Tar.
Basicamente o script cria um arquivo no formato:
<IDENTIFICA>-<número de incremento>-<dia>-<mês>-<ano>-<dia da semana>.tar.gz
e outro com o mesmo nome mais e prefixo .log, onde consta todos os arquivos e diretórios daquele backup.
<IDENTIFICA> = é a identificação, caso você queira ter mais de um. No exemplo abaixo está como "Backup".
<número de incremento> = é a seqüência do incremento, como abaixo estamos dizer para fazer 7 dias, ele irá de 1 a 7.
<dia> = dia da realização do backup.
<mês> = mês da realização do backup.
<ano> = ano da realização do backup.
<dia da semana> = dia da semana da realização do backup, exemplo Sun (Domingo), Mon (Segunda), Tue (terça), ....
.tar.gz = é o formato de compactação e concatenação.
Você deve criar um arquivo ($PREFIX/etc/list.conf) com a lista de diretórios a serem backupeados. Na lista deve conter o caminho completo do diretório, exemplo: /usr/local/apache.
Também é possível criar um arquivo ($PREFIX/etc/exclude.list) com exceções de backup, como por exemplo, arquivos de videos, musicas, etc.. exemplo:
*.mp3 *.avi
O formato do arquivo deve ser respeitado, colocando uma exclusão por linha.
Outras variáveis estão comentadas no script.
Inicio do script
#!/bin/bash # # Identificação dos arquivos IDENTIFICA=Backup # Numero de dias do ciclo de backup DIAS=7 # E-mail do administrador ADMIN=junior@solis.coop.br # A partir de onde ficarão os arquivos PREFIX=/backup # Onde os arquivos de backup e logs ficarão armazenados DIR_DESTINO=/backup/arquivos # Lista de arquivos a não serem backupeados EXCLUDE=$PREFIX/etc/exclude.list # Arquivos temporário do script TEMP=/tmp/.backup.$$ # Arquivos de controle do GNU/Tar INC=$PREFIX/etc/incremental.conf # Formato da data DATA=$(date +%d-%m-%Y-%a) # Arquivo com a lista de diretórios a serem backupeados LISTA=$(cat $PREFIX/etc/list.conf | grep ^/ | sort | uniq) # Arquivos gerado pelo script para controle de incremento CONFIG=$PREFIX/etc/backup.conf VOLTA=0 if [ ! -e $CONFIG ] ; then touch $CONFIG NUMERO=1 else cp -f $CONFIG $CONFIG.bak LINHAS=$(cat $CONFIG | grep ^[0-9] | wc -l) [ $LINHAS -eq $((DIAS+1)) ] && VOLTA=1 FIRST=$(cat $CONFIG | grep ^[0-9]- | head -1) LAST=$(cat $CONFIG | grep ^[0-9]- | tail -1) OLD=$(echo $LAST | cut -f1 -d"-") OLD=$
Estamos usando o script há mais de um ano, e não tivemos problemas com a execução, o que está faltando é um script que automatize a extração do backup.
Espero que seja útil para a comunidade,
Abraços,
Júnior
Fonte: http://www.dicas-l.com.br/print/20050723.html
Comunicação Segura com PGP
Comunicação Segura com PGP
Colaboração: Jonildo Andrade dos Santos [<jonildo (a) e-net com br>]
Mensagens eletrônicas têm vantagens evidentes sobre documentos em papel, mas também algumas importantes desvantagens. É relativamente fácil para um hacker espião interceptar suas mensagens privadas. Também não é difícil alguém enviar uma mensagem forjada como se fosse sua. Documentos eletrônicos sempre podem ser adulterados sem deixar qualquer marca. Para resolver esses três problemas, e mais alguns, existe um freeware que pode solucionar esse problema. PGP, 6i, da Network Associates, Inc. (NAI).
Como funciona
O PGP (Pretty Good Privacy) permite que você criptografe textos de e-mail ou arquivos quaisquer de forma que somente você, ou um grupo específico de destinatários, possa abrí-los. Para isso, é necessário que todos os envolvidos sejam usuários do PGP, e que tenham trocado anteriormente suas chaves públicas. O PGP utiliza uma técnica chamada criptografia de chave pública.
Versão internacional
A atual versão do PGP é a 6.5.1i. A letra "i" indica "versão internacional". Ela é praticamente idêntica à versão freeware que é disponível legalmente apenas para cidadãos americanos e canadenses em virtude da tal legislação. A NAI vem desenvolvendo o produto em versões comerciais e freeware que pode ser baixado apartir do seu site ou do seguinte endereço: http://www.pgpi.org/ Ele possui vário plugins para os principais programas de correios: Pine, Lotus Notes, Eudora, Outlook Express, Microsoft Outlook.
Arquivos bem apagados
Além dos recursos tradicionais de cifragem e decifragem, o PGP 6 traz também dois utilitários complementares que servem para apagar arquivos sem deixar vestígios. Isso é necessário porque, ao cifrar um documento, o PGP na realidade gera uma cópia cifrada do original. Mesmo que você apague do disco o documento original, não é preciso ser um grande perito para recuperá-lo com o auxílio de um programa especial como o Norton Utilities. Para evitar que isso aconteça, você pode usar o comando "wipe" (limpar), que o PGP coloca no menu contextual ao clicarmos com o botão direito do mouse sobre um arquivo. Antes de apagar o arquivo, o "wipe" o sobrescreve múltiplas vezes com dados aleatórios impedindo sua reconstituição. Se você escreveu o documento original em um programa como o Word, é provável que o aplicativo tenha gerado cópias temporárias enquanto você trabalhava. Como essas cópias são apagadas pelo aplicativo, o comando "wipe" não pode ser usado para eliminá-las. Para resolver esse problema, o PGP 6 inclui também o utilitário "Free Space Wiper", ou limpador de espaço livre, que realiza a mesma operação porém em todo o espaço vazio de seu disco rígido, que pode conter fragmentos versões antigas de seus dados sigilosos. Apenas por curiosidade, a documentação do "Free Space Wipe" traz o seguinte aviso: "Sabe-se que empresas comerciais de recuperação de dados podem recuperar arquivos sobrescritos até 9 vezes." O mesmo documento recomenda, então que para fins "militares" o espaço livre deve ser sobrescrito 18 vezes, ou até 26 vezes para se obter o máximo de segurança!
Conclusão
Quem precisa manter ou trocar dados sigilosos não precisa procurar mais: o PGP 6 é a melhor solução dentre os demais. Diferente de outros programas comerciais que oferecem funções criptográficas, o PGP é o único que coloca seu código-fonte aberto na Internet, para análise de cientistas e hackers de todo o mundo. Ao fazê-lo, o PGP oferece a garantia da transparência. A versão freeware pode ser usada por pessoas ou organizações em atividades sem fins lucrativos. Para usar o PGP 6 comercialmente você precisa adquirir uma licença de uso (eu prefiro a freewere). ; )
Lembrem-se: Nada no mundo é totalmente seguro, e nenhum sistema criptográfico é perfeito. Entretanto: É melhor prevenir...
Fonte: http://www.dicas-l.com.br/print/19991209.html
Definição de Parâmetros para Alocação de Partições
Definição de Parâmetros para Alocação de Partições
Colaboração: Gustavo Chaves <<gustavo (a) cpqd com br>>
Na mensagem de ontem, sobre alocação de partições, foram expostos alguns conceitos errôneamente, como a distinção entre inodes (index nodes) e blocos de dados.
Infelizmente estes erros me passaram desapercebidos. Minhas desculpas a vocês.
O Gustavo me mandou uma mensagem bastante boa explicando melhor estes conceitos, que passo a reproduzir a seguir.
Creio que ao invés de inode você queira dizer "logical block" (nomenclatura do Solaris) ou "cluster" (nomenclatura para sistemas de arquivo FAT). No caso de sistemas de arquivos UNIX cada arquivo tem apenas um inode que é a estrutura que contém, entre outras, as informações sobre o tamanho do arquivo, usuário e grupo, datas e a lista de blocos (logical blocks) que contêm os dados do arquivo. Sua argumentação faz sentido se pensarmos no tamanho destes blocos e não no tamanho dos inodes que, em verdade, nem podem ter seu tamanho modificado.
Há um outro parâmetro que você pode passar para o mkfs (-i, no Solaris) ao criar o sistema de arquivos que se refere ao número de bytes por inode que deve ser reservado no sistema. Não é o tamanho do inode... Ao criar um sistema de arquivos numa partição de disco, parte do espaço é usado para a criação de inodes e o restante para a criação dos blocos. A conta a ser feita é a seguinte:
(isz * in) + (bsz * bn) = psz, onde isz = tamanho do inode in = número de inodes bsz = tamanho do bloco bn = número de blocos psz = tamanho da partição
O problema é decidir quantos inodes e quantos blocos criar na partição. O ideal é que o número de blocos por inode seja pouco maior que o tamanho médio dos seus arquivos. Se esta razão for muito pequena, você estará desperdiçando inodes. Se for muito grande, estará desperdiçando blocos.
Se você consegue estimar o tamanho médio dos arquivos (digamos, fsz), você pode descobrir a relação ideal entre o número de blocos e o de inodes, assim:
bn/in = fsz/bsz, (arredondando para cima)
Chamando este número de bpi (blocos por inode), dá pra saber quantos inodes e blocos criar na partição:
(isz * in) + (bsz * in * bpi) = psz in * (isz + bsz * bpi) = psz in = psz / (isz + bsz * bpi) e bn = (psz * bpi) / (isz + bsz * bpi)
Fonte: http://www.dicas-l.com.br/print/20010518.html
Exportando Banco de Dados DBF para MySQL
Exportando Banco de Dados DBF para MySQL
Colaboração: André Marques Saunite
Algum tempo atrás comecei a trabalhar em uma pequena empresa que utilizava um programa de gerenciamento feito em Clipper, com banco de dados FoxBase, rodando num servidor linux, o sistema era muito bom, porém havia a necessidade de se alterar algumas coisas, principalmente na parte de geração de relatórios.
Como não tinha acesso ao código fonte, e a documentação sobre FoxBase é escassa, resolvi tentar exportar os dados para MySQL, depois de algumas perguntas para Ele (www.google.com <http://www.google.com>), achei um software livre para linux que fazia essa exportação ( http://www.anubisnet.de/products/dbf), efetuei a instalação:
tar xfvz dbf-<versao>.tar.gz cd dbf-<versao> make su make install
Exportei o dbf para um arquivo SQL sem problemas:
dbf --sql <arquivo-destino.sql> <arquivo-origem.dbf>
Porem na hora de importar o dado para mysql:
mysql -u root -p <senha> CREATE TABLE teste; USE teste; source <arquivo.sql>
Vários registros da tabela apresentaram erros ao tentar passar para o MySQL, analisando melhor os arquivos gerados pelo programa, percebi que algumas das linhas inseridas tinham erros de sintaxe que o MySQL não aceitava, então desenvolvi um pequeno script que (pelo menos no meu caso) consertou 100% das tabelas que não foram exportadas corretamente pelo programa.
Esse script lê a tabela passada como argumento, utiliza o dbf para importar os dados e resulta num arquivo .sql que pode ser facilmente importado pelo MySQL, segue abaixo o script:
# # Descrição: Importa tabelas do banco de dados .DBF para .sql # Dependencia: dbf (http://www.anubisnet.de/products/dbf) # Nome: /usr/bin/dbf2sql # # Autor: André Marques Saunite # e-mail: saunite [a] gmail dot com # # Última atualização: 04/08/2005 # # Coloque aqui os diretórios corretos (sem "/" no final): # Caminho onde serão copiados os arquivos .sql: DBF2SQL_DIR='/home/dbf2sql' # Caminho temporária que será criada e apagada: DBF2SQL_TEMP_DIR='/home/dbf2sql/tmp' # Caminho para o executavel do dbf DBF_DIR='/usr/local/bin' # DATABASE a ser utilizado DATABASE='estoque' if ! [ $# -lt 2 ]; then mkdir $DBF2SQL_TEMP_DIR NAME=$2; DBF=$1; rm $DBF_DIR/$NAME.sql -rf $DBF_DIR/dbf --sql $DBF2SQL_TEMP_DIR/dbf2sql.SQL $DBF cat $DBF2SQL_TEMP_DIR/dbf2sql.SQL | grep -v "^$" | grep -v "^'" | grep -v "($" |grep -v "^--" | grep -v "^drop" > $DBF2SQL_TEMP_DIR/dbf2sql.NOCREATESQL grep "CREATE TABLE" $DBF2SQL_TEMP_DIR/dbf2sql.SQL > $DBF2SQL_TEMP_DIR/dbf2sql.CREATESQL cat $DBF2SQL_TEMP_DIR/dbf2sql.CREATESQL $DBF2SQL_TEMP_DIR/dbf2sql.NOCREATESQL > $DBF2SQL_TEMP_DIR/dbf2sql.CLEANSQL $DBF_DIR/dbf --csv $DBF2SQL_TEMP_DIR/dbf2sql.CSV $DBF LINHAS=`cat $DBF2SQL_TEMP_DIR/dbf2sql.CSV | awk 'END'` LINHAS=`expr $LINHAS - 1` tail -n $LINHAS $DBF2SQL_TEMP_DIR/dbf2sql.CSV > $DBF2SQL_TEMP_DIR/dbf2sql.CSVLINES cat $DBF2SQL_TEMP_DIR/dbf2sql.CSVLINES | sed s/^/"INSERT INTO $NAME VALUES ("/g | sed s/$/");"/g | sed s/",);"/","");"/g > $DBF2SQL_TEMP_DIR/dbf2sql.CLEANCSV cat $DBF2SQL_TEMP_DIR/dbf2sql.CLEANSQL $DBF2SQL_TEMP_DIR/dbf2sql.CLEANCSV > $DBF2SQL_TEMP_DIR/dbf2sql.JOIN REPLACE=`echo $DBF2SQL_TEMP_DIR | sed s/\//\\\\\//g` cat $DBF2SQL_TEMP_DIR/dbf2sql.JOIN | sed s/",,"/","","/g | sed s/",,"/","","/g | sed s/"$REPLACE/dbf2sql"/$NAME/g | sed s/"\\"/"\\\\"/g | sed s/"(#"/"("/g | sed s/"~"/"_"/g > $DBF2SQL_TEMP_DIR/dbf2sql.BODY echo "USE $DATABASE;" > $DBF2SQL_TEMP_DIR/dbf2sql.CAB # Se o script for atualizar automaticamente o MySQL (comentário abaixo) e ainda não existir a tabela criada, comente a linha abaixo; echo "DROP TABLE $NAME;" >> $DBF2SQL_TEMP_DIR/dbf2sql.CAB cat $DBF2SQL_TEMP_DIR/dbf2sql.CAB $DBF2SQL_TEMP_DIR/dbf2sql.BODY > $DBF2SQL_DIR/$NAME.sql # Caso queira que o script importe automaticamente a tabela para o MySQL descomente a linha abaixo # mysql --user=<usuário> --password=<senha> < $DBF2SQL_DIR/$NAME.sql else echo "Uso: $0 <arquivo-dbf> <nome-tabela>" fi rm $DBF2SQL_TEMP_DIR -rf
Caso seja necessária a importação de vários arquivos de uma vez pode-se usar o seguinte script, que converterá todos os arquivos .DBF da pasta atual para uma pasta SQL que será criada:
# # Descrição: Script de apoio para dbf2sql # Dependencia: dbf2sql, dbf (http://www.anubisnet.de/products/dbf) # Nome: /usr/bin/all2sql # # Autor: André Marques Saunite # e-mail: saunite [a] gmail dot com # # Última atualização: 04/08/2005 # #!/bin/bash echo "Criando pasta SQL" mkdir SQL for i in `ls *.DBF`; do NOME=`echo "$i" | sed s/".DBF"/""/` echo "Transformando Arquivo $i em ./SQL/$i.sql " dbf2sql $i $NOME done echo "Movendo todos os arquivos .sql para ./SQL" mv *.sql SQL
Esses pequenos scripts me ajudaram muito, o único problema que encontrei foi que o programa de conversão usado não tem suporte a tabelas .dbf que utilizam o campo memo, como no meu caso as tabelas desse tipo não eram importantes, consegui driblar esse problema.
Algumas das utilidades interessantes do programa de exportação de dbfs utilizado:
Exporta o banco de dados para MySQL
dbf --sql <arquivo-destino> <arquivo-origem>
Exporta o Banco de Dados para um Arquivo CSV (Comma Separated Values)
dbf --csv <arquivo-destino> <arquivo-origem>
Simplesmente mostra o conteúdo da tabela
dbf --view-info <arquiv.dbf>
Fonte: http://www.dicas-l.com.br/print/20051013.html
Instalação de múltiplos sistemas operacionais em um mesmo equipamento
Instalação de múltiplos sistemas operacionais em um mesmo equipamento
Por Sergio Kneizl, 1997.
Este texto pode ser livremente distribuido por meios eletronicos, desde que se mantenha integral e sem alteracoes (incluindo o nome do autor). Qualquer outra situacao, incluindo publicacao impressa ou traducoes, devem ser autorizadas pelo autor por escrito.
Sugestoes e comentarios podem ser enviados para o endereco <sergiok (a) ax ibase org br>.
Versao: Jan/1997.
Instalacao de DOS, Windows 95 e NT, OS/2 e Linux em uma mesma maquina
A ideia e' usar o menu de boot que vem com o OS/2, o Boot Manager (Gerenciador de Inicializacao), juntamente com o menu de boot que vem com o NT. O Linux sera' carregado a partir do DOS, porem ele nao usara' o DOS, assumindo o controle da maquina.
Eu usei as seguintes versoes:
- DOS 5.00
- Windows 95 (4.00.950 em portugues)
- Windows NT Server 3.51 em ingles (veio em uma PC Magazine)
- OS/2 Warp 3.0 (Ou os dois primeiros discos de instalacao)
- Linux Slackware 2.3 em CD, kernel 1.2.8
Atencao! (depois nao fale que eu nao avisei...)
- Sera' necessario reparticionar o disco rigido, o que significa perder todos os arquivos.
- A forma com que o Windows 95 salva os nomes longos de arquivo (mais de 8_letras.3_letras) nao e' compativel com a forma do OS/2 (em FAT). O melhor e' nao misturar em um mesmo drive os dois sistemas. A forma do OS/2 e' menos invasiva (eles sao gravados em um arquivo a parte) do que a do Windows 95 (varias entradas marcadas como label de disco e invisiveis). Em um disco que tem arquivos gravados pelo Windows 95, deve-se usar apenas o scandisk e o Norton Utilities feitos para o 95, senao voce podera' perder todos os nomes longos. Como o Linux grava diretamente no disco e supoe a estrutura antiga, sem nomes longos, e' melhor nao gravar nomes longos do 95 no direto- rio dele. Seguindo os passos abaixo, o disco do Linux nao estara' visivel para o Windows 95.
- Nao instale programas compressores de disco. Eles trocam alguma perda de desempenho por mais espaco de disco. Depois, em sistemas realmente multitarefa, a perda e' mais notada do que em DOS (estes compressores aproveitam o tempo que o DOS ia desperdicar, esperando os dados chegarem do disco, para descomprimir. Sistemas de verdade aproveitam esse tempo para rodar outros programas). Mas se nao quiser seguir o meu conselho, nao comprima o drive onde os sistemas estao, separe uma particao para isso. Existe uma versao do Stacker para DOS e OS/2, so' que para instalar no OS/2 tem que fazer boot pelo DOS (sem comentarios) e por causa disso o drive do OS/2 deve estar em FAT (a nao ser que voce instale ele editando os arquivos de sistema...)
- Recomendo a instalacao do OS/2 em uma particao separada, formatada em HPFS. O HPFS e' um sistema de arquivos diferente e mais rapido. E o aumento de velocidade e' maior com o proprio OS/2. So' que um drive com o HPFS nao pode ser acessado por outros sistemas, entao neles o drive nao aparece. Por causa disso, o drive com HPFS deve ser o ultimo (evita que drives mudem de letra quando voce carregar um outro sistema). Porem, o HPFS deve ser usado apenas para maquinas com mais de 8 MB de memoria. Obs.: O HPFS e' reconhecido pelo NT 3.51, mas parece que o suporte a ele foi removido do NT 4.0 (o OS/2 e' do concorrente...).
- O Windows NT tambem tem um sistema de arquivos proprio, o NTFS, que tambem pode ser instalado. Assim como o HPFS do OS/2, o drive so' podera' ser acessado pelo NT e deve ser o ultimo. Eu nao tentei usar.
- Quando formatamos um drive pelo DOS ou pelo Windows 95 (estrutura FAT), o espaco livre e' dividido em pedacos fixos chamados clusters. Conforme um arquivo vai aumentando de tamanho, o DOS vai associando clusters ao arquivo. Isso quer dizer, por exemplo, que um arquivo de um byte gastara' um cluster inteiro. O tamanho do cluster depende do tamanho total do drive. Veja a seguinte tabela:
Tamanho do disco Tamanho do Cluster 1GB < t 32K ou mais 512MB < t <= 1GB 16K 256MB < t <= 512MB 8K 128MB < t <= 256MB 4K t <= 128MB 2K ou menos
Quer dizer, um disco de 1.2GB com 9000 arquivos de um byte ocupa 9000 * 32K, ou 281 MB ! Isso e' 23 por cento do disco todo! Detalhe: a primeira instalacao que fiz do Linux tinha 9000 arquivos ... Para simplicidade do texto, eu estou ignorando isso aqui. Se quiser, divida o espaco livre em varias particoes de 512 MB. No HPFS do OS/2, o tamanho do "cluster" e' sempre 0.5K. - Cada disco rigido fisico tem quatro "slots" para particoes, sendo que todas as particoes logicas estendidas ocupam um unico "slot". O menu de boot do OS/2 gasta um destes "slots". Assim, em um mesmo disco rigido, nao sera' possivel criar mais particoes primarias alem das que eu explico aqui. Em um outro disco rigido, tambem podemos instalar particoes primarias e particoes logicas. A que ja' vem instalada de fabrica e' sempre uma particao primaria. As letras dos drives sao atribuidas da seguinte forma: primeiro todas as primarias de cada disco rigido, depois as logicas de todos os discos rigidos. Assim, se instalarmos depois um novo disco rigido, como a particao dele e' primaria, ele vai aparecer no meio dos drives existentes, e varios deles vao mudar de letra. Isso pode ser resolvido se apagarmos a particao primaria do disco novo e recriarmos ela como uma particao logica.
- Por que estou tentando evitar que drives mudem de letra? E' porque alguns programas nao irao funcionar depois que o drive onde eles estao instalados mude. Isto acontece com a maioria dos programas para Windows, mesmo que o path no icone seja consertado.
Passos para a instalacao dos sistemas:
- Boot com os discos de instalacao do OS/2 :
- Disco de instalacao (sem numero)
- Disco numero 1
- Se perguntar sobre instalacao facil ou avancada, escolher a instalacao avancada.
- Vai avisar que o OS/2 sera' instalado no drive C, perguntando se quer aceitar a unidade, ou especificar uma unidade/particao diferente. Pedir outra unidade/particao. Vai aparecer (depois do aviso) o FDISK do OS/2.
- Apagar todas as particoes. Pressionar ENTER sobre uma particao para ver as opcoes, uma delas serve para eliminar a particao. Deve sobrar uma unica linha infor- mando o espaco livre.
- Criar particao do menu. Pressionar ENTER sobre a linha de espaco livre, pedir para instalar o gereciador de inicializacao (ou boot manager) no inicio do espaco livre. Ele vai ocupar de um a dois megabytes.
- Criar a particao que contera' o DOS (e, se quiser, o Linux tambem). Sera' o drive C quando fizer boot com o DOS. Pressionar ENTER sobre a linha de espaco livre, pedir para criar uma particao primaria no inicio do espaco livre. Escolher um tamanho suficiente para o DOS e o Linux.
- Criar a particao que sera' usada para carregar (boot) o Windows 95 (e, se quiser, o Windows NT tambem): Sera' o drive C quando fizer boot pelo Windows 95 (e NT). Pressionar ENTER sobre a linha de espaco livre, pedir para criar uma particao primaria no inicio do espaco livre. Escolher um tamanho minimo de 6 MB (boot pelo drive C e Windows 95 instalado no D) ou mais, se quiser instalar os arquivos do Windows 95 e/ou NT neste drive.
- Criar a particao de programas. Sera' o drive D. Pressionar ENTER sobre a linha de espaco livre, pedir para criar uma particao logica estendida ocupando todo o espaco restante. Ou entao, se quiser criar uma outra particao para instalar o OS/2, crie no inicio do espaco livre e desconte o tamanho ocupado pelo OS/2.
- Criar a particao do OS/2 (se for o caso). Sera' o drive E, aparecera' apenas no OS/2 e no NT 3.51 se for formatada com HPFS. Pressionar ENTER sobre a linha de espaco livre, pedir para criar uma particao logica estendida ocupando todo o espaco restante.
- Incluir as particoes de boot no menu. Pressionar ENTER sobre cada particao primaria e pedir para incluir ela no gerenciador de inicializacao (boot manager). Vai abrir uma janela para digitar o nome que ira' aparecer no menu. Caso va' instalar o OS/2, fazer o mesmo com a particao onde ele sera' instalado.
- Indicar a particao onde sera' instalado o OS/2 (se for o caso). Pressionar ENTER sobre a particao onde sera' instalado o OS/2. Escolher a opcao para marcar a particao como instalavel.
- Acertar a forma como o menu sera' apresentado. Pressionar ENTER em qualquer particao. Escolher a opcao de definir os valores de inicializacao. No menu que vai aparecer, pressionar ENTER na opcao de modo para passar ao modo normal. Na opcao de tempo de espera, recomendo 10 segundos. Esse e' o tempo que o menu vai ficar esperando voce escolher um outro sistema. Se voce nao fizer nada, depois desse tempo a ultima opcao escolhida e' usada. Pressionar F3 para confirmar os novos valores.
- Salvar as novas particoes. Pressionar F3. Se voce nao vai instalar o OS/2:
- vai aparecer um aviso que nenhuma particao foi definida como instalavel e pode ser ignorada. Escolher "salvar e sair".
- quando pedir para inserir o disco do OS/2, pode retirar os discos do drive e apertar o botao de reset. Continue no passo 15. Se voce vai instalar o OS/2, ponha o disco pedido no drive e...
- Instalar o OS/2 (se for o caso) Ele vai avisar que a particao do OS/2 sera' formatada e vai perguntar se usa a estrutura FAT (do DOS) ou a HPFS (do OS/2). Se vai usar uma particao em separado so' para o OS/2, eu recomendo usar HPFS.
- Instalar o DOS.
- Rebootar a maquina sem o disquete no drive. Quando aparecer o menu, ir para a opcao do DOS e pressionar ENTER. Ele vai mostrar uma mensagem de erro, porque o DOS nao esta' instalado, mas vai ativar a particao primaria que sera' o drive C.
- Colocar o primeiro dos discos de instalacao do DOS no drive A e pressionar CTRL-ALT-DEL.
- Instalar o DOS normalmente. Ele vai formatar todos os drives que encontrar, e com a estrutura FAT (voce nao tem escolha, e e' por isso que o OS/2 deve ser instalado primeiro).
- Reativar o menu de boot.
- Reiniciar a maquina (reset, CTRL-ALT-DEL) sem disquete no drive. Vai entrar o DOS direto, sem o menu.
- Chamar o FDISK. Pedir para definir a particao ativa. Marcar a menor particao, provavelmente nao-DOS, como a particao ativa. Salvar a alteracao.
- Instalar o Windows 95 (se for o caso).
- Rebootar a maquina sem o disquete no drive. Quando aparecer o menu, ir para a opcao do Windows 95 e pressionar ENTER. Ele vai mostrar de novo a mensagem de erro, ativando a particao primaria que sera' o drive C. Esta outra particao ainda nao esta' forma- tada.
- Fazer o boot antes da instalacao.
- Se for o Windows 95 para maquinas sem sistema, vira' um dis- quete a mais de boot. Colocar este disquete no drive e pressionar CTRL-ALT-DEL. Ele deve iniciar a instalacao.
- Se for um Windows 95 para maquinas com sistema (versao de atualizacao/upgrade) nao existe um disco de boot. Colocar o disco de boot do DOS no drive A e pressionar CTRL-ALT-DEL. No prompt do DOS, digitar "format c:", trocar o disquete pelo primeiro disco do Windows 95, e digitar "instalar" (se for a versao em portugues) ou provavelmente "install" se for a versao em ingles.
- Continuar a instalacao. Se o drive C foi criado apenas para o boot, instalar o Win 95 para um diretorio do drive D.
- O Windows 95 vai avisar que existe o Boot Manager/Gerenciador de Inicializacao na maquina, que ele nao vai poder funcionar com o Windows 95, etc. Nao se impressione, isso e' mentira. O menu sera' reativado depois.
- Reativar o menu de boot.
- Reiniciar a maquina (reset, CTRL-ALT-DEL) sem disquete no drive. Vai entrar o Windows 95 direto, sem o menu.
- Abrir uma janela DOS. Clicar no botao Iniciar no canto inferior esquerdo da tela (ou Start). Escolher a opcao "Programas" e depois a opcao "Prompt do MS-DOS".
- Chamar o FDISK. Pedir para definir a particao ativa. Marcar a menor particao, provavelmente nao-DOS, como a particao ativa. Salvar a alteracao.
- Instalar o Windows NT (se for o caso). Se, ao instalar o Windows NT, ele perceber que o Windows 95 ja' esta' instalado, ele inclui um outro menu para escolher entre os dois sistemas. Assim, passaremos por dois menus para carregar o Windows 95 ou o Windows NT.
- Reiniciar a maquina e escolher a opcao do Windows 95. Isso vai ativar o drive C que carrega ele.
- Reiniciar a maquina novamente com os discos de boot no NT. Eles podem ser gerados a partir do proprio CD com o winnt.exe. Eu tive problemas com o suporte ao drive A durante a instalacao, entao eu tive que instalar sem disquetes (acho que usei "winnt /b")
- Instalar normalmente.
- Instalar o Linux (se for o caso). O Linux pode ser instalado em uma particao separada, com a estru- tura de arquivos dele proprio, ou em uma particao FAT. No meu caso, instalei em uma particao FAT junto com o DOS, e tambem porque nao era possivel ter uma outra particao primaria para ele (estava usando um disco rigido apenas). Esta particao tambem fica invisivel para o Windows 95, entao ela nao tera' os nomes longos do 95.
Eu usei o Linux Slackware 2.3 em CD (kernel 1.2.8). Eu nao conse- gui instalar a partir do CD, entao copiei o subdiretorio de instalacao para o disco rigido. Os dois disquetes de instalacao que gerei foram o Rootdisk para instalar o Linux em um subdiretorio de uma particao DOS e o Bootdisk IDE-CD (IDE/ATAPI). Eu usei o lodlin15.zip, Loadlin v. 1.5 que veio com o CD e serve para carregar o Linux a partir do DOS. O DOS nao sera' usado para o funcionamento do Linux. Descompacte ele e use o seguinte
Linux.bat :
rem Habilite a linha abaixo se o smartdrv estiver sendo usado REM smartdrv /C REM Retirei o vga=3 depois do rw mas nao sei para que serve c:linuxrootloadlin c:linuxvmlinuz root=/dev/hda3 rw
O CD vem tambem com o Lilo, que inclui o Linux no menu de boot do OS/2, mas nao tentei usar.
Fonte: http://www.dicas-l.com.br/print/19970702.html
Limitando o tamanho de arquivos core
Limitando o tamanho de arquivos core
Colaboração: Rubens Queiroz de Almeida
Sempre que um programa encontra algum erro de execução, uma imagem do estado do programa no momento do erro, é gravada em disco para exame posterior.
Como a maioria das pessoas não possui ou o tempo ou o conhecimento para examinar estes arquivos, chamados core, o ideal é reduzir o tamanho destes arquivos ou mesmo impedir sua gravação.
Estes arquivos geralmente são muito grandes e podem gerar problemas caso sejam criados em quantidade.
A maneira de fazer isto varia de acordo com a shell que você usa.
sh ou ksh
$ ulimit -c 0 # sh ou ksh
csh ou tcsh
$ limit coredumpsize 0 $ limit cputime unlimited filesize unlimited datasize 28672 kbytes stacksize 16384 kbytes coredumpsize 0 kbytes <------------- memoryuse 30720 kbytes memorylocked 10240 kbytes maxproc 64 openfiles 64
Como se pode ver da saída acima, vários outros limites do ambiente podem ser controlados pelo comando limit.
Fonte: http://www.dicas-l.com.br/print/19980318.html
Dicas de utilizacao do Find
Dicas de utilizacao do Find
Colaboração: Angelo Roberto Bonfieti Junior
O comando find eh extremamente util para procurar arquivos que obedecam a um criterio particular. O find pode procurar arquivos que foram modificados nos ultimos X dias, arquivos maiores que um tamanho especifico ou arquivos que pertencam a um userid que nao esta definido no seu arquivo /etc/passwd, por exemplo, sao exemplos de situacoes faceis de serem resolvidas pelo comando find (e muito uteis, tambem). Voce tambem pode procurar arquivos de tipos especificos - como diretorios, links simbolicos ou arquivos normais - ou arquivos mais novos que um outro arquivo.
Voce pode procurar arquivos baseando-se em suas permissoes (por exemplo, todos os arquivos que possuem o bit setuid). Voce pode restringir comandos find a um diretorio especifico ou a file-systems.
O que pode nao ser tao obvio quanto a construcao do comando find apropriado para fazer o servico de vasculha que voce procura eh como construir um comando que ira fazer o que voce quer com os arquivos, uma vez que voce os tenha encontrado.
-print e -ls
Os dois comandos mais comuns usados com find sao, nao surpreendentemente, o -print e o -ls. A opcao -print imprime o nome do arquivo do ponto de vista do diretorio corrente (ex. /export/home/teste/tralha.txt ou somente ./teste/tralha.txt se a procura foi iniciada a partir do /export/home). A opcao -ls proporciona o mesmo tipo de informacao que voce iria ver se voce visalizasse os arquivos atraves do comando ls -li.
-exec
A opcao -exec eh indubitavelmente a proxima opcao mais popular e eh usada para especificar o que o find ira fazer com os arquivos que ele encontrar. Quando usamos a opcao -exec, o nome de cada arquivo encontrado pelo find eh representado no comando find pela sequencia de caracteres "<>" (sem as aspas ;-] ). O comando para imprimir o numero de linhas em cada um dos arquivos encontrados pelo find ira se parecer com isso:
root>> find . -type f -exec wc -l <> ;
A sequencia ; marca o fim do comando e, executando-o, voce poderia ter, como resultado, algo como:
74 ./030701_log.txt 12 ./testfile1 6 ./testfile2 5 ./ex
O comando para procurar por strings (sequencias) especificas e imprimir as strings e os nomes dos arquivos nas quais elas foram encontradas irao se parecer com:
find . -type f -exec grep "antes" <> ; -print
O -print neste comando eh colocado no final para que os arquivos mostrados sejam somente os que passaram pelo teste do grep.
Alterando Arquivos com o Find
Para modificar o conteudo de arquivos que sao localizados pelo find, voce pode usar o sed ou voce pode usar ainda um comando Perl como este que eh executado em todos os arquivos HTML no diretorio corrente e subdiretorios para alterar uma URL para outra:
find . -type f -name "*.html" -exec perl -i -p -e
's/www.antes.org/www.depois.com/g;' <> ;
Se voce frequentemente tem que mudar links em um website muito grande, um comando como esse certamente ira livrar muito tempo (e trabalho). Se voce quer dar este comando a alguem que nao ira gostar de lembrar do comando find, voce pode coloca-lo num script como esse:
#!/bin/bash if [ $# != 2 ]; then echo "usage $0 <antes> <depois>" exit else ANTES=$1 DEPOIS=$2 fi find . -type f -name "*.html" -exec perl -i -p -e "s/$ANTES/$DEPOIS/g;" <> ;
Fazendo Muita Coisa com Arquivos Alterados
Se voce quer executar um numero de comandos em cada arquivo que voce encontrar, existe um meio de faze-lo tambem - e isso nao requer a utilizacao da opcao -exec. Ao contrario, redirecione (com pipe) a saida do seu comando find normal para um repetidor while como este e voce pode executar quantos comandos desejar entre os marcadores do e done:
find . -type f | while read i do file $i ls -i $i wc -l $i done
Neste loop o nome do seu arquivo eh associado ao $i. Este comando trabalha com shells da familia Bourne Shell (sh, ksh, bash e outros).
Muito trabalho pode ser realizado com uma combinacao inteligente do comando find.
Algumas ideias deste artigo foram fornecidas por Robert D. e Chang A.
Este texto foi traduzido integralmente do Original veiculado no forum "Unix in the Enterprise" sob titulo "Tricks with find" da revista eletronica ITworld (www.itworld.com) no dia 17/07/2003.
Fonte: http://www.dicas-l.com.br/print/20031203.html
Escondendo arquivos com NFS
Escondendo arquivos com NFS
Colaboração: Rubens Queiroz de Almeida
Ao se montar um diretório remoto, utilizando-se NFS, o conteúdo do ponto de montagem não é destruído. Os diretórios, arquivos, etc, não são exibidos, ficando escondidos sob o conteúdo do filesystem remoto.
Um problema muito comum é quando um determinado diretório montado via NFS não está montado e se faz operações de cópias, etc, onde o mesmo deveria estar.
Nestes casos, o filesystem "/" se enche rapidamente e as vezes perdemos um bom tempo tentando determinar o que ocorreu. E pior ainda, quando o diretório montado via NFS consegue ser montado, nós não conseguimos limpar os arquivos para liberar o filesystem, visto que eles estão escondidos sob o mount point.
Neste caso, quando o comando "df" indicar que um determinado filesystem está cheio, a solução é desmontar os filesystems montados via NFS e fazer a limpeza.
Como a maioria dos mount points se localizam no diretório raiz, o filesystem mais afetado nestes casos será o próprio "/".
Por exemplo, caso tenhamos um filesystem chamado /pub, que é montado a partir do raiz. Caso a máquina por alguma razão não consiga montar este filesystem durante o boot, qualquer atualização do servidor ftp, via mirror por exemplo, irá gravar em /pub, o mount point, e rapidamente encher o /. Ao se montar o /pub, tudo o que foi gravado originalmente ficará sob o conteúdo do diretório remoto, tornando a limpeza impossível.
Para remover o conteúdo do /pub, temos que desmontar o filesystem e remover os arquivos.
Fonte: http://www.dicas-l.com.br/print/19980221.html
Gráficos estatísticos de vírus
Gráficos estatísticos de vírus
Colaboração: Fabiano Caixeta Duarte
Há quem goste de um bom conjunto de gráficos estatísticos para acompanhar o trabalho de seus servidores. Vamos aqui mostrar um exemplo de como acompanhar os vírus que estão sendo filtrados por um sistema anti-vírus acoplado a um servidor de e-mails.
O gráfico conterá um resumo mensal categorizado por vírus apontando a quantidade de vírus interceptados por dia.
O ambiente utilizado foi FreeBSD + Sendmail + ClamAV. Entretanto, com algumas poucas modificações, pode-se adequar o script apresentado a outros contextos.
A ferramenta utilizada para realizar a plotagem dos dados em gráficos (arquivos png) foi o GnuPlot.
A estratégia
As informações para composição dos gráficos são colhidas do log do servidor de e-mail.
No caso do sendmail+clamav, o servidor registra no log a ocorrência de um vírus com a seguinte expressão "Infected with <virus_name>".
# grep Infected /var/log/maillog Sep 17 15:20:39 servidor sm-mta[85830]: j8HIKH3Z085830: Milter add: header: X-Virus-Status: Infected with Worm.SomeFool.AD
As informações relevantes para geração dos gráficos são dia e nome do vírus. Ou seja, só nos interessam as colunas 2 e 13.
# grep Infected /var/log/maillog | awk '' 17 Worm.SomeFool.AD
No exemplo mostrado, demonstramos apenas um vírus capturado. Vamos mostrar agora um pequeno conjunto em que podemos observar a existência de mais de uma ocorrência de cada vírus na mesma data. É um conjunto de informações fictícias. Numa situação real a quantidade de vírus encontrados (infelizmente) é bem maior.
# grep Infected /var/log/maillog | awk '' 17 HTML.Phishing.Bank-1 17 Worm.SomeFool.P 17 Exploit.HTML.IFrame 17 Worm.SomeFool.P 17 HTML.Phishing.Bank-1 17 HTML.Phishing.Bank-1 17 Worm.SomeFool.AD 17 Worm.SomeFool.Gen-2
A estratégia é agrupar as ocorrências de cada vírus, contá-las e armazená-las em um arquivo que será lido pelo gnuplot. Na verdade, geramos um arquivo para cada vírus, possibilitando a plotagem das estatísticas de todos os vírus em um mesmo gráfico.
# grep Infected /var/log/maillog | awk '' | sort | # Ordena as ocorrências uniq -c # Conta as ocorrências de cada vírus > $TMP # Armazena o resultado em um arquivo temporário # cat $TMP 1 17 Exploit.HTML.IFrame 3 17 HTML.Phishing.Bank-1 1 17 Worm.SomeFool.AD 1 17 Worm.SomeFool.Gen-2 2 17 Worm.SomeFool.P
Para tornar o processo automático, optamos por armazenar os logs do servidor de e-mail agrupando-os por dia. Isto quer dizer que programamos o sistema para rotacionar os logs uma vez por dia. Assim, podemos filtrar as informações do dia anterior trabalhando sobre o arquivo /var/log/maillog.0.bz2.
O próximo passo é separar as informações em arquivos, cada um com o nome do vírus.
while read count day virus; do echo $count $day >> $PLOTDIR/$virus done < $TMP
Com os arquivos montados, basta agora executar o gnuplot para plotar o gráfico. Não está no escopo desta dica detalhar o funcionamento do gnuplot (pode ser o conteúdo de outra dica).
O script
Segue a íntegra do script. Devemos agendar sua execução diária pelo cron, de forma que os gráficos sejam atualizados diariamente a partir das informações do log do dia anterior.
#!/bin/bash # VirusGraphGen - Gerador de gráficos de Vírus # Desenvolvido por Fabiano Caixeta Duarte # Agosto / 2005 # Capturar a data levando em consideração que a data base é o dia anterior. # Assim, evitamos problemas em fim de mês. LANG=en_US month=`date -v-1d +%b` # Em Linux: substituir "-v-1d" por "1 day ago" LANG=pt_BR.ISO8859-1 MES=`date -v-1d +%B` ANO=`date -v-1d +%Y` # Criação das variáveis globais THIS=`basename $0` WORKDIR=/var/run/$TMP=$WORKDIR/$$ PLOTFILE=$WORKDIR/virus.plot PLOTDIR=$WORKDIR/$month GRAPHDIR=/var/www/data/images # Garantir a existência dos diretórios de trabalho mkdir -p $WORKDIR mkdir -p $PLOTDIR # Filtrar as linhas de alerta de vírus bzgrep Infected /var/log/maillog.0.bz2 | awk ' ' | sort | uniq -c > $TMP # Separar os vírus e acrescentar aos arquivos já existentes. # Assim, em cada arquivos teremos um acompanhamento diário dos vírus filtrados while read count day virus; do echo $count $day >> $PLOTDIR/$virus done < $TMP #Construindo a linha de múltipla plotagem. O nome do vírus é usado como legenda. PLOTLINE="plot " for i in `ls $PLOTDIR`; do PLOTLINE="$PLOTLINE '$i' u 2:1 t '$i'," done PLOTLINE=$
Referências
Fonte: http://www.dicas-l.com.br/print/20051025.html
Armazenando arquivos binários no PostgreSQL com PHP.
Armazenando arquivos binários no PostgreSQL com PHP.
Colaboração: RODRIGO FRAGOSO
O armazenamento de arquivos em banco de dados possui vantagens em relação à organização já que tudo estaria armazenado no banco. A integridade e segurança também estariam sendo garantidas pelo SGBD.
No PostgreSQL é possível usar o tipo de dado ByteA (No MySQL o campo é Blob). Além disso, para o postgresql o php possui funções de tratamento para arquivos binários (não tem no MySQL), pg_escape_bytea() retorna valores de byte octais e pg_unescape_bytea() converte de volta para binário.
Fonte: http://www.dicas-l.com.br/print/20051008.html
Convertendo rapidamente arquivos de audio
Convertendo rapidamente arquivos de audio
Colaboração: Márcio China
Tinha uma coleção enorme de discos de vinil que digitalizei e armazenei no HD do computador, que, ligado ao sistema de som da casa, virou um excelente "music center". Acontece que ganhei no meu aniversário um desses players de mp3 e percebi que tinha digitalizado minhas músicas no formato ogg, por ser livre, e decidi converter algumas músicas para o formato mp3 para poder usar o presente que só entende este formato. Depois de algum tempo pesquisando ví que converter arquivos de audio é mais simples e menos trabalhoso do que imaginei.
Para isso vamos usar o bash em um terminal, com as ferramentas sox e lame, que certamente você já deve ter instalado. Se ainda não tem, é só procurar nos repositorios oficiais de sua distro ou direto na fonte: http://sox.sourceforge.net/ e http://lame.sourceforge.net/
1 passo: criar uma pasta e colocar as músicas a serem convertidas lá ;) Como vamos fazer a conversão em lote, trabalhar na mesma pasta é fundamental.
2 passo: converter os oggs para wav:
for i in *.ogg; do sox "$i" "$
3 passo: converter os wavs para mp3:
for i in *.wav; do lame -h "$i" "$
4 passo: espetar o player na USB e copiar os mp3 para lá:
cp -v *.mp3 /media/usbdisk/
Observações:
Como usei um 'for', os nomes dos arquivos não podem estar separados por espaços em branco. Voce pode usar as funcçõeszz para arrumar o nome dos arquivos: http://aurelio.net/zz
Outra alternativa é usar outro método de listar os arquivos, 'while' por exemplo.
Usei o sox e o lame, mas você pode usar qualquer ferramenta, bastando substituir na sintaxe do comando.
Você também pode converter de qualquer formato para qualquer formato usando a metodologia, basta ter as ferramentas e adequar a sintaxe.
Deve existir algum programa gráfico que faça isso, ou outros métodos de converter arquivos de audio entre vários formatos, mas este é simples, rápido e funciona :)
CDLivre - Disponível para replicação
Fonte: Notícias Linux
De forma rápida e sucinta, seguindo os processos de definição de produtos de softwares, apresentamos a baixo o que é de fato o nosso projeto, o CDLivre.
Para: Usuários do Microsoft Windows(r)
Que: necessitam usar programas de computador(softwares) de forma legalizada
O CDLivre: é uma coletânea de softwares livres Isto é: que permitem qualquer pessoa utilizá-los de forma gratuita e distribui-los dentro da lei Ao contrário: dos softwares proprietários, que o usuário necessita pagar licenças, que geralmente custam muito mais que o valor do próprio computador nosso produto: vem provar que softwares livres podem e devem ser opção de escolha para o usuário no dia a dia.
Leia mais no site: http://www.noticiaslinux.com.br/nl1176088599.html
Comente: http://www.noticiaslinux.com.br/nl1176088599.html#comentarios
Fonte: http://www.dicas-l.com.br/print/20070412.html
Como listar os arquivos mais velhos e os arquivos maiores de um diretório
Como listar os arquivos mais velhos e os arquivos maiores de um diretório
Colaboração: Daniel de Souza Carvalho
Quando um "file system" está cheio as aplicações podem parar de funcionar!
O sistema está parado e você precisa liberar espaço, o telefone não para de tocar com gente reclamando e você não é o administrador desta máquina! E agora? Como liberar espaço?
Para procurar os diretórios com a maior quantidade de arquivos:
du -k . | sort -n -k 1 | tail -30
Para listar em um diretório os arquivos mais velhos:
ls -lt | tail -30
Para listar os arquivos maiores:
ls -l | sort -n -k 5 | tail -30
Agora é escolher os arquivos e jogar os grandes para a fita ou ou outro servidor, mais é bom saber quais arquivos podem ser removidos! :-)
Quando o "file system" tiver 90% de espaço ou algo assim, você pode compactar os arquivos grantes restantes com gzip, e eles ainda vão estar disponíveis para os usuários. Procure por arquivos PDF, PPT, DOC e a fins, que a principio não vão causar problemas sendo compactados. Agora arquivos ZIP, JPG, MP3 não adianta compactar!!!
É bom criar um script que envia um e-mail de alerta para o administrador do servidor, quando o "file system" estiver mais ou menos a 80%.
Chamada de Trabalhos para o FESTSOL, Juiz de Fora, MG
Está aberta até o dia 30 de julho de 2005, a chamada de trabalhos para o FESTSOL - FESTIVAL DO SOFTWARE LIVRE, que acontecerá nos dias 17 e 18 de setembro de 2005, no CTU - Colégio Técnico Universitário da UFJF (Universidade Federal de Juiz de Fora/MG), em Juiz de Fora/MG.
Os trabalhos devem ser enviados para o e-mail <apresenta (a) festsol com br> com os dados da (o) proponente (nome completo, curriculum, e-mail, telefones com códido de área, endereço) e da palestra (título e resumo). Os resultados serão divulgados no site do evento no dia 10 de agosto.
Mais informações no site do evento: www.festsol.com.br
Fonte: Equipe FESTSOL <http://festsol.com.br/www.festsol.com.br>
Fonte: http://www.dicas-l.com.br/print/20050706.html
Configurando o OpenOffice
Configurando o OpenOffice
Colaboração: Carlos E. Morimoto
O OpenOffice é um dos aplicativos mais complexos que temos no Linux, com mais linhas de código que o próprio Kernel e um sem número de componentes e bibliotecas diferentes. Ele também inclui suporte a diversas línguas e a Java, o que torna o conjunto ainda mais complexo :).
É possível obter o OpenOffice a partir de dois lugares. No http://www.openoffice.org/, você pode baixar o pacote oficial da Sun, disponibilizado em várias línguas (que é o pacote que vem pré-instalado na maioria das distribuições), enquanto no http://www.openoffice.org.br/ você encontra o pacote localizado para o Brasil, mantido pela equipe responsável pela tradução para o Português do Brasil, ainda na época do StarOffice.
Na pasta de downloads do site, você encontra três pacotes:
- OOo_2.0_Win32Intel_install.exe: O pacote com o instalador for Windows.
- OOo_2.0_LinuxIntel_install_debs.tar.gz: O pacote compactado, contendo o OpenOffice empacotado na forma de pacotes .deb.
- OOo_2.0_LinuxIntel_install_rpms.tar.gz: Tem o mesmo conteúdo, mas empacotados na forma de pacotes RPM.
Pela lógica, se você usasse o Ubuntu, Kurumin, ou qualquer outra distribuição derivada do Debian, você baixaria os pacotes contendo os pacotes .deb. Mas, isto nem sempre é uma boa idéia, pois este pacote é gerado para trabalhar no Debian unstable e tem um grande número de dependências, que impedem que seja instalado em muitas distribuições.
Ao invés disso, a instalação é mais simples se você baixar o pacote com os pacotes RPM e convertê-los usando o alien. Para isso, comece instalando o alien pelo apt-get, como em:
# apt-get install alien
Descompacte o pacote e, dentro da pasta contendo os pacotes .rpm, rode o comando que faz a conversão:
# alien *.rpm
Isso vai gerar um conjunto de pacotes com o mesmo nome, porém com a extensão .deb. Você pode em seguida instalá-los usando o comando:
# dpkg -i *.deb
Na pasta desktop-integration você encontra pacotes contendo os ícones do menu iniciar para várias distribuições. Lembre-se que você deve instalar apenas um deles. O arquivo com os pacotes .deb contém o pacote openoffice.org-debian-menus, com os ícones para as distribuições derivadas do Debian.
Na verdade, esta parte da instalação não é necessária na grande maioria dos casos, pois o OpenOffice já vem pré instalado na maioria das distribuições. O próximo passo é o corretor ortográfico, uma peça essencial se você realmente usa o OpenOffice no dia a dia.
O OpenOffice 2.0 é por padrão instalado dentro da pasta /opt/openoffice.org2.0. Em algumas distribuições, que incluem pacotes próprios, a pasta de instalação pode ser a /usr/lib/openoffice2 ou mesmo /usr/share/openoffice, mas este é um daqueles casos em que a ordem não altera o resultado.
Dentro da pasta de instalação, acesse o diretório share/dict/ooo/, que é onde vão os dicionários da correção ortográfica. O corretor completo é composto por três componentes, o corretor propriamente dito, o hifenizador (que entende a divisão das sílabas) e o dicionário de sinônimos (thesaurus), que inclui uma longa lista com variações de palavras, que complementa o dicionário principal.
O pacote do OpenOffice da Sun vem apenas com um deles (o corretor). O pacote do OpenOffice.org.br vinha com os três na época do 1.1.3, mas estranhamente passou a vir apenas com apenas o corretor, na versão 2.0, resultando numa correção ortográfica bastante pobre.
Você pode verificar o status do seu, em Ferramentas > Opções > Configurações de Idioma > Recursos de Correção Ortográfica. Se apenas o OpenOffice.org MySpell SpellChecker estiver disponível, (como neste screenshot do OpenOffice incluído no Ubuntu 5.10), significa que apenas o corretor está instalado.
Mas, não existe motivo para pânico :). Você pode baixar o restante dos componentes aqui:
http://guiadohardware.net/kurumin/download/dics-oo2-kurumin.tar.gz
Como o nome sugere, este é o arquivo com os dicionários que reuni para uso no Kurumin, mas que naturalmente pode ser usado em qualquer distribuição. Para instalar, descompacte o arquivo e copie seu conteúdo para dentro da pasta /share/dict/ooo/, dentro do diretório de instalação do OpenOffice, substituindo os arquivos existentes.
Se você escreve textos técnicos, pode baixar também o meu dicionário pessoal, que contém uma lista enorme de termos técnicos, que ao ser instalado faz o corretor deixar de marcar os termos como palavras incorretas. Salve o arquivo na pasta share/wordbook/pt-BR/ dentro da pasta de instalação do OpenOffice. Desculpe pelo link longo ;).
http://www.guiadohardware.net/kurumin/skel/.openoffice.org2/user/wordbook/kurumin.dic
Depois de salvar os arquivos, feche todas as janelas do OpenOffice e abra-o novamente. Isso fará com que ele encontre os novos arquivos e ofereça a opção de usá-los. Volte ao Ferramentas > Opções > Configurações de Idioma > Recursos de Correção Ortográfica e você verá que apareceram mais duas opções no campo Módulos de Idiomas disponíveis e o dicionário kurumin no campo Dicionários definidos pelo usuário. Marque todas as opções e você ficará com o corretor completo.
No campo opções marque a opção Verificar em todos os idiomas. O pacote dos dicionários que disponibilizei contém também os arquivos do corretor em Inglês (en_US), de forma que ao ativar esta opção o corretor passará a entender também palavras em Inglês (simultaneamente com as em Português) o que acaba sendo bastante útil, já que é muito comum usarmos termos e palavras do Inglês no dia a dia.
Isso evita que você tenha que abaixar e instalar todo o pacote do Openoffice.org.br só por que os corretores não vieram em ordem. O próximo passo é dar uma olhada geral nas configurações, para reduzir o tempo de carregamento e uso de memória.
É quase que um consenso que o OpenOffice é pesado e que demora pra abrir. Mas grande parte do peso é devido à configuração padrão, que está longe de ser otimizada. A maior parte das configurações é definida durante a compilação e por isso não podem ser alteradas facilmente, mas existem duas configurações simples que podem ser modificadas rapidamente pelo Ferramentas > Opções e resultam em resultados interessantes.
A primeira é desativar o Java na opção OpenOffice.org > Java > Usar um JRE. Na verdade, o Java foi integrado artificialmente ao OpenOffice, como uma tentativa da Sun de integrar os dois produtos, fazendo com que a popularidade do OpenOffice impulsionasse também o uso do Java de uma forma geral. O Java é usado apenas em macros, algumas funções dentro do Base (o banco de dados incluído no OpenOffice 2.0) e os assistentes para criação de documentos.
Desativar o Java reduz o tempo de carregamento do OpenOffice quase pela metade e de quebra diminui o uso de memória em quase 30 MB. Você tem a opção de reativar o Java ao tentar usar qualquer opção que realmente precise dele, de forma que você pode desativa-lo com segurança.
Um dos motivos do OpenOffice demorar mais para abrir e salvar documentos do que o MS Office é o fato dele salvar todas as imagens e o próprio texto e formatação do documento num formato compactado, que resulta em arquivos brutalmente menores que os do Office, mas que exigem muito mais processamento para serem criados e abertos.
Uma forma de reduzir o tempo de carregamento é aumentar o tamanho do cache gráfico, na opção OpenOffice.org > Memória > Cache Gráfico. Usar um cache maior faz com que o OpenOffice consuma mais memória RAM, mas fique perceptivelmente mais rápido. Se você tem um micro com 512 MB, vai ter bons resultados reservando de 80 a 150 MB dentro da opção Utilização para o OpenOffice.org. Se, por outro lado, você tem um micro com 256 MB ou menos, vai ter melhores resultados usando um cache menor, de 20 a 40 MB. Ajuste também a opção Memória por Objeto, que deve ser proporcional ao tamanho total do cache. Ao usar um cache maior, aumente o valor e ao usar um cache menor, reduza-o.
Desativando o Java, aumentando o tamanho dos cache e fuçando um pouco mais nas configurações é possível fazer o OpenOffice carregar em cerca 6 segundos num Sempron 2800 com 512 MB (primeiro carregamento, sem preloading) e em pouco mais de 3 segundos a partir do segundo carregamento (quando ele já está armazenado no cache de disco) e consumindo bem menos memória RAM que de costume.
Gostou da dica? Veja a agenda de cursos presenciais com Carlos E.Morimoto em Porto Alegre e São Paulo
Fonte: http://www.dicas-l.com.br/print/20051116.html
Remoção de arquivos iniciados em -
Remoção de arquivos iniciados em -
Colaboração: Rubens Queiroz de Almeida
Uma pergunta que aparece com bastante frequencia nas listas de discussão de Unix é como remover arquivos que possuam nomes que comecem com "-". O Unix utiliza o caracter "-" como indicativo de flags para seus comandos.
Por exemplo, caso tenhamos um arquivo chamado "-a" e tentemos remove-lo
% rm -a rm: illegal option -- a Usage: rm [-firRe] [--] file ...
A operação não foi efetuada porque o argumento fornecido ao comando "rm" foi interpretado como uma opção e não como o nome de um arquivo. Para contornarmos este problema, basta preceder o nome do arquivo por um outro caracter "-", como exemplificado abaixo:
% rm - -a
Fonte: http://www.dicas-l.com.br/print/19970502.html
10 anos de dcraw
10 anos de dcraw
Colaboração: Bruno Buys
O dcraw fez 10 anos de idade no dia 23 de fevereiro. Ele é um utilitário que permite a decodificação de mais de 240 formatos proprietários de imagens de câmeras digitais. Sim, câmeras podem gravar imagens em jpeg, e é o que a maioria delas faz, e para vê-las não é necessário nenhum software especial. Mas podem também gravar no formato cru (ou 'raw', em inglês), que é mais apropriado para trabalho avançado em fotografia e impressão em alta resolução. E para decodificar os formatos crus, o software livre mais usado da atualidade é o dcraw.
O projeto é tocado por Dave Coffin, e mora em www.cybercom.net/~dcoffin/dcraw. Apesar do tamanho modesto, ele é de fundamental importância para o trabalho em fotografia avançada no GNU/Linux.
Câmeras digitais avançadas e/ou profissionais são capazes de gerar arquivos 'crus', ou seja, que contém todos os dados luminosos captados pelo CCD, com pouco ou nenhum tratamento na câmera e sem a perda de informação característica do jpeg. Estes arquivos, depois de serem convertidos para formatos como o tif ou ppm, são o melhor material para serem tratados em softwares de edição de imagem. E é aqui que o problema começa: cada fabricante de câmeras tem seu formato cru específico, diferente e incompatível. A cada nova geração de câmeras os formatos mudam, e como se isso não bastasse, alguns fabricantes (Nikon, por exemplo) parecem estar optando por criptografar os dados dos arquivos crus. Junto com a câmera o fabricante fornece uma mídia de instalação do software decodificador... para Windows ou Mac, é claro. Versão para GNU/Linux, sem chance. Abrir especificações dos formatos de arquivos, então, nem pensar.
O Dave Coffin passa a maioria do tempo de trabalho no dcraw fazendo engenharia reversa dos formatos de arquivos de câmeras. Segundo uma de suas entrevistas, ele até já se tornou bom na coisa! E o dcraw tem sido usado em uma série de outros programas livres ou nem tanto (somente uns trechos do código está sob a gpl, o resto é domínio público, mesmo).
O dcraw se tornou uma ferramenta presente na maioria das distribuições modernas. É pequeno, rápido e portável. E, segundo alguns fotógrafos, produz resultados *melhores* do que os softwares originais dos fabricantes.
Quem quiser se informar mais sobre a briga de foice em torno dos formatos crus pode ir até www.openraw.org. É uma iniciativa para pressionar a indústria a abrir especificações, ou a aderir a um formato raw público.
Nada melhor para comemorar o 10o aniversário de um software do que lançando uma nova versão!
O Dave não descansa: para a versão 8.60 ele implementou um novo tipo de filtro capaz de separar a informação real do ruído com mais precisão, melhorando até mesmo imagens de ISO mais baixo.
Se você tem uma câmera que grava em raw, uma olhada no projeto é altamente recomendada. Tem man page e ajuda em português. E se você não tem, vale conhecer o projeto assim mesmo. É um belo exemplo da força do software livre.
Fonte: http://www.dicas-l.com.br/print/20070316.html





Últimos comentários