The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
cron? l'automatisation d'un script hassanj UNIX pour les nuls Questions et réponses 8 12-22-2007 09:29 AM
Est-il possible d'avoir plus d'un script shell dans Cron? Yamini Thoppen AIX 4 12-17-2007 03:23 AM
Cron pour script Perl homme UNIX for Advanced & Expert Users 3 07-26-2007 01:20 PM
Puis exécuter le script manuellement, mais pas par le biais de Cron? MadHatter De programmation et de script Shell 4 10-19-2005 10:08 AM
Script Cron Q doublek321 De programmation et de script Shell 2 07-06-2004 09:35 PM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 03-04-2008
richo roi richo king is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 4
Aide à l'écriture - géré par cron

Bonjour,

J'ai un script shell qui exécute toutes les minutes pour traiter les fichiers envoyés via SFTP externe dans un répertoire. Fondamentalement, le script fonctionne et traite les fichiers mais j'ai une erreur quand un nouveau fichier est livré dans le répertoire.

S'il vous plaît voir mon script ci-dessous. Un nouveau dossier est présenté tous les jours via SFTP à partir d'une source externe qui le script dans le processus de convention de nommage, et il est ensuite importé dans notre base de données en utilisant curl. Nous obtenons un nouveau fichier, à 06h05 tous les jours et je reçois un message d'erreur cron livré à ma boîte aux lettres tous les matins. Toutefois, si je puis aller et changer le script, puis le tester en utilisant le même fichier avec cron, il sera procédé correctement. Mais quand je rentre dans le matin, je trouve qu'il n'a pas encore - très frustrant!

Je n'ai aucune idée pourquoi il en est! Si quelqu'un peut suggérer quelque chose que mai remédier s'il vous plaît faites le moi savoir. J'ai également joint une copie du message d'erreur que je reçois de Cron.

#! / bin / bash
TRANSDATA \u003d / home / tsbftp / transaction_data
TRAVAIL \u003d / home / tsbftp de travail /
FILES \u003d $ (ls $ TRANSDATA)
IMPORT \u003d / home/arch3ftp/dfn-dev.arch3systems.com/html/import
pour le fichier dans $ FILES
faire

# changer le propriétaire du fichier à la racine - de modifier les permissions root, pour un accès complet
echo "$ file"> / tmp / formatfile.nfo
chown root TRANSDATA $ / "$ file"
chmod 777 $ TRANSDATA / "$ file"

# Strip sur le numéro de compte et la place dans une variable
AN \u003d $ (grep ^ 00 $ TRANSDATA / "$ file" | cut-c 3-18)

# set date et l'heure de nom de fichier et des congrès de place dans une variable
CUDA \u003d $ (date +% Y% m% d% k% M% S)
# Renommer dossier courant Obligatoire Format
mv $ TRANSDATA / "$ file" $ TRANSDATA / $ UN "_" $ CUDA.a3i
sleep 2
mv $ TRANSDATA / $ UN "_" $ $ CUDA.a3i TRAVAIL
echo $? >> / Tmp / formatfile.nfo

cp $ TRAVAIL / $ UN "_" $ $ CUDA.a3i IMPORT
curl-s $ http://dfn-dev.arch3systems.com/batches/import/ AN / $ CUDA
fait
exit 0

Comme vous pouvez le voir que j'ai ajouté dans le sommeil 2 etc pour tenter de remédier à l'erreur et je vous essayé de changer le dossier en place puis le déplacement etc S'il vous plaît voir le message d'erreur ci-dessous de Cron.

/ etc / cron.d / format_file.sh:

mv: lors du déplacement de plusieurs fichiers, le dernier argument doit être un répertoire Essayez `mv - help 'pour plus d'informations.
cp: ne peut stat `/ home/tsbftp/working/1539590548547000_20080305 ': Aucun fichier ou répertoire

Je reçois toujours le mv erreur, mais si je changer le script pour faire le renommer une autre façon, il marche quand je fais un essai avec cron! Mais bien sûr elle ne réussira pas si un nouveau fichier est disponible dans les prochains jours!
  #2 (permalink)  
Old 03-05-2008
RTM's Avatar
RTM RTM is offline Forum Advisor  
Hog Hunter
  
 

Join Date: Apr 2002
Lieu: Sur ma moto
Messages: 3039
Citation:
Je reçois toujours le mv erreur, mais si je changer le script pour faire le renommer une autre façon, il marche quand je fais un essai avec cron! Mais bien sûr elle ne réussira pas si un nouveau fichier est disponible dans les prochains jours!
Parce que lorsque vous testez, le sftp est terminé et que rien ne bloque le fichier et vous le renommer / déplacer sans problème.

Vous avez probablement besoin de changer la manière dont les œuvres sftp - sens, veuillez envoyer un second fichier (un fichier de 0 octet ou avec le checksum du fichier dans le premier), il vérifie que le second fichier est là (à cause de sa petite taille, vous pouvez dormir 2 secondes et n'ont pas de problème d'ouverture pour récupérer les infos de contrôle).

Étapes:
1. sftp envoi du fichier d'origine
2. Votre tâche cron lance - sftp mai encore l'envoi de fichier
3. Cron job attend 2e fichier.
4. sftp vient de lancer le premier fichier.
5. sftp envoie second fichier.
6. cron trouve second fichier - «sait» qu'il est sécuritaire de manipuler premier fichier
7. Si vous décidez d'envoyer des infos de contrôle - vérifier info envoyée par ce qui montre que votre système de contrôle - doit être la même.

Si cela ne peut être effectuée (vous ne contrôlez pas ce qui est sftp envoi), vous pouvez lister le fichier d'origine - d'attendre jusqu'à ce qu'il cesse de grossir. Ou, recherchez le processus sftp, attendre qu'il soit disparu. Mais le contrôle est un excellent moyen d'assurer que votre dossier est le même que l'original.
  #3 (permalink)  
Old 03-05-2008
richo roi richo king is offline
Registered User
  
 

Join Date: Mar 2008
Messages: 4
merci pour la réponse, je comprends ce que ur dire, mais sûrement, il serait éventuellement processus lorsque le dossier est complet? il fonctionne comme toutes les minutes. Le fichier ne sera pas, même si je fais tourner manuellement sur le nouveau fichier qui est venu dans le même après avoir attendu quelques minutes. C'est seulement après que je modifier le script légèrement le fichier corectly processus jusqu'à ce qu'un nouveau fichier apparaît lendemain.

Je vais essayer ce que l'ont suggéré et comme je l'ai déjà à court d'idées. Merci encore.

Richo
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 12:54 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0