The UNIX and Linux Forums  

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
paus () problem IdleProc UNIX for Dummies Frågor & Svar 1 03-17-2009 06:21
Paus för svar från loggfilen gxdanh Shell-programmering och Skript 3 10-24-2008 12:52
Rsync-skript i cron från trampa på sig själv sunsysadm2003 Shell-programmering och Skript 3 04-30-2008 12:14
paus? var är du? 01000101 High Level Programming 3 05-15-2006 08:42
hur man kan pausa en process? daneensign UNIX for Dummies Frågor & Svar 1 02-14-2006 12:27

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 05-26-2009
droppedonjapan droppedonjapan is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 8
Script Pause Fram Rsync Is Done Överföra

Okej, jag har detta script som hämtar filer från ett fåtal platser, förädla dessa filer, skapar en zip-fil, är rsync det och sedan tar bort allt.

Problemet som jag har är att jag inte vet hur stor rsync'ed zip-filen kommer att bli. Just nu är jag med en sömn kommando innan jag tar bort alla filer och kataloger som skapats, men jag är obekväm med att lämna det så här. Allt det skulle ta skulle vara en stor fil som den behöver rsync och manuset skulle radera filen innan det är gjort överförs.

Så, finns det något sätt att låta skriptet kontrollera utvecklingen för rsync? Om inte, hur skulle jag gå tillväga för att göra något i denna riktning?
  #2 (permalänk)  
Old 05-26-2009
in2nix4life's Avatar
in2nix4life in2nix4life is offline
Registered User
  
 

Join Date: oktober 2007
Ort: East Coast
Inlägg: 58
Om detta är ett bash shell script kan du prova att "vänta"-kommando.

Se mer här -- Job styrkommandon

Hoppas den här hjälper.
  #3 (permalänk)  
Old 05-26-2009
jaysunn's Avatar
jaysunn jaysunn is offline
Registered User
  
 

Join Date: maj 2009
Inlägg: 22
Jag gillar att använda ett lås fil. På detta sätt kommer skriptet slingan till låsa filen är borta än re köra:
Kod:
#
# create name for lock file
#
lockDir="/root/lock_files"
lockFilePath="$lockDir/file.lock"
#
#
#
# Loop through servers until file is no longer exists
#  
while [ -e "$lockFilePath" ]
do

   exit
done
#
#
#
# create new lock file
#
touch $lockFilePath
#
#
#
# loop through servers and sync docroots and code
#
/usr/bin/rsync  --stats -e ssh -rlvtgoDz --delete  /dir/dir/dir/ root@server:/dir/dir/dir/ &
#
#
#
# Remove lock file........
#
rm -f $lockFilePath


Var noga med att ställa in SSH-nycklar. Detta körs på en Red Hat-system.

Lycka till
  #4 (permalänk)  
Old 05-28-2009
droppedonjapan droppedonjapan is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 8
Citat:
Ursprungligen postat av in2nix4life View Post
Om detta är ett bash shell script kan du prova att "vänta"-kommando.
Av någon anledning att vänta kommandot inte fungerar enligt de handlingar som du gav mig. Jag har försökt att bara göra det här ...


Kod:
rsync -urza -e "ssh -i rsync-key -l username -p xxxx" /filepath/filename.zip webserv:/filepath/

wait

Och det inte vänta alls.

Vad gäller lockfile, jag är inte säker på vad detta skript gör, exakt.


Kod:
lockDir="/root/lock_files"
lockFilePath="$lockDir/file.lock"

while [ -e "$lockFilePath" ]
do

   exit
done

touch $lockFilePath

/usr/bin/rsync  --stats -e ssh -rlvtgoDz --delete  /dir/dir/dir/ root@server:/dir/dir/dir/ &

rm -f $lockFilePath

Såvitt jag kan säga, börjar ut berättar om låset katalog och fil. Sedan säger ni om den låsta filen finns, om den gör det, avsluta sedan skriptet. Då om det inte är där, då du trycker på filen (och därigenom skapa en tom fil, om min "touch" kunskap är korrekt), och sedan börjar rsync i en bakgrund process. Efter det börjar göra rsync, tar bort det då låset filen.

Jag kunde se detta något att fungera om du gjort skriptet kalla sig före medan uttalande, men jag vet inte hur detta skulle förbättra min situation. Normalt mitt manus tar sedan bort filerna som rsync'ed, så även om jag ringde detta skript externt skulle rm kommandot gå igenom precis så snart detta manus färdigt, a la precis som rsync startar. Och jag behöver verkligen inte rsync flera filer, bara en.

Några andra idéer / förslag?

(Tack för vad jag har hittills, förresten. )

EDIT: Också, jag kör allt detta på en Red Hat-system. Glömde att ta med det tidigare.
  #5 (permalänk)  
Old 06-01-2009
df d.f. is offline
Registered User
  
 

Join Date: Nov 2006
Inlägg: 5
Om jag förstått det rätt, du letar efter ett sätt att se till att rsync slutför framgångsrikt innan vi går vidare till resten av ditt manus. bash skulle låta dig göra detta med "& & 'operatör (i detta fall rsync är Kommando1):


Kod:
command1 && command2

Från bash manualsidan, är "Kommando2 verkställas om, och endast om, Kommando1 returnerar ett Returvärdet noll."

Så, något du kanske kan använda är:


Kod:
rsync -options file.xx remotehost:/path/to/store && rm file.xx

Den Gotcha här är att rsync kan misslyckas ett par olika skäl och om det gör, skulle det andra kommandot inte köra.
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 03:46.


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