sobre crontab

1. sobre crontab

Tiago
bison

(usa Debian)

Enviado em 03/04/2008 - 21:16h

Bom, gostaria de saber se existe alguma forma de eu programar uma ação sem usar o crontab?

Bom, eu administro um hoster dedicado, e não to conseguindo usar o comando crontab, sempre que tento da command not fond....

Alguem sabe como posso corrigir, ou pelomenos outra forma de automatizar sem crontab


  


2. alternativas

Paulo Sergio Travaglia
pstglia

(usa Slackware)

Enviado em 03/04/2008 - 22:34h

Se a ação que você quer executar não precisa ser periódica, você pode usar o comando at, que permite a você agendar um comando para ser executado uma vez em uma hora específica.

Caso seja algo periódico e a cron não estar disponível, você pode montar uma shell e deixa-la em background (com nohup) para fazer esse trabalho. Um modelo abaixo:

#!/bin/bash

while [ 1 ]
do

# Obtem a hora atual
HORA_ATUAL=`date "+%H%M"`
HORA=`echo $HORA_ATUAL | cut -c1-2`
MINUTO=`echo $HORA_ATUAL | cut -c3-4`

# Verifica se é 02:30 e roda o comando
#ldconfig
if [ $HORA -eq 02 ] && [ $MINUTO -eq 30 ]
then
/sbin/ldconfig &
fi

sleep 60
done

Espero ter ajudado


3. eu posso usar assim?

Tiago
bison

(usa Debian)

Enviado em 04/04/2008 - 19:39h

blz mais ai eu uso como?
desta forma esta correto! Pretendo fazer o backup as 5 da madrugada!

#!/bin/bash

while [ 1 ]
do

# Obtem a hora atual
HORA_ATUAL=`date "+%H%M"`
HORA=`echo $HORA_ATUAL | cut -c1-2`
#ldconfig
if [ $HORA -eq 05 ]
then
DATA=`/bin/date +%Y%m%d`
NOME="/var/bin/bd/$DATA"
mysqldump -hlocalhost -uUSUARIO -pSENHA BANCO | gzip > $NOME.sql.gz
fi

sleep 60
done



desculpem sou muito novato em linux!


4. Re: sobre crontab

Paulo Sergio Travaglia
pstglia

(usa Slackware)

Enviado em 05/04/2008 - 12:19h

Olá,

Na alteração que você fez, Você está verificando somente se a variável HORA é igual a 5. Você deve testar também se o MINUTO é zero no if. (Vide post anterior) Caso contrário entre as 05:00 e 05:59 o if sempre será válido.

Para deixar rodando você pode fazer o seguinte:

1) Salve o script em um arquivo (backup_db.sh, por exemplo)

2) De permissões de execução:
chmod u+x backup_db.sh

3) E deixe ele rodando em segundo plano conforme abaixo:
nohup ./backup_db.sh &

O comando nohup faz com que o processo seja atrelado ao processo INIT, caso a sessão que o disparou seja encerrada.

Lembre-se que esse procedimento é uma "gambiarra". O ideal seria utilizar a crontab ou similar.

O binário do crontab não está em /usr/bin? Normalmente é lá que ele fica

Sds,
pstglia






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts