Sending output from php script called from bash script to syslog

Im trying to create a bash script (to be called by a cron job) which calls a php file (which I have not made). Calling the php file is easy enough. The php script output a lot of stuff to stdout and I would like to redirect the output from the php script to logger so that I can monitor the progress in my remote syslog server.

I've tried something like:

ME=basename $0

LOGGER="logger -p cron.notice -t $ME"

php the_php_script.php &> eval $LOGGER

Also tried:
php the_php_script.php | eval $LOGGER
But neither work.

Another possible solution I've considered is to pipe the output from the php script to a log file, and then have another bash script read that file and write each line to a logger. But I would like to have one script which does everything :)

Can anyone please help?

  • I'd look if there isn't a syslog client implementation in php first and use logger if there's none : That will allow you to control logging line per line inside the_php_script.php; edit : php.net/manual/en/function.syslog.php
    – user130370
    Jan 5, 2013 at 20:56

1 Answer 1


Your calls to logger are failing because $LOGGER isn't the command. Try this instead:

LOGGER_OPTS="-p cron.notice -t $ME"

php whatever.php | $LOGGER $LOGGER_OPTS
  • Wow, that was a fast reply And it even works! Thanks a lot :)
    – Lonos
    Jan 5, 2013 at 21:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.