Splunk Dev

Shell script won't execute a Python script.

jamaalsd
New Member

I am totally confused after many hours of trying to figure this out and I couldn't find any other posts similar enough to my problem. Here's my problem:

I want an alert to call a shell script (myShellScript.sh)

I then want myShellScript.sh to execute a Python script (myPythonScript.py) in the same directory.

myShellScript.sh looks like:

#!/bin/bash

./myPythonScript.py

myPythonScript.py looks like:

#!/usr/bin/env python

::python code here::

If I execute the shell script from the terminal it works. If I put in a shell script that doesn't try to run an executable into a Splunk alert message it works, but a sheel script that attempts to execute a command is a no-go. None of the logs (splunkd.log, scheduler.log, python.log) list any problems, the python executable has the proper permissions. Anybody know what's going on?

Labels (1)
0 Karma

murphybeck
New Member

You should do it the other way round, run python script inside screen:

screen -dm bash -c 'script -c "python test.py" output.txt'
0 Karma

abnev
New Member

When attempting to call a python script from a script, don't attempt to execute it directly using ./, instead call the interrupter to execute it for you. Something like this should suffice:

#!/bin/bash

SCRIPT_PATH="myPythonscript.py" 
PYTHON="/usr/bin/python"

# call script via the interrupter     
$PYTHON $SCRIPT_PATH

Also make sure that the permissions are right on both scripts (chmod +x) etc.

0 Karma

Ayn
Legend

You're assuming that the script's working directory is the path where it resides - however that's not the case. Scripts execute in the root path "/", so when you try to run "./myPythonScript.py" in the script that's equivalent to attempting to run "/myPythonScript.py".

If you reference your Python script using its full path, or for that matter change your working directory at the start of the shell script, your script will work.

Get Updates on the Splunk Community!

Announcing Scheduled Export GA for Dashboard Studio

We're excited to announce the general availability of Scheduled Export for Dashboard Studio. Starting in ...

Extending Observability Content to Splunk Cloud

Watch Now!   In this Extending Observability Content to Splunk Cloud Tech Talk, you'll see how to leverage ...

More Control Over Your Monitoring Costs with Archived Metrics GA in US-AWS!

What if there was a way you could keep all the metrics data you need while saving on storage costs?This is now ...