79 Stimmen

Wie kann man mehrere Parameter an einen Cron-Job mit curl übergeben?

Ich führe zwei Cron-Jobs aus:

Diese wird ohne Probleme ausgeführt:

curl -sS http://example.com/cronjob.php?days=1

Aber das läuft überhaupt nicht:

curl -sS http://example.com/cronjob.php?days=1&month=1

Liegt das an dem Ampersand ( & )? Wenn ja, wie können mehrere Parameter übergeben werden?

Verwendung von argv ist keine Option.

146voto

SamB Punkte 8630

Sie werden feststellen, dass dies auch in Ihrer Shell nicht wirklich funktioniert.

Dazu müssen Sie die URL in einfache Anführungszeichen setzen, etwa so:

curl -sS 'http://example.com/cronjob.php?days=1&month=1'

23voto

MMKarami Punkte 994

Als Alternative können Sie \ vor & verwenden, das ein Sonderzeichen für Shell ist. Im Allgemeinen ist & eines der Sonderzeichen, die für Shell von Bedeutung sind.

Die Verwendung eines Backslashs [neben der Quoting-Lösung] kann also eine gute Lösung für dieses Problem sein. mehr

In Ihrem Beispiel können Sie einfach diesen Befehl anwenden:

curl -sS http://example.com/cronjob.php?days=1\&month=1

7voto

streetparade Punkte 30394

Versuchen Sie eine POST-Anfrage

curl -d "days=1&month=1" www.example.com/cronjob.php

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X