Re: wget will unbedingt fremde Sites mit einsammeln



Boris 'pi' Piwinger <3.14@xxxxxxxxxxx> writes:

Helmut Waitzmann <Helmut.Waitzmann@xxxxxx> wrote:

---Schnipp---
#!/usr/local/bin/bash
set -x
{
id
umask
pwd -P
ulimit -Sa
export -p
printf '%q\n' ${1+"$@"}
} >&2
command exec wget ${1+"$@"}
---Schnapp---

Jetzt ändere in dem Shell-Skript, in dem »wget« Ärger macht, den Aufruf
»wget« in »my_wget«.

Jetzt starte das (geänderte) Shell-Skript, in dem der Aufruf von »wget«
Ärger gemacht hat. Tut »wget«, aus »my_wget« heraus aufgerufen, was es
soll, oder macht es Ärger?

Wird also wohl auch nicht gehen.

Probierst Du es sicherheitshalber?

Klar doch:

:+ id
:uid=1005(3.14) gid=1005(3.14) groups=1005(3.14)
:+ umask

[...]

Die Ausgabe entsprichte der vom interaktiven Fall.

Auch hier geht es über dei Grenzen hinaus.

Damit liegt also folgender Sachverhalt vor (richtig?):

»my_wget« gibt die Prozessumgebung aus und startet anschließend »wget«.

Egal, ob Du »my_wget« jetzt interaktiv aus einem »bash« oder aus einem
»sh« heraus startest, oder ob Du »my_wget« aus Deinem ursprünglichen
Shell-Skript heraus startest:

In allen 3 Fällen sieht die Prozessumgebung, die »my_wget« ausspuckt,
gleich aus, und in allen 3 Fällen grast »wget« weitere Rechner ab, obwohl
in Deiner »wget«-Konfigurationsdatei

span_hosts = off

steht.

Exakt.

Das ist wirklich sehr seltsam.

Nur: Gab es nicht zu Anfang ein direkt eingetipptes Kommando, bei dem
»wget« funktioniert hat?

Korrekt. Dazwischen gab es ein Systemupgrade. Die einzige
merkliche Auswirkung war dieses wget-Problem, dass .wgetrc
jetzt nicht mehr richtig ausgewertet wird.

Sieht so aus, dass das Systemupgrade Ärger macht.

Das lässt vermuten, dass es nicht an »wget«
liegt, sondern an seiner Prozessumgebung oder dem Zustand des Rechners.

Was könnte es sein?

Ich würde sagen: Da ist alles möglich: Von Engpässen (etwa im
Dateisystem, das das Verzeichnis »/tmp/« beherbergt oder mangelndem
virtuellen Speicher) bis zu Fehlern im Betriebssystem.

Mir ist mal ein update-Problem begegnet, bei dem Dateien, die von einem
als NFS erreichbaren Shared SamFS kamen, spontan kurzzeitig ihren Inhalt
änderten (und anschließend wieder rückgängig machten): Häufig waren sie
leer. Ab und zu hing auch hinten ein fremder Inhalt, sogar von Dateien
eines anderen Benutzers, dran...

Ist auf allen Dateisystemen auf dem Rechner genug Platz? Was meint das
Kommando »df«?

Überall massig Platz.

Daran liegt es also auch nicht.

Vielleicht kannst Du doch noch David Hallers Holzhammer-Vorschlag folgen,
»wget« (am besten im Shell-Skript »my_wget«) mal mittels »trace«, »truss«
oder wie auch immer das Beobachtungs-Programm auf Deinem Rechner heißt,
zu starten und ihm dadurch zuzuschauen, welche Konfigurationsdateien es
verwendet.

Der Test, den ich vor einigen Tagen gemacht hatte, nannte ja
.wgetrc interessanterweise.

Falls möglich, gib dem Beobachtungsprogramm (per Kommandozeile) die
Anweisung, nur die System- oder Laufzeitbibliotheksaufrufe »open« zu
beobachten. Solch ein Aufruf müsste dann für jede Konfigurationsdatei,
die »wget« liest, zu sehen sein.

Auf meinem Rechner hier (Ubuntu-Linux »Breezy Badger«) heißt das Programm
»strace«; gefunden habe ich seinen Namen mittels des Kommandos

man -k trace

, das mir die Namen aller Manual-Pages anzeigt, in deren Titel die
Buchstabenreihe »trace« vorkommt.

