dedao
(usa Slackware)
Enviado em 11/07/2006 - 13:02h
ola, estou tentando utilizar o cron, e tenho as seguintes dúvidas abaixo:
1 - Se eu inserir um script d backup dentro do cron.daily, eu preciso tambem especificar esse script dentro do crontab do root ?
2 - Se eu já especifico no meu script de backup que o backup deve ser feito em determinado dia e hora, eu preciso tambem especificar no cron o dia e hora ?
3 - O cron do usuario comun, fica em qual diretorio ?...eu preciso estar como root para edita-lo ?
4 - Tem como eu fazer do proprio cron veriricar se o script esta agendado ou não ?
5 - Caso o script não esteja agendado no cron, tem como o proprio cron agenda-lo ?.....
Abaixo vou colocar o meu script d backup caso alguem tenha alguma duvida.
#! /bin/sh
DATA_DO_BACKUP=`date +%d-%m-%Y` #Data do backup.
NOME_DO_SERVIDOR=`hostname -a` #Nome da maquina, sem o dominio
NOMEFIXO="bkp_home" #A parte fixa do nome do pacote
DIRETORIO="/backup" #Onde o arquivo tar sera armazenado
TAR="/bin/tar" #O binario que iremos utilizar
OPCOES1="--exclude "*.ant"" #Exclui os arquivos com final ".ant"
OPCOES2="--exclude "*lixo*"" #Exclui os arquivos com a string "lixo"
OPCOES3="-zcvf" #Opcoes para a gerar e compactar
ARQ_CRON="/etc/cron.daily/bkp.sh" #Arquivo da agenda do sistema
NOME_SCRIPT="/usr/bin/bkp.sh" #Caminho absoluto do script de backup
USER="root" #Usuario que rodara o script na cron
AGENDA="00 22 * * 1-6" #Data/hora na cron para rodar o script
#(cinco campos separados por um espaco)
LINHA=$AGENDA" "$USER" "$NOME_SCRIPT #Linha que sera incluida na cron
###################################################################
# Vamos iniciar.
# Limpamos a tela.
clear
#Vamos para o diretorio onde o pacote gerado ficara
cd $DIRETORIO
echo "Iniciando a geracao do pacote tar ...."; sleep 1
$TAR $OPCOES1 $OPCOES2 $OPCOES3 "$NOMEFIXO"_"$NOME_DO_SERVIDOR"_"$DATA_DO_BACKUP".tgz /home
# Testa o codigo da saida (se o comando foi feliz)
if [ $DIRETORIO -ne 0 ]; then
echo "Alguma coisa saiu errada ...."
echo ""
echo "Contate o administrador do sistema.";sleep 1
exit 1
fi
echo "Ufa, terminei :)"
echo ""
echo " O arquivo gerado encontra-se no diretorio $DIRETORIO"
# Verifica se este script esta ativo na crontab do sistema
cat $ARQ_CRON |grep $NOME_SCRIPT |grep -v "#" >/dev/null
if [ $NOME_SCRIPT -ne 0 ]; then
echo "Este script nao esta ativo na agenda do sistema"
echo "Vou inclui-lo para voce ..."; sleep 1
echo "$LINHA">>$ARQ_CRON
fi
exit 0
obrigado pela atenção...[]s