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
NPM-RUN-SCRIPT(1)                                                                                                                NPM-RUN-SCRIPT(1)

NAME
npm-run-script - Run arbitrary package scripts SYNOPSIS
npm run-script <command> [--silent] [-- <args>...] alias: npm run DESCRIPTION
This runs an arbitrary command from a package's "scripts" object. If no "command" is provided, it will list the available scripts. run[-script] is used by the test, start, restart, and stop commands, but can be called directly, as well. When the scripts in the package are printed out, they're separated into lifecycle (test, start, restart) and directly-run scripts. As of ` https://blog.npmjs.org/post/98131109725/npm-2-0-0, you can use custom arguments when executing scripts. The special option -- is used by getopt https://goo.gl/KxMmtG to delimit the end of the options. npm will pass all the arguments after the -- directly to your script: npm run test -- --grep="pattern" The arguments will only be passed to the script specified after npm run and not to any pre or post script. The env script is a special built-in command that can be used to list environment variables that will be available to the script at run- time. If an "env" command is defined in your package, it will take precedence over the built-in. In addition to the shell's pre-existing PATH, npm run adds node_modules/.bin to the PATH provided to scripts. Any binaries provided by locally-installed dependencies can be used without the node_modules/.bin prefix. For example, if there is a devDependency on tap in your package, you should write: "scripts": {"test": "tap test/*.js"} instead of "scripts": {"test": "node_modules/.bin/tap test/*.js"} to run your tests. The actual shell your script is run within is platform dependent. By default, on Unix-like systems it is the /bin/sh command, on Windows it is the cmd.exe. The actual shell referred to by /bin/sh also depends on the system. As of ` https://github.com/npm/npm/releases/tag/v5.1.0 you can customize the shell with the script-shell configuration. Scripts are run from the root of the module, regardless of what your current working directory is when you call npm run. If you want your script to use different behavior based on what subdirectory you're in, you can use the INIT_CWD environment variable, which holds the full path you were in when you ran npm run. npm run sets the NODE environment variable to the node executable with which npm is executed. Also, if the --scripts-prepend-node-path is passed, the directory within which node resides is added to the PATH. If --scripts-prepend-node-path=auto is passed (which has been the default in npm v3), this is only performed when that node executable is not found in the PATH. If you try to run a script without having a node_modules directory and it fails, you will be given a warning to run npm install, just in case you've forgotten. You can use the --silent flag to prevent showing npm ERR! output on error. You can use the --if-present flag to avoid exiting with a non-zero exit code when the script is undefined. This lets you run potentially undefined scripts without breaking the execution chain. SEE ALSO
o npm help 7 scripts o npm help test o npm help start o npm help restart o npm help stop o npm help 7 config January 2019 NPM-RUN-SCRIPT(1)
All times are GMT -4. The time now is 08:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy