Bash?
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Hab mich zwar nicht vertippt, war aber trotzdem falsch
/dev/ttypX sollte es sein...
Patrick
/dev/ttypX sollte es sein...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
hey...
ich hab das jetzt in ttyp1 umgeändert... da kommt folgendes:
ich hab das jetzt in ttyp1 umgeändert... da kommt folgendes:
Code: Alles auswählen
./rescue.sh: /dev/ttyp1: Input/output error
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
Öffne 'mal die Shell deines Vertrauens unter X und mach dann "lsof|grep Shellname", da sollte das richtige Device bei sein. (Notfalls apt-get install lsof, das sollte eh immer parat haben)
(Bei mir funktioniert's...)
Patrick
(Bei mir funktioniert's...)
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
- pdreker
- Beiträge: 8298
- Registriert: 29.07.2002 21:53:30
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Nürnberg
lsof|grep bash (falls bash Deine Shell ist... ich meinte nicht xterm oder so, sorry war unklar ausgedrückt...)
Die Shell sollte irgendein /dev offen haben, das ist normalerweise das Terminal...
Patrick
Die Shell sollte irgendein /dev offen haben, das ist normalerweise das Terminal...
Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de
Jabber: pdreker@debianforum.de
Hi Leute,
kann es sein, dass ihr fürchterlich aneinander vorbeiredet?
@neotux: Beschreibe noch einmal (mit konkretem Beispiel), was Du vorhast. Was meinst Du mit "einzeln rekonstruieren", wenn Du doch jede Datei mit "s" bestätigen willst?
Dann wollt ihr die Ausgabe von einem tty auf ein anderes umlenken. Schön und gut und kein Problem, aber damit wird diese ZK noch lange nicht als stdin von dem dort laufenden Programm benutzt. Ich habe das zwar nicht in der bash getestet, aber ich kenne keine shell, die sich so verhält. Lässt sich leicht testen, könnte ich aber erst heute abend.
Beispiel:
(1. tty : /dev/ttyp5)
read ein
(2.tty)
echo hallo >/dev/ttyp5
(1. tty)
- "hallo" sollte zu sehen sein, shell prompt ist aber nicht da (oder?)
<Enter>
echo $ein
--> ein ist leer (oder?)
Kurz und gut, ich denke, was Du vorhast, lässt sich ganz simpel ohne Klimmzüge lösen, aber was hast Du genau vor?
kann es sein, dass ihr fürchterlich aneinander vorbeiredet?
@neotux: Beschreibe noch einmal (mit konkretem Beispiel), was Du vorhast. Was meinst Du mit "einzeln rekonstruieren", wenn Du doch jede Datei mit "s" bestätigen willst?
Dann wollt ihr die Ausgabe von einem tty auf ein anderes umlenken. Schön und gut und kein Problem, aber damit wird diese ZK noch lange nicht als stdin von dem dort laufenden Programm benutzt. Ich habe das zwar nicht in der bash getestet, aber ich kenne keine shell, die sich so verhält. Lässt sich leicht testen, könnte ich aber erst heute abend.
Beispiel:
(1. tty : /dev/ttyp5)
read ein
(2.tty)
echo hallo >/dev/ttyp5
(1. tty)
- "hallo" sollte zu sehen sein, shell prompt ist aber nicht da (oder?)
<Enter>
echo $ein
--> ein ist leer (oder?)
Kurz und gut, ich denke, was Du vorhast, lässt sich ganz simpel ohne Klimmzüge lösen, aber was hast Du genau vor?
Gruß
ernohl
ernohl
hi...
also
@try:
ich verwende eterm und hab natürlich schon versucht bash durch eterm zu ersetzen, aber ohne erfolg.
@ernohl:
erstma fand ich dienen einwurf gut, weil ich auch das gefühl hatte, an den anderen vorbei zu reden.
ich hatte das thema ja schonmal gepostet, leider hat mi da niemand geantwortet, und deshalb dachte ich, es wüsste keiner uind hab es nich weiter geschildert.
aber nochmal
ich hab ein dateirecover Programm für das extFilesystem. Leider ist es so, das man damit keine vereichnisse wiederherstellen kann, sondern nur einzelne datein.
da ich 8,8GB verloren hab, hab ich mir gedacht, das es sich doch wohl eher müsam gestaltet, die alle von hand zu retten. (arbeisschritte: "s" für sichern der datei drücken, dann pfeil nach unten um zur nächsten zu gelangen, wieder "s"...) und ich hatte vor diese Tastenkombination in einer beinahe endlosschleife an das Programm(undelete) zu übergeben.
(undelete hab ich mal gescreenshotet, und es auf meinen server gestellt, also iss das bild nur so lange erreichbar, bis ich reboote, also vorausichtlich heut abend.)
[img]80.135.234.55/undelete.png[/img]
*gruss* Neotux
also
@try:
ich verwende eterm und hab natürlich schon versucht bash durch eterm zu ersetzen, aber ohne erfolg.
@ernohl:
erstma fand ich dienen einwurf gut, weil ich auch das gefühl hatte, an den anderen vorbei zu reden.
ich hatte das thema ja schonmal gepostet, leider hat mi da niemand geantwortet, und deshalb dachte ich, es wüsste keiner uind hab es nich weiter geschildert.
aber nochmal
ich hab ein dateirecover Programm für das extFilesystem. Leider ist es so, das man damit keine vereichnisse wiederherstellen kann, sondern nur einzelne datein.
da ich 8,8GB verloren hab, hab ich mir gedacht, das es sich doch wohl eher müsam gestaltet, die alle von hand zu retten. (arbeisschritte: "s" für sichern der datei drücken, dann pfeil nach unten um zur nächsten zu gelangen, wieder "s"...) und ich hatte vor diese Tastenkombination in einer beinahe endlosschleife an das Programm(undelete) zu übergeben.
(undelete hab ich mal gescreenshotet, und es auf meinen server gestellt, also iss das bild nur so lange erreichbar, bis ich reboote, also vorausichtlich heut abend.)
[img]80.135.234.55/undelete.png[/img]
*gruss* Neotux
Ok., am besten wäre es natürlich, Du findest eine Möglichkeit, Dein recover-Programm nicht interaktiv zu starten.
Wenn das nicht möglich ist, dann versuche das Programm (ungetestet) etwa so zu starten:
recoverprog < <deininputfile>
Nun erzeugst Du die Datei <deininputfile> mit genau den gewünschten Tastenkombinationen ('s', Pfeiltaste). Denke daran, dass eine neue Zeile ein <Return> bedeutet. Ganz unelegant erzeugst Du einfach entsprechende viele (nach der Anzahl der zu rekonstruierenden Dateien) Einträge.
Etwas eleganter wäre es, irgendwie mit einer named pipe zu arbeiten, die Du parallel in einer Schleife fütterst. Ich will mich aber ohne praktischen Test jetzt nicht zu weit aus dem Fenster lehnen...
Wenn das nicht möglich ist, dann versuche das Programm (ungetestet) etwa so zu starten:
recoverprog < <deininputfile>
Nun erzeugst Du die Datei <deininputfile> mit genau den gewünschten Tastenkombinationen ('s', Pfeiltaste). Denke daran, dass eine neue Zeile ein <Return> bedeutet. Ganz unelegant erzeugst Du einfach entsprechende viele (nach der Anzahl der zu rekonstruierenden Dateien) Einträge.
Etwas eleganter wäre es, irgendwie mit einer named pipe zu arbeiten, die Du parallel in einer Schleife fütterst. Ich will mich aber ohne praktischen Test jetzt nicht zu weit aus dem Fenster lehnen...
Gruß
ernohl
ernohl
na gut, wenn hierauf keiner antwortet, dann doch die alternative...
also für das programm geb ich normalerweisse folgenden aufruf durch "./undelete -d /dev/hdb3 -a 3000"
und wenn ich das mit den tasten übergeben machen will, muss ich das dann so machen, ja? :
und in die datei steuerung dann:
also für das programm geb ich normalerweisse folgenden aufruf durch "./undelete -d /dev/hdb3 -a 3000"
und wenn ich das mit den tasten übergeben machen will, muss ich das dann so machen, ja? :
Code: Alles auswählen
./undelete -d /dev/hdb3 -a 3000 < steuerung
und wie mach ich eine schleife??? am besten endlos...s \037
Neotux hat geschrieben:und in die datei steuerung dann:Code: Alles auswählen
./undelete -d /dev/hdb3 -a 3000 < steuerung
und wie mach ich eine schleife??? am besten endlos...s \037
Code: Alles auswählen
while true
do
echo [-n] <deine_steuerung>
done | ./undelete -d /dev/hdb3 -a 3000
Gruß
ernohl
ernohl
Kommt darauf an, was Du siehst. Ich traue seit dem Umzug dem Forum noch mehr ganz (sorry feltel). Ich bekomme z.B. oft Benachrichtigungen zu neuen Antworten per mail, aber im Forum finde ich sie dann erst später.Neotux hat geschrieben:hm... aber wird da nich immer wieder das Programm gestartet?
Ich kann auch jetzt nicht erkennen, dass ich diesen Beitrag mal editiert habe. Von den teilweise immer noch doppelt kommenden Benachrichtigungsmails ganz zu schweigen.
Ich hatte mein posting kurze Zeit falsch dastehen, habe es dann korrigiert. Wenn die pipe hinter dem "done" steht, sollte es nur einmal aufgerufen werden. Dann werden die in der Schleife erzeugten Zeichen über die pipe an die Standardeingabe des nur einmal gestarteten undelete übergeben.
Gruß
ernohl
ernohl
- De Kus
- Beiträge: 167
- Registriert: 27.08.2002 14:32:24
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Pfalz
nur als kleine info zu deinem "s \037". wenn du das in eine datei schreibst würde er höchstwahrscheinlich als zeichen: "s<leerzeichen><blackslash>037" einlesen, besser du öffnest sie mit einem hexeditor und schreibst "731F" rein.
De Kus der Fehlerminator
Copyright (c) 2002-2005 De Kus
Love hurts, love strengthens ...
Copyright (c) 2002-2005 De Kus
Love hurts, love strengthens ...
hi...
also ich hab das script jetzt "geschrieben" und ausprobiert...
key Pressed: 37
key Pressed: 12
kann mir jemand sagen, was das für tasten sind?
also ich hab das script jetzt "geschrieben" und ausprobiert...
und im Programm sagt er mir:#!/bin/sh
while true
do
echo s //gleich darauf im hexeditor wurde 1F eingefügt, zeigt er nur nicht an...
done | ./undelete -d /dev/hda3 -a 3000
key Pressed: 37
key Pressed: 12
kann mir jemand sagen, was das für tasten sind?
Oktal 37 = dezimal 31 = hexadezimal 1F = ascii "1"Neotux hat geschrieben:und im Programm sagt er mir:
key Pressed: 37
key Pressed: 12
kann mir jemand sagen, was das für tasten sind?
Oktal 12 = dezimal 10 = hexadezimal 0A = <newline>
Die Taste "Pfeil nach unten" erzeugt sicherlich auch nur einen scancode und represäsentiert keinen ASCII-Code. ich habe allerdings keine Ahnung, ob und wie man das ins kommando schreibt.
Am ehesten noch über tput (sitze aber gerade nicht an 'ner Linux-Kiste). Deine echo Zeile würde dann ungefähr so aussehen:
Code: Alles auswählen
echo -n "s" ; tput cud1
Gruß
ernohl
ernohl