Ich könnte apropos bieten, da habe ich vor allem ktrace,
ptrace, truss, strace, trace

Bei mir sieht das mit »strace« so aus: Das Kommando

strace -e trace=open wget --input-file - < /dev/null

liefert die Ausgabe

Das ist bei mir sehr interessant:
:strace: open("/proc/...", ...): No such file or directory
:trouble opening proc file

Huch! Ein »strace«, das ein »proc«-Dateisystem erwartet, aber keines
vorfindet, ziemlich seltsam. Da scheint etwas nicht zusammenzupassen.
Laufen die anderen Trace-Programme besser?

Unter Linux finden sich in »/proc/« Unterverzeichnisse, deren Namen die
Nummern von Prozessen in dezimaler Form sind, also »/proc/1/«,
»/proc/2/«, ... usf. In jedem dieser Unterverzeichnisse gibt es Dateien,
symbolic links und weitere Verzeichnisse, die die Prozessumgebung
beschreiben, etwa ein symbolic link auf das current directory, eine
Datei, deren Inhalt die beim Start des entsprechenden Programms
übergebene Parameterliste darstellt, ein symbolic link auf das Programm,
das gerade ausgeführt wird, ein Verzeichnis, in dem symbolic links (mit
der Dateideskriptornummer als Name) auf die gerade geöffneten Dateien
stehen, u.a.

Diese Dateien, symbolic links und Unterverzeichnisse sind nicht wirklich
im Dateisystem vorhanden, das Betriebssystem gaukelt sie nur vor.

Wenn Du im Shell

$ ls -lA -- /proc/"$$"/fd

eingetippst, zeigt es Dir -- vorausgesetzt, Du hast so ein
»proc«-Dateisystem --, welche Dateien es geöffnet hat.

Dann könntest Du ihn mal bitten, ein Probeaccount einzurichten,
am besten eines, dessen Benutzerkennung nur aus höchstens 8
Kleinbuchstaben besteht. Eventuell kannst Du dann auch noch Deine
»wget«-Konfigurationsdatei und »my_wget« dorthin übertragen.

Und dann rufe mal dort »my_wget« auf. Tritt der Fehler auf?

Wird einen Moment dauern.

Falls er da auch auftritt, vermute ich irgendeinen Fehler im Zusammenhang
mit dem durchgeführten Update.
--
Wer mir E-Mail schreiben will, stelle | When writing me e-mail, please
bitte vor meine E-Mail-Adresse meinen | precede my e-mail address with
Vor- und Nachnamen, etwa so: | my full name, like
Helmut Waitzmann <xxx@xxxxxxxxxxx>, (Helmut Waitzmann) xxx@xxxxxxxxxxx
.



Relevant Pages

  • Re: tar verzeichnisweise
    ... >diesen Parametern durchaus kann. ... Welche leeren Verzeichnisse? ... Um Mengen von Dateien ... Wenn Sie mir E-Mail schreiben, stellen | When writing me e-mail, please ...
    (de.comp.os.unix.shell)
  • Re: 2 Installationen: Uhrzeit immer falsch
    ... wann die neugestellte Kernel-Zeit auf die Dateien wirkt. ... Mit dem Verstellen des Kernel-Offsets im laufenden Betrieb habe ich noch ... Wer mir E-Mail schreiben will, stelle | When writing me e-mail, please ... Helmut Waitzmann, xxx@xxxxxxxxxxx ...
    (de.comp.os.unix.linux.misc)
  • Re: db4o - rekursives Löschen der meisten Felder / Baumstrukturen
    ... Verzeichnisse und Dateien haben keine Gemeinsamkeiten. ... Objekt in die Klasse A kommt, sondern die Felder der Klasse B direkt ...
    (de.comp.lang.java)
  • [MiKTeX] miktex.ini und GraphicsPath
    ... ich schaffe es nicht, MiKTeX so zu konfigurieren, dass immer wieder ... Verzeichnisse gelegt. ... einen eigenen Pfad anzulegen -- unter peinlichst genauer ... Die dort abgelegten Dateien ...
    (de.comp.text.tex)
  • Re: Anzahl Dateien in einem Verzeichnis
    ... Scheinbar meinst Du die Anzhal der Dateien rekursiv. ... public class RecursivFileCount ... final FileAndFolderCountVo fileAndFolderCountVo = ... Rekursives Zählen Dateien und Verzeichnisse. ...
    (de.comp.lang.java)