![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| mens loop inne mens loop | panknil | Shell programmering og Skripting | 0 | 01-07-2008 12:49 |
| For loop | xramm | HP-UX | 3 | 10-10-2007 03:20 |
| Mens Loop | hemangjani | Shell programmering og Skripting | 2 | 11-02-2006 11:01 |
| for loop | munnabhai1 | Shell programmering og Skripting | 3 | 04-06-2006 03:30 |
| hvordan du får lignende funksjon i mens loop eller sløyfe | trynew | Shell programmering og Skripting | 3 | 06-17-2002 12:09 |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
||||
|
sh loop Trenger du hjelp
Hei,
Jeg har følgende skript som utfører en sikkerhetskopi via cpio til en NFS mount. Problemet er at jeg bare ser ut til å bli root. Jeg er ikke sikker på hva jeg gjør galt her, men det fungerer ikke. Følgende er hele skriptet. Jeg har markert de områdene hvor jeg tror jeg har et problem eller er minst relevant, tror jeg. ![]() #! / bin / sh # # Set konfigurasjon variabler # NFSMOUNT \u003d '/ mnt /nfs' BACKUP_LOG \u003d '/ usr / local / backup_logs' EXCLUDE_FS \u003d '/ mnt /nfs' HARDWARE_LOG \u003d '/ var / ADM / meldinger " eksport NFSMOUNT BACKUP_LOG EXCLUDE_FS HARDWARE_LOG # Få dato i MMDDÅÅ format Dmy \u003d `date +% m% d% Y` Hvis [! -d $ (BACKUP_LOG)-o! -w $ (BACKUP_LOG)]; deretter echo "$ (BACKUP_LOG) eksisterer ikke eller er ikke skrivbar" exit 1 fi echo "# # # Backup starter på` dato `" # LOG_START er antall linjer i vår maskinvare logg # Når backup begynte. Vi er ikke opptatt av noe # Som skjedde før nå. LOG_START \u003d `wc-l <$ (HARDWARE_LOG)` # Strip ledende og etterfølgende mellomrom LOG_START \u003d `expr $ (LOG_START)` BACKUPTYPE \u003d "cpio" # Få oversikt over UNIX-filsystemer å sikkerhetskopiere MOUNTEDSYSTEMS \u003d `df-F UFS | cut-d ''-f1 | sort` # Fjern ekskludert filsystemer fra liste for FS i $ MOUNTEDSYSTEMS gjøre case "$ (EXCLUDE_FS)" i # Hvis utelatt gjøre ingenting * "$ (FS) "*);; # Legg til oppføring til listen *) Case "$ (filsystemer)" i # Er tom så dette er den første oppføringen '') Filsystemer \u003d "$ (FS)";; # Listen inneholder oppføringer så føyer til liste *) Filsystemer \u003d "$ (filsystemer) $ (FS)";; esac;; esac ferdig cd / Hvis [ "$ BACKUPTYPE" \u003d "dump"], og # Backup bruker dump for FS i $ (filsystemer) gjøre echo "dumping $ (FS) $ (NFSMOUNT)" | \ tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (dmy) / usr / sbin / ufsdump 0fu $ (NFSMOUNT) $ (FS) 2> & 1 | \ # Vi bare opptatt av de to siste linjene i produksjon # for å fastslå om dette var et vellykket dump tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (dmy) | halen -3 # Count fylling av filsystem FS_COUNT \u003d `expr $ (FS_COUNT) + 1` ferdig ellers # Backup bruke cpio for FS i $ (filsystemer) gjøre echo "Skrive cpio arkiv av $ (FS) til $ (NFSMOUNT)" | \ tee-a $ (BACKUP_LOG) / bu.cpio. $ (dmy). ERR \ >> $ (BACKUP_LOG) / bu.cpio. $ (Dmy) # Utdataene for finner alltid vil være relativt til roten finne. $ (FS)-print-xdev | \ # Bruk sed å endre. "/" til "/" så Solaris cpio vil ikke bark sed -e 's / ^ \. \ / $ / \ / / "| \ cpio-OC-O $ (NFSMOUNT) / `hostname`. $ (dmy) \ 2>> $ (BACKUP_LOG) / bu.cpio. $ (Dmy). ERR \ 1>> $ (BACKUP_LOG) / bu.cpio. $ (Dmy) # Telle cpio arkiv av filsystem FS_COUNT \u003d `expr $ (FS_COUNT) + 1` ferdig cat $ (BACKUP_LOG) / bu.cpio. $ (dmy). ERR fi # Display filsystem som akkurat ble sikkerhetskopiert echo "# # # tiden montert filsystemer:" df-k $ (filsystemer) echo "###" LOG_END \u003d `wc-l <$ (HARDWARE_LOG)` # Strip ledende og etterfølgende mellomrom LOG_END \u003d `expr $ (LOG_END)` Hvis [ "$ (LOG_BEGIN)"-ne "$ (LOG_END)"]; deretter # Rapporter feil i loggen under backup # Legge til flere grep linjer å fjerne normal meldinger vises i # System logging script echo "# # # systemloggene generert under backup:" cat $ (HARDWARE_LOG) | \ sed -e "1, $ (LOG_START) d" | \ grep-v "koble fra" | \ grep v "nektet tilkobling fra« | \ nawk '(print substr ($ 0,1,78)); \ lengde> 78 (print "" substr ($ 0,79)) " echo "###" fi # Fjern gamle loggfiler Hvis [ "$ (BACKUPTYPE)" \u003d "cpio"], og cd $ (BACKUP_LOG) finne. -mtime +14-følgemønstre exec rm () \; ls-lt $ (BACKUP_LOG) / * ekko fi echo "Backup fullført på" `dato` |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|