2014-11-25 19 views
5

Ich habe ein cron Problem mit curl:Prozentzeichen% arbeitet nicht in crontab

curl -w "%{time_total}\n" -o /dev/null -s http://myurl.com >> ~/log 

funktioniert super und eine Linie in Protokolldatei mit TOTAL_TIME hinzufügen.

Aber die gleiche Linie mit Cron tut nichts.

Es ist kein Problem, weil Weg curl http://myurl.com >> ~/log funktioniert.

+0

Haben Sie versucht zu entkommen '%'? 'curl -w" \% {time_total} \ n "' ... ' – fedorqui

+0

mögliches Duplikat von [Cron-Fehler bei der Verwendung von backquotes] (http://stackoverflow.com/questions/3444595/cron-error-with-using-using-) backquotes) – tripleee

Antwort

7

% ist ein Sonderzeichen für crontab. Von man 5 crontab:

Das „sechste“ -Feld (der Rest der Zeile) gibt den Befehl ausgeführt werden. Der gesamte Befehlsteil der Zeile, bis zu einem Newline- oder "%" - Zeichen, wird von/bin/sh oder von der Shell in der SHELL-Variablen des Cronfiles ausgeführt. Ein Zeichen "%" im Befehl wird, wenn es nicht mit einem umgekehrten Schrägstrich (\) zurückgeblättert wird, in Zeilenvorschubzeichen geändert, und alle Daten nach dem ersten% werden als Standardeingabe an den Befehl gesendet.

So müssen Sie den % Charakter entkommen:

curl -w "%{time_total}\n" -o /dev/null -s http://myurl.com >> ~/log 

zu

curl -w "\%{time_total}\n" -o /dev/null -s http://myurl.com >> ~/log 
     ^
+1

Funktioniert, danke :) – user3647822