1

I am a bit baffled here, and not really sure how to debug this. I have a self-written bash script, that checks if a samba share is active, and if not, sends me an email.

Script is in /root/SKRIPTS/, permission looks like this:

-rwxr-xr-x 1 root wheel 281 Nov 8 08:54 test_samba_shares.sh -rwx------ 1 root wheel 39 Nov 7 13:56 smbclient.cred 

Content of the .sh script is this:

smbclient -L 10.0.0.1 -A /root/SKRIPTS/smbclient.cred | grep -q Backup if [ $? -eq 0 ] then echo "Backup_* mounted, nothing to do" else echo "Subject: Samba has failed" | /usr/sbin/sendmail -v [email protected] fi return 1; 

/etc/crontab looks like this (entry only)

10 1 * * * root /root/SKRIPTS/test_samba_shares.sh 

The thing is, if I, as root, run this, it works flawlessly. But every night I get an email that samba has failed, indicating that the cron script somehow trips into the else path. How can this be? Am I missing something obvious here? What would be the best way to debug this?

Thanks for your help

2
  • 2
    First thing, if you what to make sure your bash script is being interpreted by bash, make #!/bin/bash the first line in the script. Otherwise cron may be executing the script under /bin/sh which may not link to bash and will certainly not give you all the features as /bin/bash. Commented Nov 12, 2018 at 15:28
  • For further troubleshooting, start with the cron tag's info page Commented Nov 12, 2018 at 18:16

1 Answer 1

5

Sometimes, cron jobs don't run with the $PATH that you might be expecting. First and foremost, I would try fully-qualifying the path to your smbclient executable, just to eliminate that as a possibility. Or, explicitly export your PATH in the wrapper script that's called by cron.

2
  • You can also set the PATH environment variable in the crontab file itself (but be sure to put that before the item you want it to apply to). Commented Nov 13, 2018 at 6:02
  • 1
    That was it, thanks a lot! I will keep the PATH issue in mind for the next scripts, greatly appreciated. Commented Nov 13, 2018 at 8:00

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.