Następujące polecenie działa z wiersza polecenia, ale nie z pliku crontab.
grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com
Muszę dodać to do codziennego crona.
Następujące polecenie działa z wiersza polecenia, ale nie z pliku crontab.
grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com
Muszę dodać to do codziennego crona.
Odpowiedzi:
Musisz uciec od %
znaków. Mają szczególne znaczenie w crontabs:
man (5) crontab:
Percent-signs (%) in the command, unless escaped with backslash (\),
will be changed into newline characters, and all data after the
first % will be sent to the command as standard input.
date +%F
i był donikąd
SHELL=/bin/bash
, zawsze mogę przepisać cat %Hello world
jako cat <<<'Hello world'
. Nie widzę potrzeby specjalnej składni.
To nie odpowiada bezpośrednio na twoje pytanie, ale sugerowałbym, abyś utworzył plik skryptu w / usr / local / bin (lub ~ / bin lub cokolwiek innego, co jest odpowiednie) i wywołaj go z crona. Łatwiej jest testować i edytować.