The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Logfil ikke får opdateret KornFire Højtstående Programmering 4 10-21-2008 04:12 AM
Find sidst opdateret fil callimaco0082 UNIX for dummyer Spørgsmål & svar 4 09-04-2008 11:17 AM
kontant afregning seneste opdatering fil asadlone Shell Programmering og Scripting 3 05-08-2008 05:16 AM
/etc / utmp fil ikke bliver opdateret med boot op detaljer jyoti_mil UNIX for Advanced & Ekspertsøgning Brugere 1 06-11-2007 11:41 AM
Oprettelse af en opdateret fil dbfree Shell Programmering og Scripting 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 11-06-2008
cbo0485 cbo0485 is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 87
Hvis filen er blevet opdateret, skal du gøre noget?

Læg dette sammen fra et andet sted på fora, bare ændret den og tilføjet sløjfen.



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

Dette script bliver kaldt af en anden script gennem et cron job hvert 5. minut:


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

Anyways, jeg tænkte, om der var nogen måde at gøre det lidt bedre. Øjeblikket dette simpelthen ftp's at statisk fil hvert 5. minut, uanset hvis filen er blevet opdateret eller ej. Den måde det fungerer nu, er, hvis nogen er nødt til at gøre en opdatering til de 4 servers at dette script FTP's til de ganske enkelt dråbe deres arkivfil (opkaldt archive.tar) til / tmp / abcQATest / mappe, og derefter inden for 5 minutter crontab løber og ftp's deres filen på serveren 1-4 på / tmp / archive.tar placering.

Er der nogen måde at sætte det op så det kun ftp's filen, hvis den er blevet opdateret siden sidste gang de ftp løb? Denne måde, hvis den bliver opdateret, det får's FTP'd gang, men så skal det ikke får FTP'd igen medmindre filen er blevet ændret?

Så på den anden 4-servere, jeg har også brug for noget lignende dette:


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

do something
.
.
else
endif

De gøre noget del er lige et par hurtige skridt, ekstrakter og sletter, that's no big deal. It's Hvis erklæring jeg stumped om.
  #2 (permalink)  
Old 11-06-2008
sumeet sumeet is offline
Registreret Bruger
  
 

Join Date: Nov 2006
Stillinger: 33
cat file1> fil2

lad os sige file1 bliver opdateret.

diff file1 fil2> fil3.

hvis [-s fil3]
gøre noget. (i dit tilfælde FTP)
fi

tak
Sumeet
  #3 (permalink)  
Old 11-06-2008
cbo0485 cbo0485 is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 87
Script:


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

Resultater:


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

De binære filer gøre forskellige, men af en eller anden grund det altid går til den anden del af det, hvis erklæring.

Sidst redigeret af cbo0485; 11-06-2008 på 05:17 PM..
  #4 (permalink)  
Old 11-06-2008
BubbaJoe's Avatar
BubbaJoe BubbaJoe is offline
Registreret Bruger
  
 

Join Date: oktober 2008
Beliggenhed: St Louis
Stillinger: 153
Jeg tror du skal bruge en parameter på diff kommando at sammenligne binaries.
  #5 (permalink)  
Old 11-07-2008
cbo0485 cbo0485 is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 87
Citat:
Oprindeligt Indsendt af BubbaJoe View Post
Jeg tror du skal bruge en parameter på diff kommando at sammenligne binaries.
Det virkede, men nu også selvom archive.tar og backup.tar er de samme, der står deres forskellige, og det kører den første blok, i stedet for bare at gøre det ekko, som hedder "Files samme, exiting";


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
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 87
Her er min endelige kode Jeg fik arbejde.



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

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 09:52 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0