Como usar o crontab

Finalmente resolvi pesquisar como funciona o agendamento de tarefas no Linux para eu poder agendar o backup do MySQL (uso Ubuntu Server) e o funcionamento do crontab é bem mais simples do que eu pensava.

Como funciona o crontab

O funcionamento do crontab é simples: você tem um arquivo de texto em que cada linha representa uma tarefa agendada, cada linha é composta de 6 variáveis separadas por vírgula, explicadas abaixo.

O primeiro passo é no terminal digitar:

crontab -e

Este comando vai abrir seu arquivo de crontab ou criar um arquivo caso ele ainda não exista. No editor é só inserir uma linha com a rotina que você quer agendar, seguindo a estrutura abaixo abaixo:

*     *     *   *    *        comando a ser executaco
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- dia da semana (0 - 6) (Domingo=0)
|     |     |   +------- mês (1 - 12)
|     |     +--------- dia do mês (1 - 31)
|     +----------- hora (0 - 23)
+------------- minuto (0 - 59)

O * representa "todos", por exemplo:

0 4 * * 0 rm /home/gserrano/backup/*

O exemplo acima remove todos os arquivos da pasta /home/gserrano/backup todo o domingo as 4 AM. Para a execução de comandos completos você pode usar shellscript, para isso o seu comando ficaria

0 4 * * 0 sh /home/exemplo.hs

O exemplo acima executa o "exemplo.sh" também as 4 da madrugada aos domingos.

Dicas

Você pode usar vírgula para executar um comando mais de uma vez. O exemplo abaixo vai executar o comando as 4 AM de domingo e quinta-feira:

0 4 * * 0,4 sh /home/exemplo.hs

Você pode usar / para indicar uma repetição dentro do intervalo que vem depois da barra. O exemplo abaixo vai executar o comando a cada 10 minutos, todo o dia:

/10 * * * * sh /home/exemplo.hs

Atenção:  o uso do / para intervalo não é suportado em todos os sistemas.

 

Tentei ser o mais direto e conciso neste pequeno tutorial, se você tiver dúvidas ou quiser corrigir ou acrescentar algo use os comentários.

Referências

Entendendo os números do CHMOD

E escrevo hoje para compartilhar com vocês uma tabela bacana que explica os números referente as permissões do chmod.

Mas primeiro, vamos definid chmod para quem não faz idéia do que estou falando…

O que é CHMOD?

Não consegui resumir mais do que esta frase da Wikipédia:

chmod é um comando unix/linux usado para alterar permissões de arquivos (ou ficheiros) e diretórios (directórios ou pastas).

Wikipedia

É um comando utilizado para dar permissões de arquivos, coisa comum em gerenciamento de servidor. O @mnetto encontrou um post dele antigo, falando sobre o assunto e vou compartilhar a ótima explicação…

Ao final do artigo cito exemplos do comando completo, mas primeiro vamos entender os números e as permissões…

Números binários

Para entender o que significa cada número no chmod vamos entender primeiro números binários, vamos lá:

  0 - 000
  1 - 001
  2 - 010
  3 - 011
  4 - 100
  5 - 101
  6 - 110
  7 - 111

 

As permissões do chmod

Existem 3 tipos de permissões: leitura (r), escrita (w), execução (x).

Unindo isso a tabela de números binários, temos o seguinte:

      rwx
  0 - 000
  1 - 001
  2 - 010
  3 - 011
  4 - 100
  5 - 101
  6 - 110
  7 - 111

 

Na tabela acima é possível ver que 0 (zero) não tem nenhuma permissão "ligada" nos binários, e 7 tem todas "ligadas". Ou seja, 7 é o nível máximo de permissão: leitura, escrita e execução.

 

O comando CHMOD

O comando chmod funciona da seguinte forma:

chmod [dono][grupo][outros] nomedoarquivo.ext

Entre [ ] deve ir o valor numério (de zero a 7, na tabela apresentada acima) referente ao: dono, grupo e outros usuários.

Exemplo:

chmod 755 abc.doc

Neste exemplo o dono do arquivo tem permissão total, enquanto todos os outros usuário tem permissão de leitura e execução apenas.

 

Espero que tenham gostado, a ótima referência das tabelas estão no l-dicas.

Apagar todos arquivos de um tipo nas pastas e subpastas no linux

Usando o linux (Ubuntu, no meu caso), sempre tenho que gerar pacotes de arquivos com atualizações das mais diversas, para enviar a clientes. Como usamos o SVN para gerenciamento de versões, repositórios e afins, sempre gerava os pacotes (zip ou rar) com um monte de arquivos do cliente SVN usados internamente por ele para gerenciar as versões dos arquivos. Com isso, o .zip sempre ficava bem maior do que eu queria.

Então, pesquisei e vi que, para apagar arquivos com uma determinada extensão de uma pasta e sub-pastas, é só ir no console e digitar:

find sua_pasta -iname ".extensao" -exec rm -fr {} ;

Por exemplo:

find /home/user/dev/cliente1 -iname ".svn" -exec rm -fr {} ;

Veja mais sobre como apagar pastas no Linux.

Ubuntu 8.10 – veja as novidades

Daqui duas semanas, no final de Outubro, será lançada a nova versão do Ubuntu, a 8.10, batizada de Intrepid Ibex. Segue, abaixo, uma lista de algumas das mais significativas mudanças.

Atualização do GNOME
O ambiente gráfico será atualizado para a versão 2.24 (release notes completo: http://library.gnome.org/misc/release-notes/2.24/)

Conectividade 3G
Entre as novidades da nova versão da distro, encontramos um aperfeiçoamento na utilização e suporte para conexões 3G(claro que não era difícil, mas nada melhor que simplificar ainda mais o processo).

Kernel 2.8.27
Atualização do Kernel do linux usado com várias melhorias e correções.

Conta Guest para visitantes
Se você sempre pensou que poderia haver uma conta default para usuários hóspedes, agora sua idéia passará para o plano real. O novo Ubuntu criará usuários temporários(que por questões de segurança não terão acesso a nenhuma informação de outros usuários cadastrados no sistema nem acesso à escrita na máquina) para utilização de funções básicas e emergenciais no sistema.

Maior segurança para seus dados pessoais
Outra coisa boa na próxima versão Ubuntu é um novo diretório privado(~ / Privado), o qual não será acessado por outros usuários (pois terá permissão chmod 700). E o que o torna melhor ainda: este diretório é criptografado!

Melhoria no gerenciador de pacotes de atualizações
Sabe quando você atualiza todos os seus repositórios e sistema fazendo aquele upgrade que deixa vários pacotes “bagunçados”? Pois é, a nova versão do Ubuntu oferecerá um sistema de limpeza que lhe auxiliará quanto a esta “baguncinha” em seu sistema.

Instalação por pendrive
Imagine que você demorou dias para convencer uma pessoa a usar o Ubuntu devido às vantagens trazidas e, justamente na hora de instalar você esqueceu o CD ou não pôde levá-lo devido ao tamanho! Agora o Ubuntu poderá ser instalado diretamente de um pendrive.

Melhor usabilidade no instalador do sistema
O instalador do Ubuntu, que ainda não havia sido modificado desde a criação do sistema, finalmente será atualizado, recebendo um visual mais prático.

Drivers
Novos drivers serão adicionados(entre eles, os de algumas impressoras, o que para muitos que sofrem como eu utilizando a Lexmark X3470, pode ser quase uma conquista).

Gerenciar as fontes pelo GNOME
Quanto ao “fontconfig” no qual temos de modificar manualmente o arquivo de configuração das fontes, trata-se de ser alterado. Um confortável GUI nos permitirá alterar as nossas configurações de fontes no GNOME. É especialmente útil quando muitos usuários trabalham em um computador.

Abas no Nautilus
Finalmente foi criado um sistema de abas para o Nautilus. Agora poderemos criar divisões para facilitar nossa navegação nos arquivos.

Melhoria na pesquisa do gerenciador de pacotes
Foi implementada uma atualização no Synaptic a qual fará com que suas pesquisas retornem os resultados em um momento. Basta escrever o que você está procurando (por exemplo, “áudio”) e os resultados serão exibidos quase que instantâneamente(e você nem precisa pressionar a tecla Enter)

 

Por curiosidade, segue abaixo o wallpaper oficial da nova versão: