Re: wget will unbedingt fremde Sites mit einsammeln
- From: Helmut Waitzmann <Helmut.Waitzmann@xxxxxx>
- Date: Fri, 30 Mar 2007 04:00:58 +0200
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
.
- References:
- Re: wget will unbedingt fremde Sites mit einsammeln
- From: Boris 'pi' Piwinger
- Re: wget will unbedingt fremde Sites mit einsammeln
- From: Helmut Waitzmann
- Re: wget will unbedingt fremde Sites mit einsammeln
- From: Boris 'pi' Piwinger
- Re: wget will unbedingt fremde Sites mit einsammeln
- From: Helmut Waitzmann
- Re: wget will unbedingt fremde Sites mit einsammeln
- From: Boris 'pi' Piwinger
- Re: wget will unbedingt fremde Sites mit einsammeln
- Prev by Date: Re: killall -HUP squid beendet Prozess
- Next by Date: Re: Dynamischer Datei-Inhalt / Ergebnis eines Skriptes statt Datei-Inhalt
- Previous by thread: Re: wget will unbedingt fremde Sites mit einsammeln
- Next by thread: Re: wget will unbedingt fremde Sites mit einsammeln
- Index(es):
Relevant Pages
|