Hallo, Am Tue, 01 Feb 2005, Wolfgang Hinsch schrieb:
Am Dienstag, 1. Februar 2005 15:10 schrieb David Haller:
Am Tue, 01 Feb 2005, Wolfgang Hinsch schrieb: [..]
Gibt es auch einen Parameter für maximale Zeilenlänge oder maximale Übergabeparameter an Funktionen? Wenn man die Zeilenlänge auf ca 128000 Zeichen begrenzen könnte, wäre das evtl ein Workaround.
Ja, gibt es, das ist schon im Kernel/der Shell definiert.
Ich habe jetzt nochmal nachgeschaut, der eigentliche Fehler war ja, dass md5sum eine zu lange Kommandozeile uebergeben wurde und somit nicht ausgefuehrt werden konnte. Kannst du evtl. mal den Returncode ueberpruefen, der muesste eigentlich 'E2BIG' "Argument list too long" sein.
126 Argument list too long
*g*
Was die Begrenzung angeht: das muesste man eigentlich vorher machen, denn der Fehler kommt _wegen_ der Begrenzung. Woher kommen eigentlich diese pervers langen Dateinamen?
Die sind eigentlich gar nicht so lang, nur so um die 180 Zeichen. Aber er will 1423 (!) Filenamen gleichzeitig übergeben. Und dann streikt md5sum.
Achso. Das ist dann ein Fehler von StoreBackup.
Die Begrenzung wollte ich eigentlich so angeben, dass storeBackup sich mäßigt. Wo hat der Bengel eigentlich diesen riesigen Wert für die Zeilenlänge oder Argumentliste her??
Keine Ahnung. Normal wird die von configure abgefragt, aber viele Programme verwenden die wohl nicht. Da muesste man sich mal SB selber anschauen, wie md5sum aufgerufen wird. Ausserdem ist das eh eigenartig, denn perl bringt Digest::MD5 mit. Und SB ist doch in perl, oder? So, ich hab mir jetzt storeBackup mal runtergeladen. Du kannst die Parameterlaenge in StoreBackup.pl aendern. Schau bitte mal in die Logdatei, wenn du dort einen Infostring in der Art: setting ARG_MAX to <WERT> und die Ausgabe von 'uname' "Linux" ist, dann kannst du in Zeile 125 den Wert hinter "'Linux' => " anpassen: my (%execParamLength) = ('AIX' => 22 * 1024, 'Linux' => 124 * 1024); Ich wuerde mal '120 * 1024' probieren, und dann '60 * 1024'. Bei mir ist die maximale Laenge 64 kB... Schau mal, ob du in einem config.log den string 'checking the maximum length of command line arguments' findest, den Wert kannst du dann verdoppeln und dann auf ganze KB abrunden (bzw. noch etwas mehr abziehen). HTH, -dnh -- "DOS=HIGH ...I knew it was on something!" (UNIX user, while reading C:\CONFIG.SYS)