The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
cron? automatizar um script hassanj UNIX para Dummies Perguntas & Respostas 8 12-22-2007 09:29
É possível ter mais de um Cron em shell script? Yamini Thoppen AIX 4 12-17-2007 03:23
Cron job para Perl homem UNIX & avançada para usuários experientes 3 07-26-2007 02:20
Pode executar o script manualmente, mas não através Cron? MadHatter Programação Shell Script e 4 10-19-2005 11:08
Cron script Q doublek321 Programação Shell Script e 2 07-06-2004 10:35

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-04-2008
richo rei richo king is offline
Usuário
  
 

Join Date: Mar 2008
Posts: 4
Ajuda com script - executado pelo cron

Olá,

Eu tenho um script que é executado a cada minuto para processar arquivos recebidos entregue externamente via SFTP em um diretório. Basicamente o script funciona e processa os arquivos no entanto eu recebo um erro quando é emitido um novo arquivo para o diretório.

Por favor, veja o meu script abaixo. Um novo arquivo é entregue todos os dias por SFTP de uma fonte externa, que o script processos para a convenção de nomenclatura correta, e é então importado para nosso banco de dados usando curl. Recebemos um novo ficheiro de 06:05 todos os dias e eu recebi uma mensagem de erro cron entregue a minha caixa de mensagens todas as manhãs. No entanto, em seguida, se eu ir e mudar o script e então testá-lo utilizando o mesmo arquivo com cron irá processar corretamente. No entanto, quando eu entrar na parte da manhã eu vou achar que ele não tenha mais uma vez - muito frustrante!

Não tenho idéia porque isso é! Se alguém pode sugerir alguma coisa que possa resolver por favor me avise. Tenho também incluiu uma cópia da mensagem de erro eu recebo do Cron.

#! / bin / bash
TRANSDATA \u003d / home / tsbftp / transaction_data
TRABALHO \u003d / home / tsbftp / trabalho
FILES \u003d $ (ls $ TRANSDATA)
IMPORTAÇÃO \u003d / home/arch3ftp/dfn-dev.arch3systems.com/html/import
for file in $ FILES
fazer

# mudar de proprietário do arquivo a raiz - alterar permissões de root para acesso total
echo "$ file"> / tmp / formatfile.nfo
chown root $ TRANSDATA / "$ file"
chmod 777 $ TRANSDATA / "$ file"

# Retirar o número da conta e colocar em uma variável
AN \u003d $ (grep ^ 00 $ TRANSDATA / "$ file" | cut-c 3-18)

# definir data e hora atuais para a convenção nome do arquivo e colocar em uma variável
CUDA $ \u003d (data +% Y% m% d% k% M% S)
# Renomeie Atual Arquivo com formato requerido
mv $ TRANSDATA / "$ file" $ TRANSDATA / $ UM "_" $ CUDA.a3i
sleep 2
mv $ TRANSDATA / $ UM "_" $ $ CUDA.a3i TRABALHO
echo $? >> / Tmp / formatfile.nfo

cp $ TRABALHO / AN $ "_" $ $ CUDA.a3i IMPORTAÇÃO
curl-s http://dfn-dev.arch3systems.com/batches/import/ $ AN / $ CUDA
feito
exit 0

Como você pode ver que adicionou no sono etc 2 de tentar reparar o erro que recebo e tentou mudar o nome do arquivo no local, em seguida, que se deslocam etc Por favor, veja abaixo da mensagem de erro Cron.

/ etc / cron.d / format_file.sh:

mv: quando se deslocam de vários ficheiros, o último argumento deve ser um diretório Tente `mv - help 'para mais informações.
cp: cannot stat `/ home/tsbftp/working/1539590548547000_20080305 ': Nenhum tal lima ou diretório

Eu sempre obter o mv erro, porém se eu alterar o script para fazer a mudar o nome de uma forma diferente, ela irá funcionar quando eu testá-lo com o cron! No entanto suficiente certeza ele irá falhar quando um novo arquivo chega no dia seguinte!
  #2 (permalink)  
Old 03-05-2008
RTM's Avatar
RTM RTM is offline Forum Advisor  
Hog Hunter
  
 

Join Date: Apr 2002
Localização: Na minha moto
Posts: 3.039
Citação:
Eu sempre obter o mv erro, porém se eu alterar o script para fazer a mudar o nome de uma forma diferente, ela irá funcionar quando eu testá-lo com o cron! No entanto suficiente certeza ele irá falhar quando um novo arquivo chega no dia seguinte!
Porque quando você testar, sftp está concluído e nada está bloqueando o arquivo deixando você renomear / mover sem problemas.

Você provavelmente precisará alterar a forma como o sftp obras - quer dizer, mande um segundo arquivo (ou um arquivo ou um byte 0 com o checksum do arquivo em que o primeiro), verificar que o segundo arquivo está lá (devido à sua pequena dimensão, você pode dormir 2 segundos e não tem nenhum problema a sua abertura para agarrar o checksum info).

Etapas:
1. sftp enviar arquivo original
2. Seu cron job arranca - sftp ainda pode estar enviando arquivo
3. Cron job 2. Esperas para arquivo.
4. sftp finaliza enviando primeiro arquivo.
5. sftp envia segundo arquivo.
6. cron job encontra segundo processo - "sabe" que é seguro manipular primeiro arquivo
7. Se você decidir enviar checksum info - verificar informações enviadas versus o que mostra como o sistema checksum - deve ser o mesmo.

Se isso não pode ser feito (você não controlar o que está enviando sftp), você pode listar o arquivo original - espere até que ele pára de ficar maior. Ou, procure o sftp processo, aguarde até que ela se foi. Mas o checksum é uma ótima maneira de segurar o seu arquivo é o mesmo que o original.
  #3 (permalink)  
Old 03-05-2008
richo rei richo king is offline
Usuário
  
 

Join Date: Mar 2008
Posts: 4
obrigado pela resposta ur dizendo o que eu entendo, mas certamente seria eventualy processo em que o arquivo está completo? como ele é executado a cada minuto. O arquivo não irá processo ainda se eu executá-lo manualmente no novo arquivo que veio no mesmo depois de esperar um par de minutos. É só depois de eu mudar um pouco o script irá processar o arquivo corectly até que um novo arquivo aparece próximo dia.

Vou tentar o que u têm sugerido como já esgotou de idéias. Obrigado novamente.

Richo
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:14.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0