Cron shell script not executing diskutil command

Thread Tools Search this Thread
# 1  
Code Cron shell script not executing diskutil command

I'm trying to learn how to use cron for repetative tasks. I have an external disk that needs to be unmounted and remounted every hour due to some problems that a backup utility (specifically, TimeMachine) is having repeatedly accessing the device. I've created a shell script that will find the mount point of the drive, unmount it, and then remount it. Here's the code:

# Finds the device node of the drive 'Rebel Base', and saves it to variable i
export i=`diskutil info 'Rebel Base' | grep 'Device Node' | cut -d : -f 2 | sed 's/^ *//g' | sed 's/ *$//g';`
# unmounts device found at variable i
hdiutil unmount -force $i
sleep 1
# remounts device found at variable i
hdiutil mountvol $i

When I run this as a shell script, it works just fine. However, cron returns the following error:

line 4: diskutil: command not found
hdiutil: unmount: no file specified
Usage: hdiutil unmount [options] <mountpoint>
hdiutil unmount -help
hdiutil: mountvol: no device specified
Usage: hdiutil mountvol [options] <devname>
hdiutil mountvol -help

My cron looks like this:

* 9-16 * * 1-5 sh /Users/danielmarcus/Dropbox/programming/

What am I doing wrong here? Any and all help is very much appreciated.
# 2  
Get the PATH to hdiutil:
type hdiutil
which hdiutil

and set that at the beginning of your script:
export PATH

This User Gave Thanks to MadeInGermany For This Post:
# 3  
If you do not declare a PATH variable in your script or crontab then the PATH will be

hdiutil manipulates disk images. It will unmount attached file systems but you should be using diskutil to unmount them. diskutil may not need the device node to unmount a file system. I think you can use the mount point. If you want to use the device node then the following should work
mount | awk '/Rebel Base/ {print $1}'

You should not need to unmount and mount a file system in order to make your backup strategy work. It might be time to rethink what you are doing.
This User Gave Thanks to xbin For This Post:
# 4  
This worked out well - I no longer get the error message I was getting previously. Since this is a workaround for another unknown issue, it will suffice until I figure out what the problem is with timemachine accessing the disk.

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Troubles running DB2 command in shell script via cron

Hi there, Now I'm facing error regarding running shell script via cron. The shell script which is required to get value from database. Below is the main part of shell script. #/bin/bash #connect to database(1) db2 connect to $database user xxxx using yyyy #set values from... (3 Replies)
Discussion started by: Rohan Kishibe
3 Replies

2. Shell Programming and Scripting

Executing 'exit' command from shell script

Hi, I am writing shell script to automate few use cases for CLI interface. We have CLI interface which has bunch of commands. I am trying to execute one of the commands 'exit' as part of automation to exit from CLI object (not from shell script) in my shell script. My intension is to execute... (4 Replies)
Discussion started by: Mahesh Desai
4 Replies

3. Shell Programming and Scripting

Script not executing using cron

Hi, I created a script which connects to database and update a table. This script is running fine when i run it manually but when i am trying to execute it scheduling in crontab.script is executing but Data is not getting updated. below is my script sqlplus test/##### >> test_feed.log <<!... (6 Replies)
Discussion started by: sv0081493
6 Replies

4. UNIX for Dummies Questions & Answers

Executing a tar command with the --exclude option in a Debian shell script.

Hi All, I am trying to execute the following tar command with two --exclude options to suppress extract of the two directories specified. Do I need to single quote the directory paths ?? Many thanks for your help. The relevant code excerpt from the script is: cd /var/www/${SITE} ... (7 Replies)
Discussion started by: daveu7
7 Replies

5. Shell Programming and Scripting

executing command in a remote machine through ssh - shell script

Hi All, i have two machines like x and y . my requirement is i should connect to machine Y from x through ssh connection . and do some operation such as copy and move and delete files in Y machine . i tried with this code but it is doing in machine x only . and i need to exit from Y when... (1 Reply)
Discussion started by: rateeshkumar
1 Replies

6. Shell Programming and Scripting

Problem with executing a shell script through the cron

Hi, I have a shell script as below: ORACLE_HOME=/usr/local/opt/oracle/product/dev export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin:/usr/bin export PATH OUTFILE=/export/home/`basename $0`.out export OUTFILE export IDEN df -k . | tail -1 | read a b c d e f echo $a >> $OUTFILE echo $b... (4 Replies)
Discussion started by: Abhinav Pandey
4 Replies

7. Shell Programming and Scripting

Problem Executing Firmware Command using Shell Script

Guys, I have a script that should change one of the configuration Parameter in a http accelerator, this config change which will halt http traffic into device. So I have designed a script which should do these changes. But after executing this script, found that one of the input variable is not... (8 Replies)
Discussion started by: raghunsi
8 Replies

8. UNIX for Dummies Questions & Answers

Problem with executing command inside a cron job

Hi All, I have scheduled a script in cron which writes output to the below file. ....>> /data/Target/wrapper_invoke_ds_job_`date '+%Y%m%d'`.ksh_out 2>&1 But the date command is not getting resolved in the format specified. It just resolves to the following. wrapper_invoke_MQ_ds_job_Tue... (3 Replies)
Discussion started by: pkm_oec
3 Replies

9. Shell Programming and Scripting

Error executing shell command from a perl script

Hi Gurus, I've a find command that gets the list of files from a source directory where the extension is not html, xml, jsp, shtml or htaccess. The below find command runs fine from the command prompt or in a shell script. I need to eventually run it in a PERL script and am getting the... (5 Replies)
Discussion started by: voorkey
5 Replies

10. HP-UX

executing shell script from the cron

This isn't the usual problem that a shell script runs from the command line and not the cron. It's a little different. Among other things, the shell scrip executes my .profile to set a bunch of variables. It then does an env to ensure that it ran OK. There are echos in the shell script and... (2 Replies)
Discussion started by: abNORMal
2 Replies

Featured Tech Videos