quinta-feira, 6 de fevereiro de 2025

Gustavo Kalau – Treinamento Diferente



                                                              https://gustavokalau.com.br/  




quarta-feira, 15 de janeiro de 2025

O comando join


O comando join

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 12 de janeiro de 2025

 Fonte: https://www.dicas-l.com.br/

O comando join no  Linux é uma ferramenta poderosa para combinar linhas de dois arquivos com base em um campo comum. É particularmente útil quando você precisa mesclar dados de diferentes fontes.

A sintaxe básica do comando é:


$ join [OPÇÕES] ARQUIVO1 ARQUIVO2

O join funciona comparando os campos especificados em ambos os arquivos e, quando encontra uma correspondência, combina as linhas dos dois arquivos. Por padrão, ele usa o primeiro campo de cada arquivo como chave de junção.

É importante notar que, para o join funcionar corretamente, os arquivos devem estar ordenados pelo campo de junção. Vamos explorar alguns exemplos práticos para entender melhor como o join funciona.

Imagine que temos dois arquivos: funcionarios.txt e salarios.txt.

O arquivo funcionarios.txt contém:


1 João

2 Maria

3 Pedro

E o arquivo salarios.txt contém:


1 3500

2 4000

3 3800

Para juntar estes arquivos, usamos o comando:


$ join funcionarios.txt salarios.txt

O resultado será:


1 João 3500

2 Maria 4000

3 Pedro 3800

Agora, vamos considerar um cenário onde o campo de junção não é o primeiro. Temos um arquivo departamentos.txt:


RH 1 João

TI 2 Maria

MKT 3 Pedro

Para juntar este arquivo com salarios.txt, usamos:


$ join -1 2 -2 1 departamentos.txt salarios.txt

O resultado será:


1 RH João 3500

2 TI Maria 4000

3 MKT Pedro 3800

O join também permite incluir linhas que não têm correspondência. Imagine que temos um arquivo funcionarios_extra.txt:


1 João

2 Maria

3 Pedro

4 Ana

Para incluir todos os funcionários, mesmo os sem salário, usamos:


$ join -a 1 funcionarios_extra.txt salarios.txt

O resultado será:


1 Joãoo 3500

2 Maria 4000

3 Pedro 3800

4 Ana

Podemos também formatar a saí­da do join. Por exemplo:


$ join -o 1.2,2.2,1.1 funcionarios.txt salarios.txt

Isso resultará em:


João 3500 1

Maria 4000 2

Pedro 3800 3

O join também pode ignorar diferenças de maiúsculas e minúsculas. Se tivermos um arquivo nomes.txt:


1 JOÃO

2 MARIA

3 PEDRO

Podemos usar:


$ join -i nomes.txt salarios.txt

E o resultado será:


1 JOÃO 3500

2 MARIA 4000

3 PEDRO 3800



Algumas dicas adicionais: se os arquivos não estiverem ordenados, você pode usar o comando sort antes do join.


Por exemplo:


$ join <(sort funcionarios.txt) <(sort salarios.txt)

Para juntar múltiplos arquivos, você pode usar o join em cascata:


$ join funcionarios.txt salarios.txt | join - departamentos.txt

E se seus arquivos usarem um delimitador diferente, como vírgulas em arquivos CSV, você pode especificar isso com a opção -t:


$ join -t, funcionarios.csv salarios.csv




O comando join é uma ferramenta versátil para combinar dados de diferentes arquivos no Linux. Com prática, você pode usá-lo para realizar operações complexas de mesclagem de dados diretamente no terminal. Lembre-se sempre de verificar se os arquivos estão ordenados corretamente pelo campo de junção antes de usar o join, para garantir resultados precisos e evitar problemas comuns.

quinta-feira, 20 de maio de 2021

Redução do tamanho de vídeos para postagem em redes sociais



Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 29 de junho de 2020

Fonte dicas-l.com.br

A maioria das redes sociais impõem limites ao tamanho de vídeos publicados. O Whatsapp, por exemplo, impõe um limite de 64MB aos arquivos enviados.

Como então converter os vídeos para que se adequem às normas das diferentes redes?

A solução é recorrer mais uma vez ao poderoso ffmpeg.

Entender todas as opções deste programa é tarefa para uma vida inteira, mas para reduzir o tamanho de um vídeo, sem perda de qualidade, a sintaxe do ffmpeg é muito simples:


$ ffmpeg -i videogrande.mp4 videopequeno.mp4
$ ls -lh videogrande.mp4 videopequeno.mp4
-rw-rw-r-- 1 queiroz queiroz 88M jun 28 11:56 videogrande.mp4
-rw-rw-r-- 1 queiroz queiroz 24M jun 28 12:15 videopequeno.mp4


Vejam só, uma redução de 88 MB para 24 MB. Ao menos para mim, não houve nenhuma perda de qualidade. Você poderia usar um editor de vídeo como ShotCut para obter o mesmo resultado, mas como a maioria (ou todos) os editores de vídeo usam ffmpeg, porque não ir pelo caminho mais fácil, não?




terça-feira, 26 de março de 2019

O "Jamming"



Fonte: Revista Saber 
Edição 16 - 1989

Autor Valter Aguiar



