antoniormjr
(usa Suse)
Enviado em 17/02/2014 - 14:07h
Ola Pessoal, estou com a seguinte (solução problema) com o script abaixo. Na realidade ele faz a seguinte rotina.
1 - Tenho um servidor em Ruindows que le o conteudo numero de uns arquivos e a partir desses numeros ele começa a processar as linhas do banco (sistema de RH)
2 - Tenho um servidor em Linux que le o conteudo desses arquivos e atribui um calculo matematico (subtração), evitando assim a edição manual dos arquivos.
3 - Como são muitos arquivos fiz uma lista e depois vou lendo um a um
4 - No final tenho que atualizar o arquivo lido com o novo calculo
ex. Aqruivo A possui um valor de 100
minha variavel valor possui 10
minha variavel resultado vai receber valor do arquivo A - valor
apos ira atualizar o arquivo A.
#!/bin/bash
DATA=`date +%d%m%y`
HORA=`date +%H%M%S`
JOB="J036_Ajusta_Contador"
LOG="/root/scripts/logs/$JOB.log"
DIR_RAIZ='/root/scripts'
DIR_ORIGEM='/servidor/logs'
EMAIL='xxx@xxx.xxx.xx'
VALOR=10
# Verificando se o Job esta em Execucao
cd $DIR_RAIZ
if [ -e $JOB.txt ]; then
exit 0
else
echo 123456 >$JOB.txt
fi
IFS="
"
cd $DIR_ORIGEM
rm listansr.conf
#lista o titulo de todos os arquivos
ls *.nsr >> listansr.conf
#Inicio do for coletando o conteudo de arquivo a arquivo.
for entry in $( cat ./listansr.conf)
do
ARQUIVO=`echo $entry | awk '{print $1}' `
CONTADOR=`cat $ARQUIVO`
if [ $CONTADOR -ne 0 ]; then
resultado=echo $(($CONTADOR + $VALOR))
resultado > $ARQUIVO
else
echo 'contador invalido'
fi
done
# Deleta o Arquivo que trava a execucao duplicada do job
cd $DIR_RAIZ
rm $JOB.txt