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:
Code:
#!/bin/sh
# 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:
Code:
* 9-16 * * 1-5 sh /Users/danielmarcus/Dropbox/programming/relaunchRebel.sh
What am I doing wrong here? Any and all help is very much appreciated.
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT FREEBSD
cron
CRON(8) BSD System Manager's Manual CRON(8)NAME
cron -- daemon to execute scheduled commands (Vixie Cron)
SYNOPSIS
cron [-j jitter] [-J rootjitter] [-m mailto] [-s] [-o] [-x debugflag[,...]]
DESCRIPTION
The cron utility should be started from /etc/rc or /etc/rc.local. It will return immediately, so you do not need to start it with '&'.
The cron utility searches /var/cron/tabs for crontab files which are named after accounts in /etc/passwd; crontabs found are loaded into mem-
ory. The cron utility also searches for /etc/crontab which is in a different format (see crontab(5)).
The cron utility then wakes up every minute, examining all stored crontabs, checking each command to see if it should be run in the current
minute. Before running a command from a per-account crontab file, cron checks the status of the account with pam(3) and skips the command if
the account is unavailable, e.g., locked out or expired. Commands from /etc/crontab bypass this check. When executing commands, any output
is mailed to the owner of the crontab (or to the user named in the MAILTO environment variable in the crontab, if such exists).
Additionally, cron checks each minute to see if its spool directory's modification time (or the modification time on /etc/crontab) has
changed, and if it has, cron will then examine the modification time on all crontabs and reload those which have changed. Thus cron need not
be restarted whenever a crontab file is modified. Note that the crontab(1) command updates the modification time of the spool directory
whenever it changes a crontab.
Available options:
-j jitter
Enable time jitter. Prior to executing commands, cron will sleep a random number of seconds in the range from 0 to jitter. This
will not affect superuser jobs (see -J). A value for jitter must be between 0 and 60 inclusive. Default is 0, which effectively
disables time jitter.
This option can help to smooth down system load spikes during moments when a lot of jobs are likely to start at once, e.g., at the
beginning of the first minute of each hour.
-J rootjitter
Enable time jitter for superuser jobs. The same as -j except that it will affect jobs run by the superuser only.
-m mailto
Overrides the default recipient for cron mail. Each crontab(5) without MAILTO explicitly set will send mail to the mailto mailbox.
Sending mail will be disabled by default if mailto set to a null string, usually specified in a shell as '' or "".
-s Enable special handling of situations when the GMT offset of the local timezone changes, such as the switches between the standard
time and daylight saving time.
The jobs run during the GMT offset changes time as intuitively expected. If a job falls into a time interval that disappears (for
example, during the switch from standard time) to daylight saving time or is duplicated (for example, during the reverse switch),
then it is handled in one of two ways:
The first case is for the jobs that run every at hour of a time interval overlapping with the disappearing or duplicated interval.
In other words, if the job had run within one hour before the GMT offset change (and cron was not restarted nor the crontab(5)
changed after that) or would run after the change at the next hour. They work as always, skip the skipped time or run in the added
time as usual.
The second case is for the jobs that run less frequently. They are executed exactly once, they are not skipped nor executed twice
(unless cron is restarted or the user's crontab(5) is changed during such a time interval). If an interval disappears due to the GMT
offset change, such jobs are executed at the same absolute point of time as they would be in the old time zone. For example, if
exactly one hour disappears, this point would be during the next hour at the first minute that is specified for them in crontab(5).
-o Disable the special handling of situations when the GMT offset of the local timezone changes, to be compatible with the old (default)
behavior. If both options -o and -s are specified, the option specified last wins.
-x debugflag[,...]
Enable writing of debugging information to standard output. One or more of the following comma separated debugflag identifiers must
be specified:
bit currently not used
ext make the other debug flags more verbose
load be verbose when loading crontab files
misc be verbose about miscellaneous one-off events
pars be verbose about parsing individual crontab lines
proc be verbose about the state of the process, including all of its offspring
sch be verbose when iterating through the scheduling algorithms
test trace through the execution, but do not perform any actions
FILES
/etc/crontab System crontab file
/etc/pam.d/cron pam.conf(5) configuration file for cron
/var/cron/tabs Directory for personal crontab files
SEE ALSO crontab(1), pam(3), crontab(5), pam.conf(5)AUTHORS
Paul Vixie <paul@vix.com>
BSD June 29, 2008 BSD