Incessantemente praticado durante muitos anos, o jamming era a grande "praga" dos ouvintes de ondas curta do mundo inteiro. Hoje, com a política de abertura da União Soviética, o jamming é muito menos praticado, mas ele  ainda existe. Mas, afinal de contas, o que é o jamming?  Jamming é o nome dado a qualquer espécie de interferência proposital destinada a encobrir o sinal de urna emissora que se deseje censurar, normalmente com fins políticos. O rádio internacional é um meio de comunicação sem fronteiras. Qualquer pessoa pode acompanhar os acontecimentos mundiais através da fonte de informação que bem entender. Pode-se ouvir a Voz da América ou a Rádio Moscou;  a Rádio Pequim ou a Voz da China Livre, de Formosa;  a Voz da Alemanha, de Colônia, ou a Rádio Berlim Internacional. A única limitação, nesta análise, refere-se ao orçamento de cada emissora. Naturalmente, os países ricos podem investir mais em rádios internacionais do que os países pobres. Com isso, as emissoras mais potentes e mais fáceis de captar são, via de regra, as dos países ricos. Entretanto, nem sempre é interessante para um governo permitir que uma emissora estrangeira com pontos de vista contrários ideologicamente seja ouvida pela sua população. E ai que entra a única forma de censura possível nas ondas curtas: o jamming, ou sejas, o bloqueio da emissora através da transmissão de ruído na mesma frequência. Como qualquer outro tipo de censura, o jamming é fruto de governos autoritários. Surgiu na ll Guerra Mundial, com o governo de Adolf Hitler interferindo nas frequências de várias emissoras dos aliados, em particular a BBC. Após a guerra, a União Soviética passou a interferir em várias emissoras do bloco capitalista. Os alvos principais eram a Rádio Liberdade e a Rádio Europa Livre, emissoras sediadas na Alemanha Ocidental e mantidas pelo governo dos Estados Unidos, que transmitem programas nos idiomas falados nos países socialistas. E não se trata apenas das grandes potências. Existem grupos contrários aos governos de seus países que mantêm emissoras clandestinas para difundir as suas ideias. Estas emissoras são alvo frequente de jamming. Um dos muitos exemplos é a conhecida centro americana Rádio Venceremos. Há ainda casos da interferência sofridas pela Voz  da América em chinês durante os episódios da Praça da Paz Celestial, em Pequim.
Existem diversas formas de se diminuir o problema causado pelo jamming. Do lado dos ouvintes, existe um modelo especial de antena de quadro que reduz o nível de ruído pela interferência. Por parte das emissoras, há duas saídas:  aumentar a potência de transmissão ou o número de frequências utilizadas, de forma a esgotar a capacidade de jamming do oponente e ainda restar alguma frequência livre. Tanto em um caso corno no outro, o resultado é o mesmo:  congestionamento da faixa, um problema já abordado em artigo anterior e do qual o jamming sempre foi um dos grandes responsáveis. As emissoras clandestinas, que não têm capacidade de transmissão para utilizar um dos sistemas acima, costumam adotar um artifício bastante interessante: variam suas frequências dia após dia, e até, durante uma mesma transmissão, a fim de despistar os praticantes do jamming.  Felizmente para os ouvintes de onda curta do mundo  inteiro, a política de abertura do presidente soviético Mikhail Gorbachev fez com que o jamming da União Soviética deixasse de ser praticado. No inicio de 1988, a União Soviética parou de interferir nas, transmissões da BBC e da Voz da América em  idioma russo. Posteriormente, foi  a  vez da Rádio Europa Livre e da Rádio Liberdade.
 O jamming continua sendo praticado por outros. países mas, na. maior parte das vezes, de maneira esporádica. Os transmissores que eram utilizados pela União Soviética para jamming agora emitem programas de um serviço mundial da Rádio Moscou, em russo. Esta atitude trouxe excelentes novidades para os radio escutas: menos ruído no ar e um novo e interessante serviço para ser ouvido!


domingo, 3 de fevereiro de 2019

Automatização de tarefas com crontab e cron



Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 19 de janeiro de 2018

Sem sombra de dúvida, um complemento fundamental para shell scripts, é a possibilidade de agendamento de tarefas. Com este recurso, propiciado pelos aplicativos cron e crontab, a tarefa de administração de sistemas fica grandemente facilitada. Eu mantenho cinco portais (Dicas-L, Contando Histórias, Aprendendo Inglês, Inglês Instrumental e o portal do Instituto de Desenvolvimento do Potencial Humano). Todas as tarefas de manutenção destes portais são feitas por meio de shell scripts, com execução automatizada por meio do cron. O envio das mensagens, a publicação das páginas, o backup do banco de dados, a cópia de segurança de todo o portal para outro servidor, a verificação da taxa de ocupação de espaço em disco, alertas em caso de uso excessivo de CPU e muito mais. Em suma, automatizei tudo que pude, caso contrário seria impossível cuidar de tantos portais.

A automatização de tarefas em sistemas GNU/Linux é feita por meio de dois programas: crontab e cron. Além destes programas, temos também, para cada usuário, um arquivo chamado crontab, que é o local onde são gravadas as diretivas que serão seguidas pelo cron. O arquivo crontab é editado pelo comando crontab. Os arquivos crontab dos usuários são gravados no diretório /var/spool/cron/crontabs.


O formato do arquivo crontab

Uma linha do arquivo crontab possui o seguinte formato:
0 6 * * * comando 
Os cinco primeiros campos determinam a periodicidade de execução do comando. Abaixo segue uma explicação do significado de cada um destes campos:

CampoSignificadoValores
1Minutos0 a 59
2Hora0 a 23
3Dia do mês1 a 31
4Mês1 a 12
5Dia da semana0 a 7, sendo que os números 0 e 7 indicam o domingo
6Comando a ser executadoqualquer comando válido do sistema

Exemplos
0  20 * * 1-5 comando
O comando será executado de segunda a sexta (1-5), exatamente às 20h.
10 10 1 * * comando
O comando será executado às 10h10, do dia 1º de todos os meses.
0,10,20,30,40,50, * 31 12 * comando


No dia 31 de dezembro, o comando será executado a cada dez minutos, o dia inteiro. Sempre que um campo for preenchido com o asterisco, significa que aquele campo assumirá todos os valores possíveis.

Podemos abreviar esta notação, em vez de especificar cada um dos minutos, podemos fazer da seguinte forma:
*/10 * 31 12 * comando


Os dias da semana podem também ser indicados por sua abreviação: sun, mon, tue, wed, thu, fri, sat.

Prosseguindo ...
* * * * * comando


Esta linha da crontab fará com que o comando seja executado todos os minutos, de todos os dias, de todos os meses. É apenas um exemplo, não faça isto, a não ser que tenha uma razão muito boa para tal.

Isto é o básico, mas o aplicativo cron oferece mais alguns recursos muito úteis. A tabela abaixo relaciona mais alguns parâmetros que podemos usar na crontab com seu significado:

ParâmetroDescriçãoEquivale a
@rebootocorre ao iniciar o computador
@yearlyocorre 1 vez ao ano0 0 1 1 *
@annuallyo mesmo que @yearly0 0 1 1 *
@monthlyocorre 1 vez ao mês0 0 1 * *
@weeklyocorre 1 vez na semana0 0 * * 0
@dailyExecuta uma vez ao dia0 0 * * *
@midnightmesmo que @daily0 0 * * *
@hourlyocorre 1 vez a cada hora0 * * * *


A diretiva @reboot é particularmente útil, pois em cada sistema nós temos tarefas que precisam ser executadas quando da inicialização da máquina e este parâmetro é um atalho muito conveniente para representar estas atividades.

Para utilizar estes parâmetros, bastam dois campos: o parâmetro em si e o nome do comando. Por exemplo, para executar o backup do banco de dados diariamente, acrescente a seguinte linha ao arquivo crontab:

@daily /usr/local/bin/db_backup.sh


O script db_backup.sh deve ser criado pelo administrador com as diretivas apropriadas para o backup do banco de dados.

Importante, se o seu computador não estiver no ar quando do horário da execução do comando, o cron não fará um novo agendamento, esta situação precisa ser tratada manualmente. A única exceção é a diretiva @reboot, que faz com que o comando especificado seja executado quanto a máquina for ligada.

Edição da crontab
Falta agora descobrir como editar a crontab, o que é bastante simples:
$ crontab -e
A diretiva -e indica ao programa crontab que queremos editar seu conteúdo. O arquivo crontab padrão vem com um conjunto de instruções (em inglês) sobre a sua sintaxe:
# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command

