Cron Job failure - No such file or directory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Cron Job failure - No such file or directory
# 1  
Old 09-23-2014
Cron Job failure - No such file or directory

Hi all,

I'm having an issue with a script i wrote to pull information from the Amazon AWS API. Basically the script takes arguments from the command line and attempts to grab user information for each AWS access group. The command is issued like this:

# sh awsReport.sh <outputFileName> <AWS Authentication Profile Name>

Code for the script:
Code:
#!/bin/bash
# AWS user reports
# user list as array (per account)

usage () {
        echo $'\t'"Usage: $0 OUTPUT_FILE_NAME AWS_PROFILE_NAME"
        exit $1
}

#Get date, append to file name, append CSV 
_now=$(date +"%m_%d_%Y")
OUTPUT_FILE="$1_$_now.csv"; shift
PROFILE="$1"; shift
[[ "$OUTPUT_FILE" != "" ]] || { echo $'\n\n\t'"ERROR: no output file defined. Exiting."; usage 1; }
[[ "$PROFILE" != "" ]] || { echo $'\n\n\t'"ERROR: no AWS Profile file defined. Exiting."; usage 2; }

# check for file...
[[ -f "$OUTPUT_FILE" ]] && echo $'\n\n'"*****  Report Date: (date) *****" >> $OUTPUT_FILE

#Query AWS
USERS=(`aws iam list-users --profile $PROFILE --output text|awk '{print $6}'`)

for u in ${USERS[@]}; do
    echo "UserName = "$u >> $OUTPUT_FILE
    echo "GroupMembership:" >> $OUTPUT_FILE
    echo -n $'\t';aws iam list-groups-for-user --profile $PROFILE --output json --user-name $u|jq 'reduce .Groups[].GroupName as $item (""; . +$item+", ")' >> $OUTPUT_FILE
    echo "*************" >> $OUTPUT_FILE
done

#mail report to security
mail -s "AWS User Report" -a /root/Scripts/$OUTPUT_FILE security@someCompany.com < /root/Scripts/$OUTPUT_FILE
exit 0

Crontab file:
Code:
#!/bin/bash
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=security@servicesource.com
HOME=/
* * * * * /root/Scripts/awsReportTest.sh awsUserReportV1 awsV1prod

And finnaly the Crontab error i'm getting:

Code:
/root/Scripts/awsReportTest.sh: line 28: /root/Scripts/awsUserReportV1_09_23_2014.csv: No such file or directory

When I run the script from the CLI everything works file. I can change the arguments to run the script for our other environments and it works fine. I get this error only when the script is executed from Cron, any ideas?

Thanks,
Choco

Last edited by vbe; 09-24-2014 at 05:13 AM..
# 2  
Old 09-23-2014
The job started by a cron will have user's home directory as current directory, I'd guess when you run your commands from CLI your current directory is different; Try to add cd /your/target/dir; before your command in the crontab entry, like so:

Code:
 
 1 2 * * * cd /your/target/dir; your_script_name;

This User Gave Thanks to migurus For This Post:
# 3  
Old 09-24-2014
Thank you for the reply, migurus. I edited the crontab as you suggested and am getting the error:

Code:
awsReportTest.sh: line 18: aws: command not found
awsReportTest.sh: line 28: /root/Scripts/awsUserReportV2testfile: No such file or directory

It seems that the file is actually not being created when run as a cron job. When run manually from the command line ie:
Code:
/root/Scripts/# sh awsReportTest.sh awsUserReportFile awsAccessProfile

the file gets created correctly.

I did an ls on the directory after the cron and it's not creating the file 'awsUserReportFile'....

Any other suggestions?
# 4  
Old 09-25-2014
command not found meant system did not see the executable file you are trying to run - the path to it is probably set in your .profile, or some other way. Keep in mind that when cron creates very limited environment for its processes, the .profile (or another startup) is not used by cron. you need to explicitely specify where the executable file is, like cd /your/path; /your/exec/path/execfile arguments ... ;
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Add TimeStamp to cron job and write file name sent

Hello, I have written a cron job to automate the sftp of files using key authentication. I wanted to add a timeStamp and name of file sent to a log file and append each these details to the same file each time files are sent and if possible include whether the files were sent successfully or not.... (3 Replies)
Discussion started by: KidKoder
3 Replies

2. Shell Programming and Scripting

autosys job configuration for job failure.

We need to configure autosys that when a job fails continously for 3 times, we need to call another job. Is this possible in Autosys, or can anyone advice on the alternative. (2 Replies)
Discussion started by: sangea
2 Replies

3. Shell Programming and Scripting

Running script file using cron job every 5 second

Hi All, I beginner in unix, i have no idea how to set the script file using cron job every 5 second. I also want to execute automatically the output to text file.This is my script name countsys.sh and my textfile abc.txt. (6 Replies)
Discussion started by: mastercar
6 Replies

4. Shell Programming and Scripting

Cron job to move file from one directory to another

Hi, I have following directory structure Media (Inside media directory I have two folders namely videos and images) -->videos -->images Inside media directory I have some video files with extension .mp4 and images with extension of .jpg and .jpeg I want to write a cron job which will... (3 Replies)
Discussion started by: tusharkale
3 Replies

5. Shell Programming and Scripting

Cron job failure

The crontab entry looks like this... 29 13 * * * /usr/bin/mk-find --printf "%D\ %N\n" | This is just a part of a long statement that has apostrophe in it. I will like to know why does it work at command prompt but fail if set as cronjob? The error is... /bin/sh: -c: line 0: unexpected EOF... (3 Replies)
Discussion started by: shantanuo
3 Replies

6. Shell Programming and Scripting

file size-cron job

Dear all, I have the following case,, i need to transfer a group of file from one server to another ....when the size of any of these file reach a specified value (Ex: 10MB) i need to transfer it to another server ....my problem is that i dont know how to determine when the size of the file... (1 Reply)
Discussion started by: mm00123
1 Replies

7. UNIX for Dummies Questions & Answers

CRON job to execute all scripts in a directory

Hi everyone: I'm trying to make a CRON job that will execute Fridays at 7am. I have the following: * 7 * * 5 I've been studying up on CRON and I know to have this in a file and then "crontab filename.txt" to add it to the CRON job list. The CRON part I believe I understand, but I would... (6 Replies)
Discussion started by: Annorax
6 Replies

8. UNIX for Dummies Questions & Answers

cron job to run php file

Hello, I have searched and searched google to do this and i want my websever to be able to run a php file everyday automatically. How do I go about doing this? Php is installed as an apache module not CGI. Thank you! (3 Replies)
Discussion started by: christo16
3 Replies

9. Shell Programming and Scripting

Conditional File Movement script scheduled using CRON job

Hi All, i am trying to automate a process and have to create a unix script like wise. I have a scenario in which i need to automate a file movement. Below are the steps i need to automate. 1. Check whether a file (Not Fixed name-Pattern search of file say 'E*.dat') is present in a... (2 Replies)
Discussion started by: imu
2 Replies

10. UNIX for Advanced & Expert Users

Cron job failure - passwd aging feature

I have a script running as a cron job in machine A . This script ftps some files everyday from machine A to machine B, and mails me about the status. It works fine for some days....and suddenly stops running. By viewing the log files, I see that the script itself was not invoked by cron on those... (4 Replies)
Discussion started by: Deepa
4 Replies
Login or Register to Ask a Question