crontab script

Hi All,

I am running a script to find the CPU and memory utilization of the server. Script name is atul. When i run this script then it gives the desired output as DATE, CPU and MEMORY utilization....as mentioned below:

[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat atul
A=`date| cut -d" " -f1-4; top -d 1 -n 1 | awk '/^CPU states/ {print $3,$5,$7,$9} /^Mem/ {print $2,$3,$4,$5,$6,$7,$8,$9,$10}'`
echo $A
[core4.1_txn5@stack1-srv1 SCRIPTS]$ ./atul
Mon Sep 12 12:49:33  8309804k total, 1758772k used, 6551032k free, 55464k buffers
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ ./atul >> output
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat output
Mon Sep 12 12:50:03  8309804k total, 1759764k used, 6550040k free, 55736k buffers
[core4.1_txn5@stack1-srv1 SCRIPTS]$

However, when i run this script through crontab, it gives incomplete output. It only display the date and not the cpu and memory utilization :wall::

[core4.1_txn5@stack1-srv1 SCRIPTS]$ crontab -l
* * * * * ./SCRIPTS/atul >> /home/core4.1_txn5/SCRIPTS/output
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat output
Mon Sep 12 12:50:03  8309804k total, 1759764k used, 6550040k free, 55736k buffers
Mon Sep 12 12:51:01
Mon Sep 12 12:52:01
Mon Sep 12 12:53:01

Kindly, provide me the solution....as i want complete output after running the CRONTAB.

just give a try with " (double quotes)

 
echo "$A"

Thanks for the reply..i have tried but still result is same.. :(:wall:

[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat atul
A=`date| cut -d" " -f1-4; top -d 1 -n 1 | awk '/^CPU states/ {print $3,$5,$7,$9} /^Mem/ {print $2,$3,$4,$5,$6,$7,$8,$9,$10}'`
echo "$A"
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ crontab -l
* * * * * ./SCRIPTS/atul >> /home/core4.1_txn5/SCRIPTS/output
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ date
Mon Sep 12 13:51:02 IST 2011
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat output
Mon Sep 12 13:47:01
Mon Sep 12 13:48:01
Mon Sep 12 13:49:01
Mon Sep 12 13:50:02
 
A=`top -d 1 -n 1 | awk '/^CPU states/ {print $3,$5,$7,$9} /^Mem/ {print $2,$3,$4,$5,$6,$7,$8,$9,$10}'`
B=`date| cut -d" " -f1-4`
echo $B $A

Thanks for the suggestion...I have executed only $A as per your suggestion..its working fine from command but displaying NO/BLANK Output.

[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat aa
A=`top -d 1 -n 1 | awk '/^CPU states/ {print $3,$5,$7,$9} /^Mem/ {print $2,$3,$4,$5,$6,$7,$8,$9,$10}'`
echo $A
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ ./aa >> opt
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ cat opt
8309804k total, 2025836k used, 6283968k free, 100812k buffers
[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$ crontab -l

          • ./SCRIPTS/aa >> /home/core4.1_txn5/SCRIPTS/opt
            [core4.1_txn5@stack1-srv1 SCRIPTS]$
            [core4.1_txn5@stack1-srv1 SCRIPTS]$ cat opt
            8309804k total, 2025836k used, 6283968k free, 100812k buffers

[core4.1_txn5@stack1-srv1 SCRIPTS]$
[core4.1_txn5@stack1-srv1 SCRIPTS]$

As you can see, its showing blank output in the OPT file.

As i m reading many forums..i think the problem is that, in my case, the AWK command is not working through Crontab. I am not sure but i think this is due to some ENVIREMENT ISSUE...something I have to declare in the script so that it can read..

Please correct me if m wrong..

try with full path of awk command