Todas as linhas iniciadas por # são comentários, e você pode removê-las quando quiser, sem problema algum.

O arquivo crontab será aberto utilizando o editor de sua preferência. Você pode definir esta preferência através da variável de ambiente EDITOR:export EDITOR=vi 


Se você não conhece o vi, pode usar o nano, que é um editor mais amigável, embora com muito menos recursos.

Caso deseje apenas listar o conteúdo do arquivo crontab, digite:
$ crontab -l
O usuário root pode editar diretamente a crontab dos usuários do sistema que administra. Para isto basta executar o comando:
# crontab -u [nome do usuário] -e 


IMPORTANTE: não é só colocar o comando na crontab e esquecer da vida, precisamos gerar alertas ou verificar a saída gerada pelo arquivo para ver se tudo deu certo.

Por padrão, o cron envia para o usuário um email com o resultado do comando. Através da análise destas mensagens, podemos decidir o que fazer.
Caso queiramos que o email seja enviado para um outro usuário, podemos definir, no arquivo crontab, a variável MAILTO:
 MAILTO="admin@mydomain.com" 
E se eu errar na edição da crontab, corro o risco de perder alguma coisa? Fique tranquilo, sempre que você gravar a crontab, se houver algum erro de sintaxe, o sistema te avisa, não grava as alterações e te pergunta se você quer refazer a edição:
$ crontab -e

crontab: installing new crontab
"/tmp/crontab.KA6PeR/crontab":24: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n)


Não se esqueça, sempre coloque o caminho completo do comando, visto que a variável PATH da execução do comando via cron é diferente daquela do seu ambiente.

quinta-feira, 2 de agosto de 2018

Correios e Telégrafos - Alguém ainda acredita?






Por Rubens Queiroz de Almeida


Data de Publicação: 20 de Março de 2011


Por alguns anos eu venho tendo uma experiência bastante peculiar com o serviço dos Correios em minha cidade. Neste mês, vejam só o que ocorreu:

DocumentoData de VencimentoData de Entrega pelos Correios
Telefônica14/03/201118/03/2011
Embratel10/03/201118/03/2011
Submarino15/03/201118/03/2011
Sem Parar10/03/201118/03/2011
Comunicado Bancário04/03/201118/03/2011
Oi Celular16/03/201118/03/2011


Isto é o que ocorreu este mês (março de 2011), mas isto ocorre praticamente todos os meses. Paguei muita multa por conta disto. Vejam só, todas as correspondências foram entregues no dia 18 de março. Parece que juntaram tudo para entregar em um único dia. Estão otimizando o processo. Mas já é um progresso, antes nem entregavam. Outro fato interessante, o carteiro enfiava dentro da minha caixa postal a correspondência da rua inteira. Eu então, como bom cidadão que sou, fazia a entrega nas demais casas. Ao que parece, isto não aconteceu só comigo. Um amigo de Brasília relatou o mesmo fato. Reclamei com a ouvidoria dos Correios e felizmente esta prática foi interrompida.


Pode ser que isto seja apenas um problema localizado, talvez apenas comigo, ou apenas na minha rua. Mas uma correspondência que recebi do Submarino no dia 11 de março, me faz suspeitar que este problema seja generalizado:




Vejam só a mensagem: se a fatura não chegou, não se preocupe, é só emitir uma outra no site da empresa.
E tem mais, vamos ao mundo real. Alguns meses atrás, tive que ir na agência pegar uma encomenda. A fila estava grande e chegou o fim do expediente às 17h. Ainda havia umas 8 ou dez pessoas aguardando sua vez. Saiu então dos fundos da agência um "solícito" funcionário que começou a perguntar a cada um de nós o que estava aguardando. Eu, que era um dos últimos, só vi as pessoas saindo uma a uma, sem serem atendidas. Na minha vez, o funcionário perguntou o que eu ia fazer. Disse que ia pegar uma encomenda. Ele me perguntou se eu tinha o aviso dos correios. Eu disse que não, pois esperava poder pegar a encomenda fornecendo meu endereço e um documento. Ele me disse então que isto era impossível, que para pegar a encomenda só se eu tivesse o aviso. Fui então, junto com os demais, embora. Voltei no outro dia, com o aviso dos Correios. Ao chegar a minha vez, perguntei ao atendente se era possível pegar a encomenda fornecendo um documento e o meu endereço. A resposta foi: "É claro, com os seus dados pessoais conseguimos localizar perfeitamente qualquer encomenda dentro da agência". É um caso típico de exploração da humildade e desconhecimento da maioria da população para desrespeitar nossos direitos. Todos, inclusive eu, foram para casa sem falar nada.





E tem mais, se você tem uma correspondência importante, que você precisa garantir a entrega ao destinatário, qual a sua opção? Sedex, claro. Neste mes, para enviar um envelope com duas folhas, de Campinas para Brasília, paguei aproximadamente R$ 35,00. Era isto ou conviver com a incerteza quanto ao destino do meu documento. Pelo ocorrido com as correspondências da minha vizinhança, realmente é de dar medo. E no final das contas, acabamos mesmo desembolsando o valor estratosférico do SEDEX para garantir aquilo que deveria ser obrigatório para toda e qualquer correspondência: a certeza de chegar ao destino.


No dia 3 de outubro de 2008, após um total desapontamento com o serviço Claro 3G, eu escrevi o artigo Conexão Banda Larga Claro 3g, em que relatei minhas experiências e também como usei a busca no Google, com algumas palavras mágicas, para fazer uma avaliação da qualidade do serviço. Para o serviço Claro 3g, o total de resultados obtidos foi 121.000. Um outro provedor de serviços notório, a Telefônica, retornou 154.800 resultados. Vamos agora ver como o serviço dos Correios se sai em uma enquete similar:



Argumento de busca


Resultados
correios merda48.700
correios bosta164.000
correios porcaria25.300
correios lixo323.000
TOTAL561.000


Os Correios ganham de longe, 3,5 mais reclamações do que a Telefônica e 4,6 vezes mais que o serviço Claro 3G.


É claro que, sempre que possível, coloco as minhas contas no débito automático, para evitar o serviço porco dos Correios. Sempre que possível, peço também para que não me enviem correspondência, pois sinto que é dinheiro jogado fora e um desperdício imprimir faturas que não me servem para nada. Mas reconheço que isto não é o correto. Devemos reclamar para termos um serviço que é um direito de todos nós. Se o Facebook, Twitter, etc, estão derrubando as ditaduras do Oriente Médio e da África do Norte, podemos tentar melhorar o serviço de uma empresa tão importante para todos nós, como os Correios. Nasci em 1960 e durante grande parte da minha vida eu sempre ouvi as pessoas se referirem a esta empresa com respeito e admiração. Da mesma forma, havia um respeito pelos funcionários dos Correios e pelos carteiros. É doloroso ver como as coisas mudaram.


Espero que algo seja feito.

sexta-feira, 20 de julho de 2018

