Używanie znaku % w wpisach crontab
Napisał: Patryk Krawaczyński
26/12/2011 w Administracja Brak komentarzy. (artykuł nr 336, ilość słów: 153)
Z
nak procentu [ % ] w wpisach crontab jest specjalnym znakiem oznaczającym znak nowej linii. Dlatego każdy wpis z tym znakiem nie zadziała – dopóki nie umieścimy znaku ESC [ \ ] przed nim. Na przykład poniższy wpis:
1 0 * * * /bin/sleep `/usr/bin/expr $RANDOM % 600` ; /usr/local/bin/komenda
którego zamiarem jest cogodzinne uruchamianie z losowym opóźnieniem wybranej komendy zostanie – zignorowane ze względu na fakt, że cron zaraz po znaku % zignoruje resztę wpisu i uruchomi jedynie: /bin/sleep `/usr/bin/expr $RANDOM, co zwróci losową liczbę z zakresu 0-32767 i opuści program.
W celu poprawnego uruchomienia całego polecenia należy “wyescejpować” znak %:
1 0 * * * /bin/sleep `/usr/bin/expr $RANDOM \% 600` ; /usr/local/bin/komenda
Jest to jeden z często spotykanych problemów w przypadku wpisywania do crontab’a poleceń zawierających komendę date przyjmującą format daty z znakami % np. date +%d-%m-%Y (który powinien w crontabie przyjąć formę: +\%d-\%m-\%Y).
Więcej informacji: crontab