Crontab is not working in printf


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Crontab is not working in printf
# 1  
Old 01-21-2013
Crontab is not working in printf

hi, i have a script as:

printf '%s -> %s\n' "$(date '+%Y-%m-%d %H:%M')" "$(/opt/gcsw/status -ne | fgrep 'State:2' | wc)"

which gives output as: 2013-01-18 13:00 -> 80 480 6529 and it is working fine.

now I want to put this into cronjob and write the output to a file in every 5 minutes:
Code:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * printf '%s -> %s\n' "$(date '+%Y-%m-%d %H:%M')" "$(/opt/gcsw/status -ne | fgrep 'State:2' | wc)" >> /var/tmp/gcsw/status.txt

i want to see the output as:
Code:
2013-01-18 13:00 -> 80 480 6529
2013-01-18 13:05 -> 85 480 6529
2013-01-18 13:10 -> 80 423 6329
2013-01-18 13:15 -> 71 460 6129
...

but file is not being updated Smilie i think there is a problem with printf with cronjob. any help?

Last edited by gc_sw; 01-21-2013 at 05:18 AM..
# 2  
Old 01-21-2013
Any error msgs? Pls keep in mind that processes launched by cron run in a reduced environment, and perhaps in another shell, so are you sure all commands are on the PATH var?
# 3  
Old 01-21-2013
there is not any error message but file is not being updated Smilie i didnot assign anything with PATH how can i solve it?
# 4  
Old 01-21-2013
a) did you look into the syslog files for cron entries?
b) enter PATH=... into crontab (cf man crontab)
# 5  
Old 01-21-2013
a) there is no entry related to cron in syslog
b) $PATH is defined as
Code:
/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/dt/bin:/usr/platform/SUNW,Sun-Fire-T200/sbin:/opt/SUNWexplo/bin:/opt/SUNWsneep/bin:/opt/CTEact/bin

can we modify the command without using printf?
# 6  
Old 01-21-2013
The % character has a special meaning in crontab entries.
Code:
man crontab
...

You need to escape each % as \%;
'text1%text2' becomes 'text1'\%'text2' and "text3%text4" becomes "text3"\%"text4" (i.e. two strings with a \% in between).
Code:
printf '%s -> %s\n' "$(date '+%Y-%m-%d %H:%M')" ...

becomes
Code:
printf \%'s -> '\%'s\n' "$(date '+'\%'Y-'\%'m-'\%'d '\%'H:'\%'M')" ...

This is so ugly that you better put the original code in an executable script, and run the script from the crontab.

Last edited by MadeInGermany; 01-21-2013 at 07:48 AM..
These 2 Users Gave Thanks to MadeInGermany For This Post:
# 7  
Old 01-21-2013
i have created a file (/var/tmp/gcsw/script.sh) and write:
Code:
printf '%s -> %s\n' "$(date '+%Y-%m-%d %H:%M')" "$(/opt/gcsw/gwstatus -ne | fgrep 'State:2' | wc)" >> /var/tmp/gcsw/status.txt

and created a cronjob as:
Code:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /var/tmp/gcsw/script.sh

but output /var/tmp/gokhan/status.txt is not correct. so cronjob is not working Smilie

PS: when I manually run:
Code:
printf '%s -> %s\n' "$(date '+%Y-%m-%d %H:%M')" "$(/opt/gcsw/gwstatus -ne | fgrep 'State:2' | wc)" >> /var/tmp/gcsw/status.txt

it is successfully OK.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Red Hat

Crontab is not working

Dear Friends, I have Red Hat Linux Enterprise version 6.3. running SAP and oracle. I have created one crontab for user orasid to execute one job periodically. But it is not executing. I have checked crontab service is running. Please help in the matter. Regards, Bhagawati Pandey (5 Replies)
Discussion started by: BPANDEY
5 Replies

2. Shell Programming and Scripting

Crontab not working

Hi All, I have a script with deatils as : $ ls -ld catch_logs.sh -rwx--x--x 1 muser muser 752 Jun 5 22:36 catch_logs.sh User crontab looks likes: $ crontab -l SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin * * * * * /opt/scripts/catch_logs.sh Now if I run this script... (7 Replies)
Discussion started by: Junaid Subhani
7 Replies

3. Shell Programming and Scripting

Printf %T not working

Dear All, this script was working well enough few days back. Now it started acting up. Could anyone please throw some lights about what may be the reason for it's not working. ts=$( printf "%(%s)T" "now" ) under debug mode this is what I get printf "%(%s)T" "now" ++ printf '%(%s)T'... (4 Replies)
Discussion started by: manas_ranjan
4 Replies

4. Linux

Crontab not working

Hi, I know this is a common topic. I'm trying to launch a perl script using a contab -e entry. I've been trying diff options but nothing seems to work: My cron is running: UID PID PPID C STIME TTY TIME CMD root 3755 1 0 Nov27 ? 00:00:00 crond This... (4 Replies)
Discussion started by: krebe
4 Replies

5. UNIX for Advanced & Expert Users

Crontab not working, please help

Hi, When I set the crontab to run every minute, every hour, it works fine. * * * * * env > /tmp/env.output However I want to run it every day at 8:00 AM and it does not run. * 8 * * * env > /tmp/env.output I ran the 'date' command which says it's 8AM PST and also the 'TZ'... (0 Replies)
Discussion started by: samantha13
0 Replies

6. Red Hat

crontab is not working!!

I can run manually script of ntopdump.sh but crontab can't run this script very five minutes. # crontab -l */3 * * * * root sh /root/ping.sh */5 * * * * root sh /root/ntopdump.sh # # pwd /root # ls -l total 88 -rwxrwxr-x 1 root root 1645 Jun 14 19:01 anaconda-ks.cfg drwxrwxr-x 2 root... (14 Replies)
Discussion started by: getrue
14 Replies

7. UNIX for Dummies Questions & Answers

crontab not working

Hi, I had setup crontab to execute my script every day midnight 00:00 Below are the current settings. crontab -l 0 0 * * * /apps/bin/compress.ksh_moht > /dev/null 2>&1 Should it not work? I need help fix this? (8 Replies)
Discussion started by: shifahim
8 Replies

8. Solaris

crontab is not working.

I have a script which name is sicaklik.sh It is in the root directory. I can run manually but I want to run automatically every 3 minutes but it is not working. WHY? #whoami root #crontab -l #ident "@(#)root 1.21 04/03/23 SMI" 3 * * * * sh ./sicaklik.sh #ls -l sicaklik*... (6 Replies)
Discussion started by: getrue
6 Replies

9. Programming

working of printf()

hello all, i came accross an aptitude question .. int main() { int a = 10, b = 20, c = 30; printf("%d\t%d\t%d"); } it gives output 30 20 10 what is the reason of such behaviour of printf(). thank you. (7 Replies)
Discussion started by: zius_oram
7 Replies

10. UNIX for Advanced & Expert Users

crontab NOT working

Hi, I have put the following entry in crontab and it is NOT working 1 * * * * && /mybin/myjob.sh As today is Sep 26th, Iam using NF-4 to test. Thanks (2 Replies)
Discussion started by: baanprog
2 Replies
Login or Register to Ask a Question