The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

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
mens loop inde mens loop panknil Shell Programmering og Scripting 0 01-07-2008 12:49 PM
For loop xramm HP-UX 3 10-10-2007 03:20 PM
Mens Loop hemangjani Shell Programmering og Scripting 2 11-02-2006 11:01 AM
for løkke munnabhai1 Shell Programmering og Scripting 3 04-06-2006 03:30 PM
hvordan du får den tilsvarende funktion i mens sløjfe eller løkke trynew Shell Programmering og Scripting 3 06-17-2002 12:09 PM

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 03-17-2008
rsullivan rsullivan is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 1
sh sløjfe du brug for hjælp

Hej,

Jeg har følgende script, der gør en sikkerhedskopi via cpio til en NFS mount. Problemet er, at jeg kun synes at være at få root. Jeg er ikke sikker på, hvad jeg gør forkert her, men det fungerer ikke. Følgende er hele script. Jeg har fremhævet de områder, hvor jeg tror jeg har et problem eller i det mindste er relevante, tror jeg.

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

eksport NFSMOUNT BACKUP_LOG EXCLUDE_FS HARDWARE_LOG

# Få dato i MMDDÅÅ format
MDY \u003d `dato +% m% d% y«

hvis [! -d $ (BACKUP_LOG)-o! -w $ (BACKUP_LOG)]; derefter
echo "$ (BACKUP_LOG) eksisterer ikke eller kan ikke skrive"
exit 1
fi

echo "# # # Backup begyndende ved` dato `"
# LOG_START er antallet af linjer i vores hardware log
# Når sikkerhedskopieringen begyndte. Vi er ikke med noget
# Der er indtrådt før nu.
LOG_START \u003d `wc-l <$ (HARDWARE_LOG)`
# Striben førende og efterfølgende mellemrum

LOG_START \u003d `expr $ (LOG_START)`

BACKUPTYPE \u003d "cpio"

# Få en liste med UNIX-filsystemer til at bakke op
MOUNTEDSYSTEMS \u003d `df-F UFS | cut-d ''-f1 | sortere«

# Fjern udelukket filsystemer fra liste
til FS i $ MOUNTEDSYSTEMS
gøre
case "$ (EXCLUDE_FS)" i
# Hvis sin udelukkes ikke gør noget
* "$ (FS) "*);;
# Tilføj adgang til listen
*) Case "$ (filsystemer)" i
# Listen er tom, så er dette den første indrejse
'') Filsystemer \u003d "$ (FS)";
# List indeholder poster så append til liste
*) Filsystemer \u003d "$ (filsystemer) $ (FS)";
ESAC;;
ESAC
gjort

cd /
hvis [ "$ BACKUPTYPE" \u003d "dump"]; derefter
# Backup bruger dump
til FS i $ (filsystemer)
gøre
echo "Dumping $ (FS) $ (NFSMOUNT)" | \
tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (MDY)
/ usr / sbin / ufsdump 0fu $ (NFSMOUNT) $ (FS) 2> & 1 | \
# Vi kun beskæftiger sig med de sidste to linjer af output
# at afgøre, om det var et vellykket dump
tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (MDY) | tail -3

# Count dump filsystem
FS_COUNT \u003d `expr $ (FS_COUNT) + 1«
gjort
anden

# Backup bruger cpio
til FS i $ (filsystemer)
gøre
echo "Skrivning cpio arkiv over $ (FS) til $ (NFSMOUNT)" | \
tee-a $ (BACKUP_LOG) / bu.cpio. $ (MDY). fejle \
>> $ (BACKUP_LOG) / bu.cpio. $ (MDY)

# Produktionen af finde altid vil være i forhold til roden
finde. $ (FS)-print-xdev | \

# Brug sed at ændre ". /" tilbage til "/" så Solaris cpio vil ikke bark
sed -e 's / ^ \. \ / $ / \ / /' | \
cpio-oc-O $ (NFSMOUNT) / `hostname`. $ (MDY) \
2>> $ (BACKUP_LOG) / bu.cpio. $ (MDY). Fejle \
1>> $ (BACKUP_LOG) / bu.cpio. $ (MDY)

# Tælle cpio archive filsystem
FS_COUNT \u003d `expr $ (FS_COUNT) + 1«
gjort

cat $ (BACKUP_LOG) / bu.cpio. $ (MDY). fejle
fi

# Display filsystem de oplysninger, der var bare bakkes op
echo "# # # øjeblikket monterede filsystemer:"
df-k $ (filsystemer)
echo "###"

LOG_END \u003d `wc-l <$ (HARDWARE_LOG)`
# Strip førende og efterfølgende mellemrum
LOG_END \u003d `expr $ (LOG_END)`
hvis [ "$ (LOG_BEGIN)"-ne "$ (LOG_END)"]; derefter
# Rapport fejl i loggen under backup
# Tilføje yderligere grep linjer for at fjerne normale beskeder vises i dine
# System skovhugst script
echo "# # # System logs genereres under backup:"
cat $ (HARDWARE_LOG) | \
sed -e "1, $ (LOG_START) d" | \
grep-v "koble fra" | \
grep mod "nægtede forbindelsen fra" | \
nawk '(print substr ($ 0,1,78)); \
længde> 78 (print "" substr ($ 0,79)) '

echo "###"
fi
# Fjern gamle logfiler
hvis [ "$ (BACKUPTYPE)" \u003d "cpio"]; derefter
cd $ (BACKUP_LOG)
finde. -mtime +14-follow-exec rm () \;
ls-lt $ (BACKUP_LOG) / *
echo
fi

echo "Backup Finished på" `dato`
  #2 (permalink)  
Old 03-18-2008
epoke
Guest
  
 

Posts: n / a
Bits: 0 [Banker]
Hvad er symtoms? Det er lidt svært at gætte, hvor du skal hen forkert blot ved at kigge i koden.

Jeg har bemærket en mindre problem her:

Code:
case " ${EXCLUDE_FS} " in
# If its excluded do nothing
*" ${FS} "*);;
Du er som kræver EXCLUDE_FS at have rum på begge sider for at få dette til at matche, men du synes ikke at have disse rum, indtil der var du tildele EXCLUDE_FS. Enten udvide "sag" kode til at håndtere kampe i begyndelsen, slutningen og alene, eller tilføje disse rum til opgaven. (Sidstnævnte er nemmere, men mere tilbøjelige til at gå ubemærket af en person, der hurtigt opdaterer udelukke liste senere.)

Tilfældet, når du opdaterer filsystemer forekommer unødigt kompliceret. Tilføje et mellemrum i begyndelsen af listen, hvis den er tom tilsyneladende harmløse at dømme ud fra, hvad du gør med den senere i koden.

Mig, jeg vil vende EXCLUDE_FS i et regulært udtryk, og filtreres produktionen af df gennem egrep, og slippe af med, at hele BLOB af kode, anyway.

Hvad er det punkt, for at eksportere alle disse variabler? Du er ikke påberåbe subcommands som har brug for dem, er du?

Du synes at mangler en bindestreg foran muligheden her:

Code:
grep v "refused connection from " | \
Kan ikke se, hvad der er galt med CPIO side, sorry.

Korrekt indrykning ville sandsynligvis hjælpe lidt her ...
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 07:56 PM.


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