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
medan slinga inne medan loop panknil Shell-programmering och Skript 0 01-07-2008 12:49
För loop xramm HP-UX 3 10-10-2007 03:20
Även Loop hemangjani Shell-programmering och Skript 2 11-02-2006 11:01
För loop munnabhai1 Shell-programmering och Skript 3 04-06-2006 03:30
hur man kan få liknande funktion i medan loop eller slinga trynew Shell-programmering och Skript 3 06-17-2002 12:09

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 03-17-2008
rsullivan rsullivan is offline
Registered User
  
 

Join Date: mars 2008
Inlägg: 1
sh loop Behöver du hjälp

Hej,

Jag har följande skript som gör en säkerhetskopia via cpio till en NFS mount. Problemet är att jag bara verkar vara att bli root. Jag är inte säker på vad jag gör fel men det fungerar inte. Nedan följer hela skriptet. Jag har lyft fram områden där jag tror att jag har ett problem eller åtminstone är relevant, tror jag.

#! / bin / sh
#
# Set konfiguration variabler
#
NFSMOUNT \u003d '/ mnt /nfs"
BACKUP_LOG \u003d "/ usr / local / backup_logs"
EXCLUDE_FS \u003d '/ mnt /nfs"
HARDWARE_LOG \u003d '/ var / adm / messages "

export NFSMOUNT BACKUP_LOG EXCLUDE_FS HARDWARE_LOG

# Få dagen i MMDDÅÅ format
YMD \u003d "datum +% m% d% Y"

om [! -d $ (BACKUP_LOG)-o! -w $ (BACKUP_LOG)]; sedan
echo "$ (BACKUP_LOG) finns inte eller kan inte skriva"
exit 1
fi

echo "# # # Backup börjar på" dagen ""
# LOG_START är antalet linjer i vår hårdvara log
# När säkerhetskopian började. Vi ber inte om något
# Som inträffade före nu.
LOG_START \u003d "wc-l <$ (HARDWARE_LOG)`
# Strip ledande och blanksteg

LOG_START \u003d `expr $ (LOG_START)`

BACKUPTYPE \u003d "cpio"

# Få listan av Unix filsystem för att säkerhetskopiera
MOUNTEDSYSTEMS \u003d `df-F UFS | cut-d ''-f1 | sortera"

# Ta bort uteslutas filsystem från listan
för FS $ MOUNTEDSYSTEMS
göra
case "$ (EXCLUDE_FS)" i
# Om det uteslutas göra ingenting
* "$ (FS) "*);;
# Lägg till inresa till listan
*) Case "$ (filsystem)" i
# Listan är tom så detta är den första posten
'') Filsystem \u003d "$ (FS)";
# Listan innehåller poster så append till lista
*) Filsystem \u003d "$ (filsystem) $ (FS)";
ESAC;
ESAC
gjord

cd /
Om [ "$ BACKUPTYPE" \u003d "dumpa"]; sedan
# Backup använder dumpa
för FS i $ (filsystem)
göra
echo "Dumping $ (FS) $ (NFSMOUNT)" | \
tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (YMD)
/ usr / sbin / ufsdump 0fu $ (NFSMOUNT) $ (FS) 2> & 1 | \
# Vi endast med de två sista raderna i produktionen
# för att avgöra om detta var ett framgångsrikt dumpa
tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (YMD) | tail -3

# Räkna dumpa av filsystemet
FS_COUNT \u003d `expr $ (FS_COUNT) + 1"
gjord
annan

# Säkerhetskopia med cpio
för FS i $ (filsystem)
göra
echo "Skriva cpio arkiv med $ (FS) till $ (NFSMOUNT)" | \
tee-a $ (BACKUP_LOG) / bu.cpio. $ (YMD). fela \
>> $ (BACKUP_LOG) / bu.cpio. $ (YMD)

# Resultatet hittar alltid kommer att vara i förhållande till roten
hitta. $ (FS)-print-xdev | \

# Använd sed förändras ". /" tillbaka till "/" så Solaris cpio inte bark
sed -e 's / ^ \. \ / $ / \ / /' | \
cpio-OC-O $ (NFSMOUNT) / "värdnamn." $ (YMD) \
2>> $ (BACKUP_LOG) / bu.cpio. $ (YMD). Fela \
1>> $ (BACKUP_LOG) / bu.cpio. $ (YMD)

# Räkna cpio arkiv med filsystemet
FS_COUNT \u003d `expr $ (FS_COUNT) + 1"
gjord

cat $ (BACKUP_LOG) / bu.cpio. $ (YMD). fela
fi

# Display filsystem som var bara backas upp
echo "# # # För närvarande monterade filsystem:"
df-k $ (filsystem)
echo "###"

LOG_END \u003d "wc-l <$ (HARDWARE_LOG)`
# Band ledande och blanksteg
LOG_END \u003d `expr $ (LOG_END)`
Om [ "$ (LOG_BEGIN)"-ne "$ (LOG_END)"]; sedan
# Rapportera fel i loggen under backup
# Lägga till ytterligare grep linjer för att undanröja vanliga meddelanden visas i
# System logga script
echo "# # # System loggar som genereras under backup:"
cat $ (HARDWARE_LOG) | \
sed -e "1, $ (LOG_START) d" | \
grep-v "koppla av" | \
grep v "vägrade anslutningen från" | \
nawk '(print substr ($ 0,1,78)); \
Längd> 78 (print "" substr ($ 0,79)) '

echo "###"
fi
# Ta bort gamla loggfiler
Om [ "$ (BACKUPTYPE)" \u003d "cpio"]; sedan
cd $ (BACKUP_LOG)
hitta. -mtime 14-följ-exec rm () \;
ls-lt $ (BACKUP_LOG) / *
echo
fi

echo "Backup Färdiga på" "dag"
  #2 (permalänk)  
Old 03-18-2008
eran
Gästens
  
 

Inlägg: n / a
Bitar: 0 [Banking]
Vilka är symtoms? Det är lite svårt att gissa när du tänker fel genom att bara titta på koden.

Jag lade märke till ett litet problem här:


Kod:
case " ${EXCLUDE_FS} " in
# If its excluded do nothing
*" ${FS} "*);;

Du är som kräver EXCLUDE_FS ha utrymmen på båda sidor för att den skall stämma, men du verkar inte ha de utrymmen där uppe var du tilldela EXCLUDE_FS. Antingen expandera "fall" kod för att hantera matcher i början, slutet, och ensam, eller lägga till dessa utrymmen till uppdraget. (Den senare är lättare, men mer sannolikt att gå obemärkt förbi någon som snabbt uppdaterar utesluta lista senare.)

Fallet där du uppdaterar filsystem verkar onödigt komplicerat. Lägga till ett mellanslag i början av listan om det är tomt synes harmlösa, att döma av vad du gör med den senare i koden.

Me, jag skulle vända EXCLUDE_FS i ett vanligt uttryck, och filtrera utdata från df genom egrep och bli av med att hela fläcken av koden ändå.

Vad är meningen att exportera alla dessa variabler? Du är inte åberopa subcommands som behöver dem, är du?

Du verkar inte ett bindestreck framför alternativet här:


Kod:
grep v "refused connection from " | \

Kan inte se vad som är fel med cpio sidan, ledsen.

Proper indenteringen skulle förmodligen bidra lite här också ...
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 02:11.


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