Sponsored Content
Top Forums Shell Programming and Scripting Cron Job failure - No such file or directory Post 302918503 by ChocoTaco on Tuesday 23rd of September 2014 06:31:06 PM
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..
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
S3GET(1p)						User Contributed Perl Documentation						 S3GET(1p)

NAME
s3get - Retrieve contents of S3 items SYNOPSIS
s3get [options] s3get [options] [ bucket/item ...] Options: --access-key AWS Access Key ID --secret-key AWS Secret Access Key Environment: AWS_ACCESS_KEY_ID AWS_ACCESS_KEY_SECRET OPTIONS
--help Print a brief help message and exits. --man Prints the manual page and exits. --verbose Output what is being done as it is done. --access-key and --secret-key Specify the "AWS Access Key Identifiers" for the AWS account. --access-key is the "Access Key ID", and --secret-key is the "Secret Access Key". These are effectively the "username" and "password" to the AWS account, and should be kept confidential. The access keys MUST be specified, either via these command line parameters, or via the AWS_ACCESS_KEY_ID and AWS_ACCESS_KEY_SECRET environment variables. Specifying them on the command line overrides the environment variables. --secure Uses SSL/TLS HTTPS to communicate with the AWS service, instead of HTTP. ENVIRONMENT VARIABLES
AWS_ACCESS_KEY_ID and AWS_ACCESS_KEY_SECRET Specify the "AWS Access Key Identifiers" for the AWS account. AWS_ACCESS_KEY_ID contains the "Access Key ID", and AWS_ACCESS_KEY_SECRET contains the "Secret Access Key". These are effectively the "username" and "password" to the AWS service, and should be kept confidential. The access keys MUST be specified, either via these environment variables, or via the --access-key and --secret-key command line parameters. If the command line parameters are set, they override these environment variables. CONFIGURATION FILE
The configuration options will be read from the file "~/.s3-tools" if it exists. The format is the same as the command line options with one option per line. For example, the file could contain: --access-key <AWS access key> --secret-key <AWS secret key> --secure This example configuration file would specify the AWS access keys and that a secure connection using HTTPS should be used for all communications. DESCRIPTION
Retrieves S3 items, and outputs them to stdout. BUGS
Report bugs to Mark Atwood mark@fallenpegasus.com. Occasionally the S3 service will randomly fail for no externally apparent reason. When that happens, this tool should retry, with a delay and a backoff. Access to the S3 service can be authenticated with a X.509 certificate, instead of via the "AWS Access Key Identifiers". This tool should support that. It might be useful to be able to specify the "AWS Access Key Identifiers" in the user's "~/.netrc" file. This tool should support that. Errors and warnings are very "Perl-ish", and can be confusing. Trying to access an item that does not exist or is not accessable by the user generates less than helpful error messages. Trying to retrieve a bucket instead of an item is silently skipped. TODO
option to write to files instead of stdout option to write to paths instead of stdout option to write to a tar file stream, for multiple items option to write extended file attributes based on S3 & HTTP metadata option to have a progress bar AUTHOR
Written by Mark Atwood mark@fallenpegasus.com. Many thanks to Wotan LLC <http://wotanllc.com>, for supporting the development of these S3 tools. Many thanks to the Amazon AWS engineers for developing S3. SEE ALSO
These tools use the Net::Amazon:S3 Perl module. The Amazon Simple Storage Service (S3) is documented at <http://aws.amazon.com/s3>. perl v5.10.0 2009-03-08 S3GET(1p)
All times are GMT -4. The time now is 12:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy