The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Loggfil inte få uppdaterad KornFire High Level Programming 4 10-21-2008 04:12
Sök senast fil callimaco0082 UNIX for Dummies Frågor & Svar 4 09-04-2008 11:17
checkar ut senast uppdaterad fil asadlone Shell-programmering och Skript 3 05-08-2008 05:16
/etc / utmp filen inte få uppdaterad med starta upp information jyoti_mil UNIX för avancerade & Expertanvändare 1 06-11-2007 11:41
Skapa en uppdaterad fil dbfree Shell-programmering och Skript 4 09-30-2005 04:23

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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 11-06-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 87
Om filen har uppdaterats, göra något?

Lägg detta tillsammans från någon annanstans på forum, bara ändrade det och lagt slingan.


Kod:
#!/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
Detta skript får heta något annat skript genom ett cron-jobb var 5 minuter:

Kod:
/tmp/abcQATest/abcMoveTest.sh archive.tar /tmp/archive.tar
Hur som helst, jag undrar om det fanns något sätt att göra det lite bättre. För närvarande är det bara ftp är att statisk fil varje 5 minuter, oavsett om filen har uppdaterats eller inte. Så det fungerar nu är om någon behöver göra en uppdatering av 4 serverns att detta script FTP är att de helt enkelt släppa sina arkivfil (angiven archive.tar) till / tmp / abcQATest / katalog, och inom 5 minuter crontab kör och ftp är deras fil till servern 1-4 i / tmp / archive.tar plats.

Finns det något sätt att ställa upp så det bara ftp's filen om det har ändrats sedan den senaste gången ftp sprang? På så sätt, om det blir uppdatering, det blir s FTP'd en gång, men då det inte blir FTP'd igen om inte den filen har förändrats?

Sedan på den andra 4-servrar, jag behöver också ungefär så här:

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

do something
.
.
else
endif
De gör något delen är bara ett par snabba drag, utdrag och tar bort, det är ingen stor sak. It's Om uttalande jag stumped på.
  #2 (permalänk)  
Old 11-06-2008
sumeet sumeet is offline
Registered User
  
 

Join Date: Nov 2006
Inlägg: 33
cat fil1> fil2

kan säga fil1 blir uppdateras.

diff fil1 fil2> fil3.

Om [-s fil3]
göra något. (i ditt fall FTP)
fi

tack
Sumeet
  #3 (permalänk)  
Old 11-06-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 87
Manus:

Kod:
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
Resultat:

Kod:
/tmp/abcQATest>./autoMoveScript.sh
Binary files archive.tar and backup.tar differ
Files the same, exiting
/tmp/abcQATest>
Den binära filer gör varierar, men sedan av någon anledning det alltid går till den andra delen av om uttalande.

Senast redigerad av cbo0485; 11-06-2008 vid 05:17..
  #4 (permalänk)  
Old 11-06-2008
BubbaJoe's Avatar
BubbaJoe BubbaJoe is offline
Registered User
  
 

Join Date: oktober 2008
Ort: St Louis
Inlägg: 153
Jag tror du måste använda en parameter jämförelsefönstren kommando för att jämföra binärfilerna.
  #5 (permalänk)  
Old 11-07-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 87
Citat:
Ursprungligen postat av BubbaJoe View Post
Jag tror du måste använda en parameter jämförelsefönstren kommando för att jämföra binärfilerna.
Det fungerade, men nu även om archive.tar och backup.tar är desamma, det säger deras olika och det går det första blocket, i stället för att bara göra echo där det står "Filer samma, exiting";

Kod:
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 (permalänk)  
Old 11-07-2008
cbo0485 cbo0485 is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 87
Här är min sista nummer fick jag arbeta.


Kod:
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

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 10:45.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0