Sziasztok!
Van egy nagy (kb. 200G) filesystem, amit osszekutyult egy hw hiba.
Egy kisebb eseten az fsck rendberakta annyira, hogy a fajlokat meg lehet talalni, le lehet menteni. A kisebb (kb. 30G) tartott jo 1 napig.
Ez a nagy soka tart. Es alapbol az fsck mindenre megkerdezi, hogy akarom-e.
Szoval azt talaltam ki, hogy expect erre valo, kerdesre valaszol.
De meg sosem hasznaltam. A man alapjan probaltam valamit osszetakolni, de nem sikerult. Az megvolt, hogy ha jon a , akkor toljon egy y-t, de azt mar nem tudom, hogy kellene, hogy ezutan ne lepjen ki.
Szoval vegtelenciklusban varjon a standard inputon, es ha string jon, kuldjon egy y-t, ennyi lenne a feladat.
G
- 1394 megtekintés
Hozzászólások
Ja, meg még az lenne a kérdés, hogy hogyan tudom egyáltalán az e2fsck-val az expectet összehozni?
Mert mondjuk ha a scriptet ki is sakkozom, akkor is, erre a másikra ötletem sincs.
Illetve ötletem az volt, hogy majd pipe, meg ilyesmi, de ez nem vezetett semmire :-(
G
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy jobban járnál, ha az fsck- t
-a
kapcsolóval indítanád, de előtte mindenképpen olvasd el az ide vonatkozó man részt: use this option with caution.
Ugyanígy nézd meg a
-y
kapcsolót is. Egyiket sem használtam még, de ezek valóak man szerint ilyesmire.
- A hozzászóláshoz be kell jelentkezni
+1
Azért készülj fel a legrosszabra. Az a sok kérdés, jó eséllyel azt jelenti, hogy elfelejtheted.
Már sikerült olyan fájlrendszer-hibát is összehoznom, amin az fsck nem terminált.
- A hozzászóláshoz be kell jelentkezni
termeszetesen a -y mar megvolt.
Nem jo semmire.
Hw hiba miatt a teljes hd osszekuszalodott, de mondom megint: a kisebb particion vegigmentem mar igy, valami sulyt tettem az y gombra, es orakon at ment a kerdezz felelek:
deleted inode has 0 dtime fix?
group 42 block 4242 belongs to another fs block fix?
stb.
Egy csomo olyan kerdes, amit nem ertek, es nem is akarok erteni, foleg nem akarok egyesevel elgondolkozni rajta, hogy mi is lehet a jo valasz.
A kisebb particio fsck-ja (mindenre y) utan az lett az eredmeny, hogy az osszes file a lost+found alatt volt megtalalhato. Nem volt idom meg vegignezni, de szamos olyan fajlt talaltam (a nagyobb meretuekkel kezdtem a keresest), ami tokeletes allapotban megvan.
Mivel a hw hiba hirtelen lepett fel, (menet kozben leszakadt az eszkoz. Kikapcsoltam, ujra bekapcs, raneztem, akkor mar a particios tabla sem latszott. Mas kabellel es vezerlovel minden jol latszik, ott a particios tabla, lehet korabban nem hasznalt reszekre irni, olvasni... Csak a korabban hasznalt reszek ossze vannak kuszalva), ezert ugy gondolom, hogy nem volt ideje a teljes diszk teljes tartalmat elpusztitani. Gondolom az fs eppen irt reszet osszekeverte. Journalt, konyvtarstrukturat, esetleg nehany fajlt. De azt remelem, hogy a fajlok (blokkok) nagy resze nem serult. Az mas kerdes, hogy sikerul-e az egy fajlhoz tartozo sok nem serult blokkot egyben kinyernem.
Szoval baromira feleslegesen kerdezget az fsck. Mindenre yes-t akarok mondani, probalja meg, es aztan vagy orulok, vagy nem a vegeredmenyt latva.
Ennyi a feladat.
G
- A hozzászóláshoz be kell jelentkezni
yes | fsck ...
Lehet hogy működik
- A hozzászóláshoz be kell jelentkezni
Szia!
Az expect nem erre való.
Az expect, ismétlődő interaktiv folyamatok batch-esítésére való.
pl.: ha naponta/óránként át akarsz jelentkezni egy másik szerverre és ott elindítani egy progit, az expect-el ezt tudod automatizálni.
Neked viszont arra van szükséged, hogy egy (remélhetőleg csak egyszer futó) proginak mindíg ugyanazt a választ add !
- A hozzászóláshoz be kell jelentkezni
Igen?
És hogyan?
Egyébként mi a különbség aközött a két eset között, hogy óránként bejelentkezek egy másik szerverre, és az ogin: kérdésre azt válaszolom, hogy gee, a assword: kérdésre meg azt válaszolom, hogy titok; illetve hogy egy program által feltett kérdésekre ? azt válaszolom, hogy y?
Mellesleg man expect, és az egyik lehetséges felhasználási módnak az fsck automatizálását írja.
Találtam is a neten példát, ami az fsck által feltett kérdésekre válaszol y-t, n-t, vagy interaktív módba lép... ezt megpróbáltam átvaracskolni, de nem tudom egyáltalán összekötni a program kimenetével és bemenetével.
G
- A hozzászóláshoz be kell jelentkezni
Hello!
Szerintem mennie kell, a programok ki és bemenetét kapcsolod az expecthez.
1. spawn-olj
2. indíts egy while ciklust
3. várj a megfelelő kimenetre (timeout-ot állítsd, mert asszem a default 30mp)
4. küld egy a y-t. Ha entert is kell ütni /r-t tedd mögé.
Esetleg egy TCL tutorialt nézz meg.
Üdv
- A hozzászóláshoz be kell jelentkezni
Tudsz írni egy egyszerű példát?
Már elkezdtem tcl-t nézni, de tök kínai :-) Vagy csak nem fogott az agyam hajnal kettőkor.
Kb. eddig jutottam most:
while 1 {
expect {
eof {break}
{send "y"}
}
}
Ezt expect -f fentiscript modon inditva nekem kivaloan valaszolgat.
De nem jottem ra, hogy tudom az e2fsck-val osszedolgozni.
Vagy a scriptbol kellene inditani az fsck-t? Hogyan? exec valami?
G
- A hozzászóláshoz be kell jelentkezni
A while elé tegyél be egy spawn fsck paraméterek sort
Üdv
- A hozzászóláshoz be kell jelentkezni
Koszi, este megnezem.
(a script nem ilyen egyebkent, csak elonezet nelkul kuldtem be, es lenyelte a vart stringet)
G
- A hozzászóláshoz be kell jelentkezni
Működik jól.
Köszi
- A hozzászóláshoz be kell jelentkezni
Nincs mit.
Üdv
azin
- A hozzászóláshoz be kell jelentkezni
Legegyszerűbben, tanulófázisban expect scripet az autoexpect -el tudsz csinálni.
- A hozzászóláshoz be kell jelentkezni
mkfs, utána meg restore.
- A hozzászóláshoz be kell jelentkezni
He?
mkfs-t ismerem. Mi az a restore? :-)
man restore azt mondja, nincs ilyen parancs.
Vagy ha backupra gondolsz, az vicces, epp backupot keszitettem, es az a baj, hogy nem tudom, mi volt mar meg, es mi lehet meg csak egy helyen.
G
- A hozzászóláshoz be kell jelentkezni
dumpfs kistestvere
--
“A well placed underscore makes the difference between a s_exchange and a sex_change”
— 8048 Users Manual, Intel 1977.
- A hozzászóláshoz be kell jelentkezni
aze' tisztazzunk valamit: a dumpfs FS infok megjelenitesere jo, mig a restore a dump (mashol backup) nevu parancs altal keszitett mentes visszatoltesere, szoval a kistestvere talan tulzas ;-)
- A hozzászóláshoz be kell jelentkezni