Senhas da rede wifi de mais de 130 aeroportos no mundo


Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 20 de julho de 2018
Fonte: www.dicas-l.com.br




Para quem vai viajar, vale a pena verificar o endereço http://bit.ly/airportwifimap
Esta página contém a relação de mais de 130 aeroportos no mundo e instruções sobre como acessar suas redes wifi.
A tela abaixo contém as informações do aeroporto de Guarulhos:




É claro que manter um banco de dados deste tamanho, com informações relativas a aeroportos do mundo inteiro, é bastante difícil. A boa notícia é que você mesmo pode complementar esta informação.


Referências

sábado, 12 de maio de 2018

Compactação de arquivos com xz



Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 10 de maio de 2018

Fonte: www.dicas-l.com.br

Estou muitos anos atrasado com esta dica, fiquei conhecendo hoje o método de compressão XZ.

Antes de falar mais sobre ele, vamos a um teste rápido:



Antes de falar mais sobre ele, vamos a um teste rápido:
$ gzip planilha.csv 
$ ls -lh planilha.csv.gz
-rw-r--r-- 1 queiroz queiroz 24K Mai  7 14:44 planilha.csv.gz
$ xz planilha.csv
$ ls -lh planilha.csv.xz 
-rw-r--r-- 1 queiroz queiroz 20K Mai  7 14:44 planilha.csv.xz



Vejam só, o arquivo compactado com o programa xz ficou 17% menor. Bastante significativo, não?

O comando tar para compactar arquivos utilizando este protocolo é também bastante simples:
tar Jcvf arquivo.tar.xz arquivo(s)

e  para descompactar:
 tar Jxvf arquivo.tar.xz


A diretiva J indica ao comando tar o tipo de compactação que será utilizado.
A diretiva J indica ao comando tar o tipo de compactação que será utilizado.
O pacote pxz utiliza a compressão LZMA em diferentes partes de um arquivo em múltiplos núcleos de processamento (cores) do seu processador. Desta forma a tarefa de compressão é dividida, cada corerecebe um pedaço do arquivo para trabalhar e o processamento é feito em paralelo. O objetivo final do pacote é utilizar todos os recursos computacionais disponíveis para obter a melhor taxa de compressão possível no menor tempo.
O programa xz faz parte do pacote xz-utils e o programa pxz faz parte do pacote pxz.   Para instalar os dois pacotes em sistemas Debian GNU/Linux e derivados, digite:
 sudo apt-get install xz-utils pxz 

sábado, 9 de dezembro de 2017

Linux, você sabe o que é isso?


Por Pedro Cipoli

Fonte https://canaltech.com.br/

Tux, o pinguim mascote do GNU/Linux


Quando se fala em Linux muitas pessoas pensam na imagem de um programador executando dezenas de comandos complicados em uma tela preta semelhante ao finado DOS. Isso seria verdade até alguns anos atrás, mas o sistema evoluiu tanto em seu visual, com suporte a aplicações 3D e ambientes de trabalho cheios de efeitos e uma enorme facilidade de uso, que variações como o Ubuntu e o Linux Mint conquistam cada vez mais usuários que querem fugir das (caras) licenças do Microsoft Windows.

Para explicar um pouco mais desse sistema e suas variações, o Canaltech preparou um artigo bem completo, acompanhe:

Centenas de distribuições para escolher


Quando dizemos GNU/Linux, não estamos falando de um sistema em particular, mas de centenas de variações, cada uma com suas características próprias. O mesmo acontece com o Windows: temos instalado em nossas máquinas o Windows 7 ou o Windows XP, e ambos se referem ao sistema operacional da Microsoft, porém ambos possuem suas diferenças e peculiaridades.

Enquanto o Microsoft Windows atual conta com menos de 20 versões, o GNU/Linux possui nada menos que mil variações, também conhecidas como distros, cada uma com seu conjunto de softwares e configurações para baixar, instalar e testar, até você escolher a que atenderá melhor as suas necessidades. Mas não se preocupe, você não precisará testar todas elas. Abaixo temos uma breve descrição de oito principais distribuições para você observar algumas diferenças:


Ubuntu



Distribuição mais conhecida mundialmente, é a favorita dos usuários iniciantes por sua interface agradável e configurações automáticas, reconhecendo praticamente qualquer equipamento instalado no computador já no momento da instalação. Como o próprio slogan diz, é o "Linux para seres humanos", onde todas as tarefas são realizadas via interface gráfica, como no Windows.
Ubuntu Logo

Linux Mint



Tem ganhado popularidade com o tempo graças as suas interfaces modificadas e efeitos especiais próprios, aliando faclidade de uso, boa performance e um visual bastante atraente. O Linux Mint é talvez a distribuição mais recomendada para quem está vindo do Windows, pois possui uma organização que lembra bastante o sistema da Microsoft.
Linux Mint Logo

Debian


Reconhecido por sua estabilidade e enorme acervo de softwares compatíveis, o Debian é muitas vezes visto como o "dinossauro" do mundo Linux, pois testa arduamente qualquer modificação antes de implementá-la oficialmente, o que significa que você dificilmente verá um travamento do sistema, porém nem sempre terá a versão mais atual de um software. Por essas características, é recomendada tanto para servidores quanto para usuários comuns que querem um sistema leve, estável e sem bugs.
Debian logo

Open SUSE




Embora não tão conhecido no Brasil, o openSUSE traz o YasT, gerenciador do sistema próprio da distribuição que facilita desde as configurações mais simples até as mais avançadas, como gerenciamento de proxies e compartilhamento de arquivos pela rede.
OpenSUSE logo

Fedora



Voltada para usuários que gostam de ter a última versão de todos os softwares e alterações de sistema, o Fedora é recomendado para usuários médios e avançados que saibam lidar com as possíveis incompatibilidades. Trazendo muitas caraccterísticas do Red Hat Enterprise Linux, distro comercial desenvolvida para servidores, possui excelente suporte a serviços de rede como arquivos, e-mail e web.
Fedora logo

Gentoo



Exigindo um alto nível de conhecimento do usuário, pode-se dizer que não existem dois sistemas Gentoo iguais no mundo, pois ele instala configurações especificas de cada hardware instalado. Se por um lado você consegue o máximo de performance de sua máquina, sem programas desnecessários ocupando a memória, por outro perderá várias horas durante a instalação em seu computador.
Gentoo logo

Dreamlinux



O representante brasileiro da lista traz um recurso muito procurado pelos usuários, que é o visual semelhante ao Mac OS, sistema operacional da Apple. Com vários programas úteis pré-instalados, o Dreamlinux é outro que entra na lista dos GNU/Linux voltados para a facilidade de uso.
Dreamlinux logo

Scientific Linux



Bastante procurado por institutos de pesquisa e laboratórios, o Scientific Linux possui suporte nativo a aplicativos de alta performance e programação paralela, e mesmo voltada para o processamento de grandes quantidades de dados não deixa de lado a interface de usuário amigável e softwares de uso diário, como navegadores, editores de texto e jogos.
Scientific Linux logo

