The UNIX and Linux Forums  

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
Fichier journal de ne pas avoir mis à jour KornFire High Level Programming 4 10-21-2008 04:12 AM
Trouver la dernière mise à jour de fichiers callimaco0082 UNIX pour les nuls Questions et réponses 4 09-04-2008 11:17 AM
consulter le dernier fichier mis à jour asadlone De programmation et de script Shell 3 05-08-2008 05:16 AM
/etc / utmp file n'est pas mis à jour avec le démarrage de détails jyoti_mil UNIX for Advanced & Expert Users 1 06-11-2007 11:41 AM
Création d'un fichier mis à jour dbfree De programmation et de script Shell 4 09-30-2005 04:23 AM

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 11-06-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 87
Si le fichier a été mis à jour, faire quelque chose?

Mettez tout cela ensemble d'ailleurs sur le forum, juste modifié et ajouté de la boucle.



Code:
#!/bin/ksh

localFile=$1
remoteFile=$2

#source FTP parameters
. .ftp_put.cfg

mylog=ftp_session.log
echo "$(date "+%H:%M:%S") - Attempt to FTP $1 to $2" > $mylog
machine="server1 server2 server3 server4"
count=0
# do the FTP put

for machine in $machine
do
ftp -i -n <<EOF >> $mylog
open $machine
user $FTP_LOGIN $FTP_PASSWORD
put $localFile $remoteFile
ls $remoteFile
quit
EOF
count=`expr $count + 1`
done

Ce script est appelé par un autre script par le biais d'une tâche cron toutes les 5 minutes:


Code:
/tmp/abcQATest/abcMoveTest.sh archive.tar /tmp/archive.tar

De toute façon, je me demandais si il n'y a aucune façon de la rendre un peu mieux. Actuellement, ce tout simplement que le ftp fichier statique toutes les 5 minutes, indépendamment de si le fichier a été mis à jour ou non. La manière dont il travaille maintenant est de savoir si quelqu'un a besoin de faire une mise à jour pour les 4 du serveur FTP que ce script à la, ils ont tout simplement abandonner leurs archives fichier (nommé archive.tar) à la / tmp / abcQATest répertoire, puis dans les 5 minutes, le crontab s'exécute et un serveur ftp de leur dossier à 1-4 au serveur / tmp / archive.tar emplacement.

Est-il possible de configurer cela si elle ne le ftp le fichier si il a été mis à jour depuis la dernière fois que le ftp était? De cette façon, si elle est mise à jour, il se FTP'd de fois, mais alors on ne peut pas faire FTP'd de nouveau à moins que le fichier a été changé?

Ensuite, sur les 4 autres serveurs, j'ai aussi besoin de quelque chose comme ceci:


Code:
If /tmp/archive.tar has been updated

do something
.
.
else
endif

Le faire quelque chose est juste un couple se déplace rapidement, des extraits et supprime, c'est pas grave. If It's Je suis perplexe sur.
  #2 (permalink)  
Old 11-06-2008
Sumeet sumeet is offline
Registered User
  
 

Join Date: Nov 2006
Posts: 33
cat fichier1> fichier2

disons fichier1 est mise à jour.

diff fichier1 fichier2> fichier3.

if [-s fichier3]
faire quelque chose. (dans votre cas, FTP)
fi

merci
Sumeet
  #3 (permalink)  
Old 11-06-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 87
Scénario:


Code:
diff archive.tar backup.tar > tmp
if [ -s tmp ]; then
/tmp/abcQATest/abcMoveTest.sh archive.tar /tmp/archive.tar
echo "Files different, transferring files"
else
echo "Files the same, exiting";
fi

Résultats:


Code:
/tmp/abcQATest>./autoMoveScript.sh
Binary files archive.tar and backup.tar differ
Files the same, exiting
/tmp/abcQATest>

Les fichiers binaires ne diffèrent, mais pour une raison quelconque, il va toujours à la deuxième partie de l'if.

Dernière édition par cbo0485; au 11.06.2008 05:17 PM..
  #4 (permalink)  
Old 11-06-2008
BubbaJoe's Avatar
BubbaJoe BubbaJoe is offline
Registered User
  
 

Date d'inscription: octobre 2008
Localisation: St Louis
Messages: 153
Je crois que vous devez utiliser le paramètre-a sur la commande diff pour comparer les fichiers binaires.
  #5 (permalink)  
Old 11-07-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 87
Citation:
Posté par BubbaJoe View Post
Je crois que vous devez utiliser le paramètre-a sur la commande diff pour comparer les fichiers binaires.
Il a travaillé, mais maintenant, même si archive.tar et backup.tar sont les mêmes, dit-il de leurs différents et il tourne le premier bloc, au lieu de se faire l'écho qui stipule que "les fichiers de la même, en sortant";


Code:
diff archive.tar backup.tar > tmp
if [ -a tmp ]; then
/tmp/abcQATest/abcMoveTest.sh archive.tar /tmp/archive.tar
echo "Files different, transferring files"
cat archive.tar > backup.tar
else
echo "Files the same, exiting";
fi

  #6 (permalink)  
Old 11-07-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: Mar 2008
Posts: 87
Voici mon code final j'ai eu à travailler.



Code:
cmp archive.tar backup.tar > /dev/null
if [[ $? -eq 1 ]]; then
/tmp/abcQATest/abcMoveTest.sh archive.tar /tmp/archive.tar
echo "Files different, transferring files"
cat archive.tar > backup.tar
else
echo "Files the same, exiting";
fi

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 10:09 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