![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt. |
Több, UNIX és Linux fórum témák Ön által talált Hasznos
|
||||
| Szál | Thread Starter | Fórum | Válaszok | Utolsó hozzászólás |
| while ciklus belsejében, míg hurok | panknil | Shell programozás és Scripting | 0 | 01-07-2008 12:49 PM |
| A loop | xramm | HP-UX | 3 | 10-10-2007 03:20 PM |
| Míg Loop | hemangjani | Shell programozás és Scripting | 2 | 11-02-2006 11:01 AM |
| A loop | munnabhai1 | Shell programozás és Scripting | 3 | 04-06-2006 03:30 PM |
| hogyan juthatunk el a hasonló funkciót míg loop vagy hurok | trynew | Shell programozás és Scripting | 3 | 06-17-2002 12:09 PM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
sh hurok Segítsek
Szia,
Én a következő szkriptet, hogy ez a tartalék cpio keresztül egy NFS csatlakoztatni. A probléma az, hogy csak úgy tűnik, hogy kezd root. Nem tudom, mit csinálok rosszul, de itt nem működik. Miután a teljes forgatókönyvet. Már a kiemelt területeken, ahol azt hiszem, van egy probléma, vagy legalábbis lényeges, azt hiszem. ![]() #! / bin / sh # # Set változók # 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 # Get dátum formátum MMDDYY MDY \u003d `date +% m% d% Y" if [! -d $ (BACKUP_LOG)-o! -w $ (BACKUP_LOG)], majd echo "$ () BACKUP_LOG nem létezik, vagy nem írható" exit 1 fi echo "# # # Backup kezdve" date "" # LOG_START a sorok száma a mi hardver napló # Kezdődött, amikor a biztonsági mentést. Mi nem érintett semmit # Bekövetkezett eddig. LOG_START \u003d `wc-l <$ (HARDWARE_LOG)" # Strip vezető és szóközök LOG_START \u003d `expr $ (LOG_START)" BACKUPTYPE \u003d "cpio" # Get listáját Unix fájlrendszerek biztonsági mentése MOUNTEDSYSTEMS \u003d `df-F UFS | cut-d ''-f1 | sort" # Eltávolítás kizárt fájlrendszert a listáról az FS a $ MOUNTEDSYSTEMS tesz case "$ (EXCLUDE_FS)" a # Ha a kizárni semmit nem * "$ (FS) "*);; # Új bejegyzés a listához *) Case "$ (fájlrendszereket)" a # Lista üres, így ez az első bejegyzés '') Fájlrendszereket \u003d "$ (FS)"; # Lista bejegyzések így append a listához *) Fájlrendszereket \u003d "$ (fájlrendszereket) $ (FS)"; esac; esac kész cd / if [ "$ BACKUPTYPE" \u003d "dump"], majd # Backup segítségével dump az FS a fájlrendszer $ () tesz echo "Dömping $ (FS) $ (NFSMOUNT)" | \ tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (MDY) / usr / sbin / ufsdump 0fu $ (NFSMOUNT) $ (FS) 2> & 1 | \ # Most csak a az utolsó két sor a kimeneti # eldönteni, hogy ez egy sikeres dump tee-a $ (BACKUP_LOG) / bu.ufsdump. $ (MDY) | farok -3 # Count dump a fájlrendszerben FS_COUNT \u003d `expr $ (FS_COUNT) + 1" kész vagy # Backup segítségével cpio az FS a fájlrendszer $ () tesz echo "írása cpio archívum $ (FS) és $ (NFSMOUNT)" | \ tee-a $ (BACKUP_LOG) / bu.cpio. $ (MDY). err \ >> $ (BACKUP_LOG) / bu.cpio. $ (MDY) # A kimenő találni mindig relatív gyökerestülkitép megtalálni. $ (FS)-print-xdev | \ # Use sed megváltoztatni. "/" vissza "/" Solaris cpio így nem fog ugatni sed -e 's / ^ \. \ / $ / \ / /' | \ cpio-oc-O $ () NFSMOUNT / `hostname`. MDY $ () \ 2>> $ (BACKUP_LOG) / bu.cpio. $ (MDY). Err \ 1>> $ (BACKUP_LOG) / bu.cpio. $ (MDY) # Gróf cpio archívum fájlrendszer FS_COUNT \u003d `expr $ (FS_COUNT) + 1" kész cat $ (BACKUP_LOG) / bu.cpio. $ (MDY). err fi # Kijelzõ fájlrendszer információkat, amelyek csak alátámasztani echo "# # # Jelenleg szerelt fájlrendszereket: df-k $ (fájlrendszereket) echo "###" LOG_END \u003d `wc-l <$ (HARDWARE_LOG)" # Szalag vezető és szóközök LOG_END \u003d `expr $ (LOG_END)" if [ "$ (LOG_BEGIN)"-ne "$ (LOG_END)"]; majd # Jelentés hibák log mentés közben # Grep további tételek eltávolítását normál üzenet jelenik meg a # Naplózási rendszer script echo "# # # System naplófájlokhoz során backup" cat $ (HARDWARE_LOG) | \ sed -e "1, $ (LOG_START) d" | \ grep-v "Kapcsolódás a" | \ grep v "visszautasította a kapcsolatot" | \ nawk '(print substr ($ 0,1,78)), \ Length> 78 (print "substr ($ 0,79)) ' echo "###" fi # Távolítsuk el a régi naplófájlok if [ "$ (BACKUPTYPE)" \u003d "cpio"], majd cd $ (BACKUP_LOG) megtalál. 14-mtime követését exec rm () \; ls-lt $ (BACKUP_LOG) / * echo fi echo "Backup Finished at" "date" |
|
||||
|
Milyen symtoms? Ez egy kicsit nehéz kitalálni, hova baj csak néztem a kódot. Észrevettem egy kis probléma, itt van: Kód:
case " ${EXCLUDE_FS} " in
# If its excluded do nothing
*" ${FS} "*);;
Ön igénylő EXCLUDE_FS a terek mindkét oldalon ahhoz, hogy ez a meccs, de nem úgy tűnik, hogy ezeket a tereket ki volt akkor EXCLUDE_FS sorolására. Vagy bővíteni "ügy" kódot kell kezelni mérkőzés elején, végén, és egyedül, vagy adjunk e terekben a feladatot. (Ez utóbbi könnyebb, de nagyobb a valószínűsége, hogy észrevétlen maradt valaki, aki gyorsan frissíti a listát kizárják később.) Az esetben, ha Ön frissítése fájlrendszereket tűnik szükségtelenül bonyolultak. Egy szóközzel elején a listán, ha ez úgy tűnik, üres ártalmatlanok, ítélve, amit csinálsz vele később a kódot. Én, én viszont EXCLUDE_FS egy reguláris kifejezés, és szűrjük le a kimenő df a egrep és megszabadulni, hogy az egész blob a kódot, egyébként. Mi a lényeg az exportáló minden változó? Te nem subcommands hivatkozva, amelyek kellenek, ugye? Úgy látom, hogy hiányzik a kötőjel elé, itt a lehetőség: Kód:
grep v "refused connection from " | \ Nem látom, mi a baj a CPIO részt, sajnálom. Megfelelő behúzásának talán segít egy kicsit itt is ... |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|