Vários ambientes de trabalho


Cada distribuição possui suas configurações particulares e ambiente de trabalho padrão, o que não significa que você não pode mudá-las depois de instalá-las. Diferentemente do Windows ou do Mac OS, você pode ter vários ambientes instalados e selecioná-los quando for mais conveniente, não precisando ficar preso ao padrão da distribuição.

No GNU/Linux podemos definir tanto o sistema que queremos usar quanto o ambiente de trabalho, então você pode escolher entre o Ubuntu Gnome e Ubuntu KDE, Debian Gnome, KDE ou LXDE e assim por diante. Entre os vários ambientes disponíveis, listamos três dos mais utilizados:


Gnome



Alguns usuários preferem esse ambiente por achar que ele é mais leve e intuitivo, outros alegam que ele é mais sério e por isso recomendado para desenvolvedores de aplicações e ambientes de trabalho, tendo grandes nomes por trás de seu desenvolvimento, como Novell, IBM e HP. Atualmente possui duas versões, que focam em tipos diferentes de usuários: a 2.X e a 3.X. Embora uma seja a evolução da outra, a 2.X traz um ambiente muito mais leve, preferida por configurações de hardware um pouco mais humildes, enquanto a 3.X oferece suporte aos efeitos 3D por padrão, com vários efeitos que agradam os usuários que querem um desktop mais bonito.
Desktop Gnome 2
O Gnome 2, com maior parte de sua interface em 2D


Desktop Gnome 3
Gnome 3, com incorporação de recursos 3D nativos

KDE



Desenvolvido para o usuário que deseja todos os aplicativos prontos para uso logo após a instalação do sistema, o KDE traz um desktop completo como padrão, com navegadores web, gravadores de CD/DVD e players de música e vídeo pré-instalados. Possui também um visual bastante agradável com animações 3D e efeitos transparentes que deixam o visual do seu computador moderno e customizado, o que também exige mais recursos de hardware para funcionar.

Desktop KDE Plasma
KDE Plasma Desktop, completo logo após a instalação



LXDE 



Voltado para proprietários de máquinas mais antigas com performance mais limitada, uma distribuição com o LXDE como ambiente de trabalho pode ressuscitar aquele seu PC encostado ou mesmo fazer o seu netbook trabalhar com a velocidade de um desktop convencional. A exigência de menos recursos infelizmente sacrifica o visual e aplicações pré-instaladas, mas nem por isso quebra a compatibilidade dos programas que podemos utilizar nele, como o Firefox e o LibreOffice.

Desktop LXDE
LXDE, com menos poder de fogo mas muito mais leve para o sistema

Extraia todo o poder de seu hardware


Um dos grandes motivos de vários usuários gostarem tanto do GNU/Linux é a velocidade. O sistema é muito mais rápido que o Windows (para o mesmo hardware), o que é ótimo tanto para aqueles que possuem um computador com mais de idade quanto para os aficcionados por desempenho extremo. Não é à toa que os maiores supercomputadores do mundo preferem o pinguim como sistema operacional oficial.

Uma das preocupações comuns dos usuários é: "Será que aquele meu dispositivo vai funcionar no Linux?". A resposta é sim. A grande maioria dos drivers de placas wireless, impressoras e outros dispositivos já são configurados automaticamente na instalação, e você pode escolher tanto os fornecidos pelo GNU/Linux quanto os oficiais desenvolvidos pelo fabricante. Por exemplo, as grandes empresas fabricantes de placas de vídeo já disponibilizam versões oficiais de seus drivers para download. Em computadores portáteis, como notebooks e netbooks, o reconhecimento automático de placas de rede sem fio já economiza bastante trabalho se comparado a uma instalação do Windows.

Existem algumas distribuições que rodam até em computadores produzidos há mais de 10 anos, como é o caso do Joli OS, utilizando recursos de computação em nuvem para realizar a maior parte do processamento e ressuscitando aquele computador que você parou de usar há muito tempo por ele simplesmente "não rodar" aqueles novos aplicativos que você queria usar.



Segurança


No Windows estamos acostumados a ter que baixar um programa antivírus e atualizá-lo frequentemente, para não corrermos o risco de termos nossos dados pessoais e bancários roubados. O GNU/Linux possui um sistema de permissões bastante maduro, o que diminui (ou elimina) essa necessidade, mas mesmo assim traz mecanismos de segurança pré-instalados para deixar você sempre tranquilo.

Por ser originalmente desenvolvido para trabalhar em rede, a segurança sempre foi um dos pontos cruciais de seu sucesso nessa área, assim como o acesso a áreas protegidas do sistema, que requerem a senha do administrador para salvar as alterações, resultando em menos bugs causados acidentalmente pelo usuário.



Compatibilidade com programas Windows


Mesmo que o Linux seja um sistema operacional completamente diferente do Windows, isso não significa que você precisa abandonar os programas que mais utiliza. Através do Wine, programa de emulação de software, você pode instalar programas desenvolvidos para Windows dentro do Linux, como o Microsoft Office, Photoshop e até mesmo o Internet Explorer mais recente!

Além disso, existem excelentes programas que possuem versões para os dois sistemas, como o LibreOffice (suíte de escritório), Gimp (editor de imagens), VLC Media Player(reprodutor de vídeos), Audacity (editor de áudio semelhante ao Sound Forge) e o VirtualBox.



E o melhor: tudo de graça!


Dizem que tudo que é bom custa caro, mas o GNU/Linux está ai para provar o contrário. Você pode baixar, instalar e testar quantas distribuições desejar e quantas vezes quiser, pois não é necessário comprar uma licença para utilizar o Linux, já que ele é completamente desenvolvido sobre as diretrizes da licença GNU GPL (GNU General Public License, ou Licença Pública Geral GNU), que garante que ele vai ser sempre gratuito e de código aberto.

Não importa se você deseja utilizá-lo em casa, no escritório ou em algum servidor, a licença não restringe o uso comercial do GNU/Linux. Você pode inclusive fazer modificações em seu código e distribuí-lo para quem quiser, desde que mantenha a mesma licença e permita que outros também façam modificações em seu código.
O Linux é um sistema de código aberto


E você, já usou ou usa Linux? O que acha do sistema?

Este artigo faz parte de nossa biblioteca de conteúdo "Tudo o que você precisa saber sobre o Linux". Não deixe de acessar e conferir todo o conteúdo publicado sobre o Pinguim.

sexta-feira, 1 de dezembro de 2017

Unicamp - Estão abertas as inscrições para o curso de aperfeiçoamento em mineração de dados complexos



Por Zanoni Dias

Data de Publicação: 23 de Novembro de 2017

Estão abertas as inscrições para o Curso de Aperfeiçoamento em Mineração de Dados Complexos, a ser realizado no Instituto de Computação da Unicamp em 2018.

