I have done it for so many times, setting a cronjob.
Today I was tring to set a simple cronjob which will output the log file with timestamp attached filename.
Hourly running cron entry was:
0 * * * * perl demo.pl > demo-out_`date "+%Y-%m-%d_%H-%M"`.log
Running the same command on shell prompt was working fine. Execute permissions and path were proper. But it kept on failing to create the proper log!!
I changed the crontab as follows, added \ before % to escape and voila!!
Things worked !!
0 * * * * perl test.pl > test-out_`date "+\%Y-\%m-\%d_\%H-\%M"`.log
A quick lesson.
Good to note some of the date changers in linux for finding yesterdays and tomorrows and so on:
date –date=”1 days ago”
date –date=”yesterday”
date –date=”next day”
date –date=”-1 day”
date –date=’tomorrow’
date –date=’1 day’
date –date=’10 day’
date –date=’10 week’
date –date=’10 month’
date –date=’10 year’
date –date=”next Friday”
To escape problems you should learn to escape “special characters” – Krex
P.S.:This works in real life as well 😉
1 comment
Your post helped me a lot. I was struggling on the same issue. I added \ before % and worked fine. Thanks a lot.