terça-feira, 18 de outubro de 2011

Cron e Crontrab - agendando tarefas no Unix / Linux

Na empresa que trabalho atualmente, temos um software que realiza diversas interações com softwares escritos em C/C++, Shell, Python, Perl e alguns softwares do Linux.
Hoje tive que realizar uma interação entre JAVA e Cron, vou explicar um pouco sobre este que achei muito simples e interessante.

Oque é Cron e para que serve?
É um software de agendamento de rotinas para a plataforma Unix.
Imagine que você tem um determinado diretório que precisa ter seu conteúdo movido para outro diretório e voltar ao seu conteúdo padrão de tempos em tempos,
ou um exemplo mais claro, você precisa gerar um backup de sua pasta local para a pasta de rede todo dia no final do espediente por segurança.
Utilizando o serviço de agendamento do Cron você pode agendar qualquer tipo de tarefa seja ela uma tarefa de manutenção, segurança ou meramente administrativa.
Você pode executar comandos em shell, python, perl, etc ...

Agora vamos ver o Cron em funcionamento:
O primeiro passo é editar o arquivo de configuração do Cron que se chama Crontab.

O arquivo deve ser preenchido da seguinte maneira:
*     *      *     *     *     Comando_para_executar.sh
┬   ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 7) (Sunday=0 or 7)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

Um exemplo bem simples:
* * * 18 30 /home/lucasluiz/bin/backup.sh

Você deve preencher os parametros com os seguintes valores:
Minutos: de 0 a 59;
Horas: 0 a 23;
Dias do mês: 0 a 31;
Mês: de 1 a 12;
Dias da semana: de 0 a 7;
Comando: comando, tarefa, script, processo que deve ser executado em seu Job.

Este foi um post bem simples para repassar a experiência de hoje, até mais!

Referências:

quinta-feira, 13 de outubro de 2011

PHP + Mac OSX, Problemas simples pedem soluções simples

Enquanto fazia alguns testes no meu apache. Me deparei com o seguinte erro:
"Error: 2002 - No such file or directory"

Não é muito dificil lembrar o nome de um arquivo importante para qualquer comunicação que seja com MySQL "mysql.sock".
Um problema simples de resolver, vamos lá:

1 passo: Encontrar o arquivo "mysql.sock"
sudo find / -name mysql.sock
/private/tmp/mysql.sock

2 passo: Encontrar o arquivo "php.ini"
sudo find / -name  php.ini
/private/etc/php.ini

3 passo: Editar o arquivo "php.ini" e alterar o parametro do destido "mysql.sock"
sudo vi /private/etc/php.ini

4 passo: Altere o valor da linha
"mysql.default_socket = /var/mysql/mysql.sock"
por
"mysql.default_socket = /private/tmp/mysql.sock"

Agora é só reiniciar o apache e ver o resultado, até a próxima!