O curso explorará os principais métodos de Análise de Dados, Recuperação de Informação, Mineração de Dados, Visualização de Informação, tratamento de grandes volumes de dados (Big Data), além das mais modernas técnicas de Inteligência Artificial e Aprendizado de Máquina (inclusive Deep Learning).

Mais informações

Por favor, ajudem a divulgar o curso repassando esta mensagem para os seus contatos, e também compartilhando nossos posts nas redes sociais:

sexta-feira, 1 de setembro de 2017

Android não é Linux



Colaboração: Anahuac de Paula Gil

Data de Publicação: 30 de agosto de 2017

Linux é um kernel. O nome do sistema operacional é Android.

Sei que essa discussão é repetitiva e, provavelmente você já ouviu, leu ou até mesmo participou de alguma discussão sobre esse assunto. Mas pense um pouco: se é repetitivo é porque não há consenso. Então me dê uma chance de contar essa história.

O Google criou um sistema operacional livre chamado Android. No início eles não tinham um kernel livre, então usavam um proprietário enquanto se concentraram em todo o resto: sistema de arquivos, shell, editor de texto, compiladores, interface gráfica e muito mais.

Um dia alguém sugeriu o uso do kernel Linux, que permitia ser adaptado para a plataforma de hardware que o Google usava, estava licenciado por GPL e tinha um ótimo desempenho. Os testes foram um sucesso tão grande que eles logo decidiram rebatizar o sistema operacional de Android/Linux. Agradeceram demais ao Linus Torvalds e o mundo todo ficou sabendo.

A medida que o Android/Linux foi se tornando popular a fama de Linus também. Diversos ativistas e usuários entusiasmados começaram a chamar o SO apenas de Linux, porque era mais fácil e bonito. O Google fez campanhas educativas, tentou explicar que não seria correto eliminar o nome Android, afinal de contas eles tinham criado o sistema operacional. Não adiantou nada: os usuários mais fanáticos decidiram. acusaram o Google de interferir na liberdade de escolha do nome e Linus fez um depoimento emocionado onde disse: "As pessoas devem ter a liberdade de chamar o sistema operacional como bem quiserem. Eu chamo de Linux e acho que é absurdo e ridículo que queiram forçar as pessoas a chamá-lo de Android/Linux."

A Linux Foundation decidiu incorporar softwares não livres ao kernel linux para torná-lo mais compatível com os dispositivos disponíveis. Assim o Linux seria ainda mais popular. Deu certo: o Linux agora é o sistema operacional mais usado no mundo, pois está presente em mas de 86% de todos os smartphones do mundo.

É claro que o Google tentou reagir várias vezes, mas falhou. Foi acusado de xiita, de radical e de anti capitalista. Entretanto o argumento mais emblemático é que o se fosse para chamar o sistema operacional de Android/Linux, então seria muito mais justo chamá-lo de Android/Chrome/Maps/Waze/Hangout/Linux.

O que tinha começado como um projeto de software livre chamado Android, conquistou o planeta conhecido como Linux e contém tanto software privativos que nem é mais software livre.

É claro que o kernel é uma parte vital de um sistema operacional, mas a interface gráfica, o sistema de arquivos, o navegador e o editor de textos também são. O sistema operacional é a soma de todos seus componentes e não apenas o de um ou dois mais importantes.

O mercado gosta de determinados nomes e os usa para identificar objetos, definir conceitos e até mesmo para estigmatizar pessoas. Hacker como sinônimo de criminoso cibernético e Gilette para lâmina de barbear, são alguns exemplos. Seja por pressão financeira, campanhas de marketing ou interesses sócio-políticos, sempre há uma razão por trás disso.

Os criadores originais do Android estão convencidos que remover o nome Android é uma estratégia para remover a importância da liberdade do software da cena. Dizendo apenas Linux e mostrando apenas o pinguim, não se passa o recado da liberdade do software para o mercado.

...

É claro que você não chama o Android de Linux. É claro que você deve achar essa história um absurdo.

Então saiba que quase tudo que descrevi acima é verdade. E você ajuda a perpetuar o absurdo sempre que se refere a qualquer sistema operacional como Linux.

O nome do sistema operacional livre ou não - Ubuntu, Trisquel, Fedora, Parabola, openSuse, Ututo, Debian - é GNU. Ele foi criado em 1983 por Richard Stallman, que incorporou o kernel Linux em 1992.

Se você acha que as liberdades do software são fundamentais e quer ajudar o Movimento Software Livre de verdade, nunca mais diga que o sistema operacional é linux ou que uma distribuição é linux. É tão absurdo quanto chamar o Android de linux.

Lembre-se: o nome do sistema operacional é GNU.

Saudações Livres!
Me encontre no grupo #ultraGNU do https://riot.im

segunda-feira, 15 de maio de 2017

Raspberry p3 sem audio HDMI slackware-arm

Semana passada resolvi m e aventurar na arquitetura ARM e como muitos novatos esbarrei em um problema comum...  ausência de  de audio tanto no HDMI como no jack.

Após "gugglar" por dias, parecia que nenhuma das opções  resolvia o problema, até que achei um post que finalmente passou a informação correta =)

Em /boot/config.txt, colar as seguintes linhas.


dtparam=audio=on
hdmi_drive=2

 Após reiniciar, tudo funcionou perfeitamente =)


sábado, 22 de abril de 2017

Congelar o HD para recuperar os dados - Mito ou Realidade



Fonte www.dicas-l.com.br

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 29 de agosto de 2012

Uma história que circula há muitos anos na Internet é que, congelando o seu disco rígido defeituoso, você consegue dar uma nova vida a ele por alguns minutos, o que lhe permitirá recuperar os dados, parcial ou totalmente.

Ao que tudo indica, a técnica funciona mesmo. O Augusto Campos, do Br-Linux.org relatou um caso de sucesso em um artigo que escreveu para a revista Linux Magazine. Não consegui localizar o artigo original, mas que ele existe, existe.

Recentemente li mais um artigo a respeito, chamado Freeze your hard drive to recover data: Myth or reality?.

Reproduzo a seguir, em tradução livre, o conteúdo deste artigo.
Freeze your hard drive to recover data: Myth or reality?

Cerca de 2 semanas atrás, escrevi um artigo, que foi bastante popular, sobre a recuperação do disco rígido (recebi cerca de 20.000 visitas). O artigo abordou algumas soluções para ajudar na recuperação de um disco rígido defeituoso. Enquanto estava pesquisando para escrever este artigo, descobri algumas histórias de pessoas que colocavam o seu disco no freezer para dar-lhe uma vida adicional por um tempo suficiente para recuperar seus dados. Acho que, ao fazer isto, alguns componentes de metal do disco rígido se contraem, colocando de volta no lugar peças defeituosas, viabilizando que tudo volte a funcionar por mais alguns minutos.

O que vocês acham? Mito ou realidade? Parece que um monte de gente concorda que esta solução realmente funciona, então eu decidi testá-la com um disco rígido antigo Maxtor que havia pifado algumas semanas atrás. O HD não contém dados importantes, de modo que perder o disco realmente não seria um problema.

Antes de colocá-lo no congelador, a unidade estava fazendo um barulho estranho (cliques) e o computador exibia esta mensagem:
  Primary hard drive 0 not found, strike F1 to retry boot, F2 to run the setup utility 


Eu retirei o disco rígido do computador, coloquei-o dentro de um saco plástico Ziplock para evitar condensação de humidade.



Em seguida, coloquei-o no freezer e esperei por uma hora.
Finalmente, coloquei o disco de volta no computador, fechei o gabinete e liguei.

SIM! Funciona, o computador inicializou corretamente! Infelizmente, após o login, o Windows travou e eu não consegui fazer mais nada. Tentei rebootar, mas ...



Bem, pelo menos o disco rígido girou por cerca de 2 minutos antes de pifar novamente. Talvez isso não seja o suficiente para me deixar recuperar os dados, mas funcionou por algum tempo. :)

Observação: Um dia depois, coloquei o disco rígido de volta no congelador por 24 horas. Desta vez, o disco funcionou por mais 20 minutos.

Se você não quer correr o risco de perder dados e se você tem medo de tentar fazer isso, é melhor usar os serviços de especialistas.

Fonte do original em inglês: Freeze your hard drive to recover data: Myth or reality?

terça-feira, 21 de fevereiro de 2017

Escrevendo scripts de backup



Colaboração: Carlos E. Morimoto



Durante a década de 70, vários utilitários foram desenvolvidos para fazer backup de arquivos armazenados em servidores Unix. Os computadores da época eram muito limitados, por isso os utilitários precisavam ser simples e eficientes, e deveriam existir meios de agendar os backups para horários de pouco uso das máquinas.

Sugiram então utilitários como o tar e o gzip e mais tarde ferramentas como o rsync. Estes utilitários eram tão eficientes que continuaram sendo usados ao longo do tempo. Por incrível que possa parecer, são usados sem grandes modificações até os dias hoje.

Naturalmente, existem muitos utilitários amigáveis de backup, como o Amanda (para servidores) e o Konserve (um utilitários mais simples, voltado para usuários domésticos). Mas, internamente, eles continuam utilizando como base o o dump, tar, gzip e outros trigenários.

Mais incrível ainda, é que estes utilitários possuem uma penetração relativamente pequena. A maior parte dos backups ainda são feitos através de scripts personalizados, escritos pelo próprio administrador. E, novamente, estes scripts utilizam o tar, gzip, rsync e outros.

É justamente sobre estes scripts personalizados que vou falar aqui. Vamos começar com alguns exemplos simples:

Para compactar o conteúdo de uma pasta, usamos o tar combinado com o gzip ou bzip2. O tar agrupa os arquivos e o gzip os compacta. Os arquivos compactados com o gzip usam por padrão a extensão "tar.gz", enquanto os compactados com o bzip2 usam a extensão "tar.bz2". O bzip2 é mais eficiente, chega a obter 10% ou mais de compressão adicional, mas em compensação é bem mais pesado: demora cerca de 3 vezes mais para compactar os mesmos arquivos. Você escolhe entre um e outro de acordo com a tarefa.

O comando para compactar uma parta é similar ao "tar -zxvf" que usamos para descompactar arquivos. Para compactar a pasta "arquivos/", criando o arquivo "arquivos.tar.gz", o comando seria:
  $ tar -zcvf arquivos.tar.gz arquivos/ 
O "c" indica que o tar deve criar um novo arquivo e o "v" faz com que exiba informações na tela enquanto trabalha. Se preferir comprimir em bz2, muda apenas a primeira letra; a invés de "z" usamos "j":
  $ tar -jcvf arquivos.tar.bz2 arquivos/ 


Estes comandos seriam ideais para fazer um backup completo, de uma ou várias pastas do sistema, gerando um arquivo compactado que poderia ser armazenado num HD externo, gravado num DVD ou mesmo transferido via rede para outro servidor.

Imagine agora um outro cenário, onde você precisa fazer backup dos arquivos de uma pasta de trabalho diariamente. Os arquivos gerados não são muito grandes e você tem muito espaço disponível, mas é necessário que os backups diários feitos em arquivos separados e sejam guardados por um certo período, de forma que seja possível recuperar um arquivo qualquer a partir da data.

Ao invés de ficar renomeando os arquivos, você poderia usar um pequeno script para que os arquivos fossem gerados já com a data e hora incluída no nome do arquivo:
  DATA=`date +%Y-%m-%d-%H.%M`
  cd /mnt/backup
  tar -zcvf trabalho-"$DATA".tar.gz /mnt/hda6/trabalho/


A primeira linha do script cria uma variável "DATA", contendo o resultado do comando " date +%Y-%m-%d-%H.%M". O comando date retorna a data e hora atual, como em "Sex Set 16 12:36:06 BRST 2005". A saída padrão dele não é muito adequada para usar em nomes de arquivos, por isso usamos as opções para alterar o formato de saída, de forma que o resultado seja "2005-09-16-12.37" (ano, mês, dia, hora, minuto, segundo). Usamos este valor no nome do arquivo com o backup, de forma que cada vez que você chame o script, seja gerado um arquivo com a data e hora em que foi gerado, sem a possibilidade de dois arquivos saírem com o mesmo nome.

O próximo passo é fazer com que este script de backup seja executado diariamente de forma automática, o que pode ser feito usando o cron.

Em primeiro lugar, salve os comandos num arquivo de texto, que vamos chamar de "backup.sh" e transforme-o num executável usando o comando "chmod +x backup.sh".

Para que ele seja executado automaticamente todos os dias, copie-o para dentro da pasta "/etc/cron.daily" e certifique-se que o serviço "cron" esteja ativo:
  # cp -a backup-sh /etc/cron.daily
  # /etc/init.d/cron start 
Se preferir que o script seja executado apenas uma vez por semana, ou mesmo uma vez por hora, use as pastas "/etc/cron.weekly" ou a "/etc/cron.hourly". Por padrão, os scripts dentro da pasta "/etc/cron.daily" são executados pouco depois das 6 da manhã (o horário exato varia de acordo com a distribuição), para alterar o horário, edite o arquivo "/etc/crontab", alterando a linha:
  25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 


O "25 6" indica o minuto e a hora. Se quiser que o script seja executado às 11 da noite, por exemplo, mude para "00 23".

Neste exemplo usei a pasta "/mnt/backup" para salvar os arquivos. Esta pasta pode ser o ponto de montagem de um HD externo ou de um compartilhamento de rede por exemplo. O seu script pode conter os comandos necessários para montar e desmontar a pasta automaticamente.

