LINUX.ORG.RU
ФорумAdmin

Не работает команда в cron -e


0

0

С консоли (bash) работает вот такая команда
(/bin/sort -r -k 2,5 /tmp/rate-mail-`/bin/date "+%Y-%m-%d"`-10.10.txt | /bin/awk '{if ($2 > 1) {print}}') | /bin/mail -s 'Bla Bla' email@address
В crontab не работатет.
Пробовал и так 
bash -c "(/bin/sort -r -k 2,5 /tmp/rate-mail-`/bin/date "+%Y-%m-%d"`-10.10.txt | /bin/awk '{if ($2 > 1) {print}}') | /bin/mail -s 'Bla Bla' email@address"
все равно не работает.
Как только вместо `/bin/date "+%Y-%m-%d"` подставляешь результат этой команды все работает.
Нелп.
anonymous

Re: Не работает команда в cron -e

Попробуйте экранировать ковычки в crontab-е (это для случая с bash -c):
часть команды `/bin/date "+%Y-%m-%d"` переписать как `/bin/date \"+%Y-%m-%d\"`

Да, а из командной строки вариант с "bash -c" работает ?

spirit ★★★★★ ()

Re: Не работает команда в cron -e

`/bin/date +\%Y-\%m-\%d`

anonymous ()

Re: Не работает команда в cron -e

И не будет работать. Читай man 5 crontab про %
Лучше оформить ввиде скрипта и его запускать по крону.

Percent-signs (%) in the command,
       unless escaped with backslash (\), will be changed into newline charac-
       ters,  and  all  data  after the first % will be sent to the command as
       standard input. There is no way to split a  single  command  line  onto
       multiple lines, ala the shell's trailing "\".

sdio ★★★★★ ()
Ответ на: Re: Не работает команда в cron -e от sdio

Re: Не работает команда в cron -e

Пробовал много вариантов, заработал вариант такой.
bash -c "(/bin/sort -r -k 2,5 /tmp/rate-mail-`/bin/date "+\%Y-\%m-\%d"`-10.10.txt | /bin/awk '{if (\$2 > 1) {print}}') | /bin/mail -s 'Bla Bla' email@address"

Еще бэкслешем символ "$" нужно было защитить.

Всем спасибо.

anonymous ()

Re: Не работает команда в cron -e

Сохранил бы в файл и его запускал из крона.

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.