25.05.2019, 03:38 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

1

11.03.2019, 22:46

Shell-Skripte - die enthaltenen Anweisungen - nicht nur die ausgaben dokumentieren

12.03.19 - habe für mich eine kleine Lösung gefunden
Skripte mit "bash -v skriptname" aufrufen, und zumindest wird die Anweisung mit ausgegeben

das dokumentiert zwar keine ganze Konsolensitzung - aber immerhin wird beim Aufruf von Skripten
deren Anweisungen mit auf die Konsole ausgegeben

werde noch etwas warten, ob noch jemand eine bessere Idee hat,
sonst setzte ich die Frage auf erledigt/gelöst oder so.

Hallo,

natürlich weiß ich, dass meine Frage nicht Knoppix-spezifisch ist.


Da ich aber sehe, dass immer mal wieder jemand Beispiele für ein Skipt
einstellt, denke ich dass es hier User mit entsprechender Erfahrung
gibt.


Suche übrigens schon ein paar Stunden immer mal wieder im Web – speziell
im Ubuntu-Wiki, weil die so tolle Erklärungen haben, herum.

Problem:

wie kann ich alles was ich in der Konsole mache, in eine Datei mitloggen.
Inkluve aller in aufgerufenen Skripten abgearbeiteten Anweisungen,
den normalen Ausgaben der Anweisungen und den Fehler-Hinweis-Ausgaben.

Bitte:

Das Problem kennt ja vielleicht jemand hier und hat sich schon eine Lösung überlegt.
Ich wäre für Tipps sehr Dankbar.

Zum Verständnis, warum ich das brauche:
Da ich alle meine Arbeiten in der Konsole dokumentiere,
indem ich alles mit Copy & Paste in eine Textdatei übernehme,
ist es für mich ein Problem, dass, wenn ich Skripte aufrufe,
deren Anweisungen nicht mit ausgegeben werden,
sondern nur die Ausgaben der Anweisungen.im Terminal erfolgt.

Wenn man dann einen Vorgang nur teilweise, oder in anderer Anordnung,
nochmal wiederholen will,
sind die Anweisungen nicht mehr vollständig ersichtlich aus der Doku.
Man muss diese einzeln aus den Skritpen raussuchen.

Dokumentation ist für mich wichtig, da es manchmal zu Fehlern kommt,
und ich gerne noch Tage danach mal schauen möchte,
ob mir etwas auffällt.
Oder ich dann Hinweise im Netz finde, mir aber nicht sicher bin, ob ich
das eine oder andere wirklich so gemacht habe.

Am Rande:
Im Moment versuche ich z.B. ein auf USB-Stick installiertes Linux
mittels dd in eine Image-Datei zu schreiben und anschließend mit cmp
zu vergleichen, ob alles korrekt gesichert wurde. „cmp“ liefert
Unterschiede wenn ich den Stick mit dem Image-Inhalt vergleiche. Da
gibt es schon 2 Versuche. Wenn ich dann die beiden Image-Dateien
Vergleiche, sind diese auch noch Unterschiedlich – also nicht die
gleichen Abweichungen.

Da wäre es schon schön, für weitere Versuche Skripte zu verwenden, um
nicht zu viel von den aus der Konsole zur Dokumentation kopierten
Kommandozeilen manuell vergleichen zu müssen. Da aber die
Anweisungen der Skripte nicht mit ausgegeben werden, muss man dann
wieder zusätzlich in das Skript schauen, was es denn tut, um zu
überprüfen ob da keine Fehler in den Anweisungen sind.

Woran ich auch schon gedacht habe:

Habe auch schon an die Anweisung „script“ gedacht

Das scheint mir aber schwierig, da gem. ubuntu-Wiki Sonderzeichen iwie
unübersichtlich mit protokolliert werden.

Außerdem gem. Manpage:

Zitat

Certain
interactive commands, such as vi(1), create garbage in the
typescript file. script works best with commands that do not
manipu‐
late the screen, the results are meant to emulate a hardcopy
terminal.
Aber auch:

Zitat

It is not recommended to run script in non-interactive shells.
The

inner shell of script is always interactive, and this could lead
to unexpected results. If you use script in the shell initialization
file, you have to avoid entering an infinite loop. You can use
for

example the .profile file, which is read by login shells only:

Quellcode

1
2
3
4
if test -t 0 ; then 
  script
  exit
fi

und außerdemYou should also avoid use of script in command pipes, as script

Zitat

can read more input than you would expect.
Was denn nun bitte? - irgendwie für alle meine Zwecke nur bedingt benutzbar.

Sicher kann ich die Ausgaben umleiten in eine Datei.
Das mit „tee“ habe ich auch schon raus.
Da habe ich aber die Anweisungen nicht mit in der Datei.

Ein Gedanke, den ich noch nicht verfolgt habe, ist ob da ein Debug-Modus
beim Ausführen von Skripten was helfen könnte.

Danke an Alle, die mal geschaut haben, was ich für ein Problem habe.

Mit winterlichen Grüßen aus München

The_idealist
ala "irgendwie muss es doch gehen ;)"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »the_idealist100« (12.03.2019, 13:35)


Beiträge: 590

Geschlecht: Männlich

2

13.03.2019, 01:16

Hallo.
Ich kann dir leider keine Tipps geben wie man mit skript arbeitet, aber Texte von der Konsole kopiert wie ich es immer mache. Editor öffnen.Auf der Konsole mit der linken Maustaste den Text markieren den Du kopieren möchtest.Die Zeilen die Du ausgewählt hast müssen weiß aussehen.Dann rechte Maustaste und kopieren wählen.Diesen Text kannst Du dann bei Gedit einfügen und Speichern unter.

FM_81

Fortgeschrittener

3

18.03.2019, 08:52

Am Rande:
Im Moment versuche ich z.B. ein auf USB-Stick installiertes Linux
mittels dd in eine Image-Datei zu schreiben und anschließend mit cmp
zu vergleichen, ob alles korrekt gesichert wurde. „cmp“ liefert
Unterschiede wenn ich den Stick mit dem Image-Inhalt vergleiche. Da
gibt es schon 2 Versuche. Wenn ich dann die beiden Image-Dateien
Vergleiche, sind diese auch noch Unterschiedlich – also nicht die
gleichen Abweichungen.
Das Linux, was Du da gerade sichern willst ist:
- in Benutzung und dessen ROOT-Dateisystem ist 'read-write' gemountet
- oder nicht in Benutzung und dem zu Folge nicht eingebunden (oder aber nur 'read-only')
???

Gruß, FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

4

23.03.2019, 11:11

Hallo,

Zitat Debian-Reference:

Zitat


9.2.3. Recording the shell activities cleanly
The simple use of script(1) (see Section 1.4.9, “Recording the shell activities”) to record shell activity produces a file with control characters. This can be avoided by using col(1) as the following.

$ script
Script started, file is typescript

Do whatever … and press Ctrl-D to exit script.

$ col -bx <typescript >cleanedfile
$ vim cleanedfile


Wenn Du ein (Bash) Script mit der -x Option startest, werden alle ausgeführten Befehle angezeigt, also:

Quellcode

1
 bash -x mein-script.sh


MfG

Linux HardwareLinux Computer & PCs | Linux Notebooks & Laptops | Geek Shirts | Geek und Nerd Shirt Shop