Imagine, por exemplo, que o backup é sempre feito na primeira partição de um HD externo, ligado na porta USB, que é sempre detectada pelo sistema como "/dev/sda1". O script deve ser capaz de montar a partição, gravar o arquivo de backup e depois desmontá-la. Se por acaso o HD não estiver plugado, o script deve abortar o procedimento. Para isso precisamos verificar se o HD realmente foi montado depois de executar o comando "mount /dev/sda1 /mnt/sda1". Existem muitas formas de fazer isso, uma simples é simplesmente filtrar a saída do comando "mount" (que mostra todos os dispositivos montados) usando o grep para ver se o "/mnt/sda1" aparece na lista. Se não estiver, o script termina, caso esteja ele continua, executando os comandos de backup:
  mount /dev/sda1 /mnt/sda1
  montado=`mount | grep /mnt/sda1`
  
  if [ -z "$montado" ]; then
    exit 1
  else
    DATA=`date +%Y-%m-%d-%H.%M`
    cd /mnt/backup
    tar -zcvf trabalho-"$DATA".tar.gz /mnt/hda6/trabalho/
    umount /mnt/sda1
  fi 


A partir daí, sempre que você deixar o HD externo plugado no final do expediente, o backup é feito e estará pronto no outro dia. Se esquecer de plugar o HD num dia, o script percebe e não faz nada.

Se preferir que o script grave o backup num DVD, ao invés de simplesmente salvar numa pasta, você pode usar o "growisofs" para gravá-lo no DVD. Neste caso, vamos gerar o arquivo numa pasta temporária e deletá-lo depois da gravação:
  DATA=`date +%Y-%m-%d-%H.%M`
  rm -rf /tmp/backup; mkdir /tmp/backup; cd /tmp/backup
  tar -zcvf trabalho-"$DATA".tar.gz /mnt/hda6/trabalho/
  growisofs -speed=2 -Z /dev/dvd -R -J /tmp/backup/trabalho-"$DATA".tar.gz
  rm -rf /tmp/backup 


O "-speed=2" permite que você especifique a velocidade de gravação do DVD, o "-Z" cria uma nova seção no DVD, é possível usar o mesmo disco para gravar vários backups (se o espaço permitir) usando a opção "-M" a partir da segunda gravação, que adiciona novas seções no DVD, até que o espaço se acabe.

O "/dev/dvd" indica o dispositivo do drive de DVD. A maioria das distribuições cria o link /dev/dvd apontando para o dispositivo correto, mas, em caso de problemas, você pode indicar diretamente o dispositivo correto, como, por exemplo, "/dev/hdc". As opções "-R -J" adicionam suporte às extensões RockRidge e Joilet.

Se o cron for configurado para executar o script todos os dias, você só precisará se preocupar em deixar o DVD no drive antes de sair.

Outro grande aliado na hora de programar backups é o rsync. Ele permite sincronizar o conteúdo de duas pastas, transferindo apenas as modificações. Ele não trabalha apenas comparando arquivo por arquivo, mas também comparando o conteúdo de cada um. Se apenas uma pequena parte do arquivo foi alterada, o rsync transferirá apenas ela, sem copiar novamente todo o arquivo.

Ele é uma forma simples de fazer backups incrementais, de grandes quantidades de arquivos, ou mesmo partições inteiras, mantendo uma única cópia atualizada de tudo num HD externo ou num servidor remoto. Este backup incremental pode ser atualizado todo dia e complementado por um backup completo (para o caso de um desastre acontecer), feito uma vez por semana ou uma vez por mês.

Para instalar o rsync, procure pelo pacote "rsync" no gerenciador de pacotes. No Debian instale com um "apt-get install rsync" e no Mandriva com um "urpmi rsync".

Para fazer um backup local, basta informar a pasta de origem e a pasta de destino, para onde os arquivos serão copiados:
  $ rsync -av /mnt/hda6/trabalho /mnt/backup/ 


A opção "-a" (archive) faz com que todas as permissões e atributos dos arquivos sejam mantidos, da mesma forma que ao criar os arquivos com o tar e o "v" (verbose) mostra o progresso na tela.

A cópia inicial vai demorar um pouco, mais do que demoraria uma cópia simples dos arquivos. Mas, a partir da segunda vez a operação será muito mais rápida.

Note que neste comando estamos copiando a pasta "trabalho" recursivamente para dentro da "/mnt/backup", de forma que seja criada a pasta "/mnt/backup/trabalho". Adicionando uma barra, como em "/mnt/hda6/trabalho/", o rsync copiaria o conteúdo interno da pasta diretamente para dentro da "/mnt/backup".

Se algum desastre acontecer e você precisar recuperar os dados, basta inverter a ordem das pastas no comando, como em:
  $ rsync -av /mnt/backup/trabalho /mnt/hda6/trabalho/ 


O rsync pode ser também usado remotamente. Originalmente ele não utiliza nenhum tipo de criptografia, o que faz com que ele não seja muito adequado para backups via Internet. Mas, este problema pode ser resolvido com a ajuda do SSH, que pode ser utilizado como meio de transporte. Não é a toa que o SSH é chamado de canivete suíço, ele realmente faz de tudo.

Neste caso o comando ficaria um pouco mais complexo:
  $ rsync -av --rsh="ssh -C -l tux" /mnt/hda6/trabalho \
  tux@192.168.0.1:/mnt/backup/ 


Veja que foi adicionado um parâmetro adicional, o --rsh="ssh -C -l tux", que orienta o rsync a utilizar o SSH como meio de transporte. O "-C" orienta o SSH a comprimir todos os dados (economizando banda da rede) e a se conectar ao servidor remoto usando o login tux (-l tux). Naturalmente, para que o comando funcione é preciso que o servidor esteja com o SSH habilitado, e você tenha um login de acesso.

Em seguida vem a pasta local com os arquivos, o endereço IP (ou domínio) do servidor e a pasta (do servidor) para onde vão os arquivos.

Para recuperar o backup, basta novamente inverter a ordem do comando, como em:
  $ rsync -av --rsh="ssh -C -l tux" tux@192.168.0.1:/mnt/backup/ \
  mnt/hda6/trabalho 


Originalmente, você vai precisar fornecer a senha de acesso ao servidor cada vez que executar o comando. Ao usar o comando dentro do script de backup, você pode gerar uma chave de autenticação, tornando o login automático. Esta opção é menos segura, pois caso alguém consiga copiar a chave (o arquivo .ssh/id_rsa dentro no home do usuário), poderá ganhar acesso ao servidor.

De qualquer forma, para usar este recurso, rode o comando "ssh-keygen -t rsa" (que gera a chave de autenticação) usando o login do usuário que executará o script de backup, deixando a passprase em branco. Em seguida, copie-o para o servidor, usando o comando:
  $ ssh-copy-id -i ~/.ssh/id_rsa.pub tux@192.168.0.1 
A partir daí, o script de backup pode ser executado diretamente, através do cron, pois não será mais solicitada a senha.