Total de visualizações de página

Pesquisar este blog

sexta-feira, 29 de janeiro de 2010

Crontab - Agendamento de tarefas

Muitas vezes você tem necessidade de agendas tarefas em seu servidor Linux pois fazer uma rotina todos os dias acaba sendo um tanto quando desgastante e como somos pessoas (humanos) corremos o risco de esquecer de algo, então vou mostar como efetuo rotinas diárias em meu servidor de dados como ERP da empresa.

Opções do Crontab:
crontab -l = lista as tarefas agendadas;
crontab -e = edita a lista de tarefas agendadas;
crontab -r = remove todas as tarefas agendadas, ou seja, remove o crontab do usuário;

Como ele é formado: utilizando a opção acima temos o crontab do usuário, mas também temos a opção global que é utilizada somente pelo root. Então utilizando o comando crontab -e temos:
0 4 * * * ls -l

Onde temos 5 campos conforme descrito abaixo:
0 = minuto que vai rodar a tarefa (0-59)
4 = hora que vai rodar a tarefa (0-23)
* = dia do mês que vai rodar a tarefa (1-31)
* = mês que vai rodar a tarefa (1-12)
* = dia da semana que vai rodar a tarefa (onde: 0=domingo;1=segunda;2=terça e sábado=6)
ls -l = comando que você quer executar na tarefa

Exemplo prático: todo domingo dentro do meu servidor preciso executar uma limpeza de um certo diretório temporário e utilizo conforme abaixo:
30      23      *       *       0       /diretorio/shell/limparel.sh

Todos os dias as 23:30h rodo meu script limparel.sh que faz a limpeza de meu diretório temporário.

Arquivo de log: para verificar o log do seu crontab para saber se ele está ou não rodando use.
tail -f /var/spool/mail/usuario

Dica Útil: Se você quiser rodar o comando ou script em em dois minutos específicos ou horas ou dias use:

30,45      12,23      *       *       0       /diretorio/shell/limparel.sh

Ou seja o script vai rodar no minuto 30 e 45 e na hora 12 e 23 de todos os dias.

Sei que existe muito material sobre isso, mas como eu disse, vou demonstrar de uma forma prática e objetiva o que acontece no meu dia a dia.

Att Junior.

quinta-feira, 21 de janeiro de 2010

Proxy Utilizando - Endian Firewall Community release 2.2 (c) 2004-2009 Endian

Recentemente estou migrando os "Proxys" das empresas que faço a gestão da rede para uma solução UTM chamada Endian Firewall.


Segue abaixo como fazer a configuração do Proxy.
Relembrando: para acessar a interface gráfica do EFW basta digitar:
https://IP_servidor:10443
usuario e senha



Na aba Proxy em HTTP e em Configuration temos N opções, porém, como o intuito é mostrar de uma forma simplificada de como utilizar o Proxy essa ferramenta, não entrarei muito a fundo nas opções. Abaixo segue o que eu uso dae sim explicando o que cada uma delas significa:


PS: no meu caso estou utilizando o proxy como transparente e sem autenticação (cada cenário é um cenário diferente, mas caso queira mais informações, kb.endian.com/)



Allowed Ports and SSL Ports = para uma aplicação específica na empresa tive que liberar a porta 81, só seguir as confs default e acrescer: 81 # servico
Log settings = aqui habilitamos os logs do serviço
Allowed Subnets per Zone = nesta opção que dizemos qual ou quais redes fazer o controle pelo Proxy
Inter-Zone traffic settings = utilizado para liberar ou aceitar acesso a redes (LAN, DMZ, WIFI)
Bypass / Banned Sources and Destinations = nessa opção dizemos quem vai ter acesso livre a internet sem controle, porém, "logando" tudo que sair pelo firewall.
Cache management = Quanto de cache você quer de armazenamento seu servidor.
Upstream proxy = caso você tenha um outro proxy interno dentro da rede pode repassar o pacote para ele também.








Nas abas:
Configuration = já explicado acima
Authentication = caso queira com algum método de autenticação (ver documentacao)




Default policy = nesta opção que dizemos ao EFW o que queremos em relação ao controle, liberar, bloquear, aceitar horarios, entre outros recursos.
Content filter = aqui liberamos ou bloqueamos todos os sites que desejamos.
Antivirus = caso queira que alguma url não passe pelo antivirus (como valida pr, sintegra, entre outros aplicativos publicos)
Group policies = caso esteja usando a autenticação por grupo,

Bom, acho que é isso, não entrei a fundo pois acho que devemos bater um pouco a cabeça, mas caso queiram alguma ajuda basta postar no blog.

sexta-feira, 8 de janeiro de 2010

Script Shell - value too great for base

Olá, tive uma necessidade de efetuar um script e utilizar variáveis dia, mes e ano.


Porém, tudo funcionava corretamente, até que o usuário final (que utilizava o script) me reportou, "olha seu script não tá está funcionando, dá a seguinte mensagem "value too great for base".


Então pensei, que coisa, se tudo estava funcionando corretamente, como que pode parar derrepente!!!


Depois de "googlar" encontrei a solução já feita por alguns colegas do mundo do shell.




Todo numero que inicializa com 0 (zero) e shell entende como octal e dá a mensagem de erro "value too great for base". Exemplo: 01, 02, 03, 0N.


Então a correção aplicada foi:


Script Antigo:


#!/bin/bash
#variaveis

dia=`date +%d`
mes=`date +%m`
ano=`date +%Y`


calculo=$(($dia+$mes))


echo $calculo





Script Atual:


#!/bin/bash
#variaveis

dia=`date +%d | sed s/^0//`
mes=`date +%m | sed s/^0//`
ano=`date +%Y`


calculo=$(($dia+$mes))


echo $calculo


Solução: aplicar o filtro `sed s/^0//`, onde tudo que iniciar com 0 (^0) vai ser trocado por "" (vazio).


Conclusão: Shell realmente não se aprende na escola.


Dúvidas estou a disposição.