Cron Runs Script Twice - Once With Error and Once Without?
Drew Tomlinson
drew at mykitchentable.net
Fri Oct 14 07:21:24 PDT 2005
I have a script that runs from cron. The script mounts an smbfs share
on another machine, copies some files from it, and then unmounts the
share. The script is run from a 4.11 machine. It's connecting to a 5.4
box running Samba 3.0.20.
I'm trying to figure out why it runs twice. Once with an error and once
successfully. I get both emails at 0230 although the error email is
listed first. The success email is just as I'd expect but I don't
understand the error. The script runs without any errors interactively.
Here is the contents of the error email:
--- BEGIN ---
#! /bin/sh -v
# Save *.bsr files to this location
backup_dir="/root/bacula_bsr"
# Mount Blacklamb's /usr filesystem. Exit if error.
/sbin/mount -t smbfs //account at blacklamb/User /blacklamb &&
echo -e "/blacklamb mounted successfully.\n" || {
echo -e Unable to mount /blacklamb\. 1>&2
exit 1
}
smbfs: can't get handle to requester (no /dev/nsmb* device)
Unable to mount /blacklamb.
--- END ---
And here is the contents of the success email:
--- BEGIN ---
#! /bin/sh -v
# Save *.bsr files to this location
backup_dir="/root/bacula_bsr"
# Mount Blacklamb's /usr filesystem. Exit if error.
/sbin/mount -t smbfs //account at blacklamb/User /blacklamb &&
echo -e "/blacklamb mounted successfully.\n" || {
echo -e Unable to mount /blacklamb\. 1>&2
exit 1
}
/blacklamb mounted successfully.
# Test that $backup_dir exists ([ is actually /bin/test). If it does
# then continue. Otherwise create $backup_dir.
if [ -e $backup_dir ]; then
echo -e "$backup_dir exists!\n" 1>&2
else
{ mkdir $backup_dir &&
echo -e "Created ${backup_dir}.\n"
} || {
echo -e "Failed to create ${backup_dir}!!!\n";
exit 1
}
fi
/root/bacula_bsr exists!
# Move existing files to *.yesterday.
echo -e "Moving files..."
Moving files...
for i in `ls ${backup_dir}/*.bsr`; do
mv -v "$backup_dir"/`basename $i` "$backup_dir"/`basename $i`\.yesterday
done
/root/bacula_bsr/BackupCatalog.bsr -> /root/bacula_bsr/BackupCatalog.bsr.yesterday
/root/bacula_bsr/bigdaddy.bsr -> /root/bacula_bsr/bigdaddy.bsr.yesterday
/root/bacula_bsr/blacklamb.bsr -> /root/bacula_bsr/blacklamb.bsr.yesterday
/root/bacula_bsr/blacksheep.bsr -> /root/bacula_bsr/blacksheep.bsr.yesterday
/root/bacula_bsr/lillady.bsr -> /root/bacula_bsr/lillady.bsr.yesterday
/root/bacula_bsr/restore.bsr -> /root/bacula_bsr/restore.bsr.yesterday
/root/bacula_bsr/tv.bsr -> /root/bacula_bsr/tv.bsr.yesterday
# Copy files from Blacklamb.
echo -e "\nCopying files..."
Copying files...
for i in `ls /blacklamb/var/db/bacula/*.bsr`; do
cp -pv "$i" "$backup_dir" || {
echo -e "Error creating ${backup_dir}/${i}!!!"
}
done
/blacklamb/var/db/bacula/BackupCatalog.bsr -> /root/bacula_bsr/BackupCatalog.bsr
/blacklamb/var/db/bacula/bigdaddy.bsr -> /root/bacula_bsr/bigdaddy.bsr
/blacklamb/var/db/bacula/blacklamb.bsr -> /root/bacula_bsr/blacklamb.bsr
/blacklamb/var/db/bacula/blacksheep.bsr -> /root/bacula_bsr/blacksheep.bsr
/blacklamb/var/db/bacula/lillady.bsr -> /root/bacula_bsr/lillady.bsr
/blacklamb/var/db/bacula/restore.bsr -> /root/bacula_bsr/restore.bsr
/blacklamb/var/db/bacula/tv.bsr -> /root/bacula_bsr/tv.bsr
# Unmount Blacklamb's filesystem.
/sbin/umount /blacklamb && echo -e "\n/blacklamb unmounted successfully." || {
echo -e "\nUnable to unmount /blacklamb." 1>&2
exit 1
}
/blacklamb unmounted successfully.
exit
--- END ---
Here is the relevant crontab:
--- BEGIN ---
# Backup bootstrap files from Blacklamb.
MAILTO="root"
# Run after incrementals at 0230 (everyday except Sunday.)
30 2 * * 1-6 /usr/local/scripts/backup_bootstrap.sh
# Run 2-5th Sundays at 0230 - Differentials
30 2 8-31 * 7 /usr/local/scripts/backup_bootstrap.sh
# Run 1st Sunday at 0930 - Fulls
30 9 1-7 * 7 /usr/local/scripts/backup_bootstrap.sh
--- END ---
Any ideas on what is happening here?
Thanks,
Drew
--
Visit The Alchemist's Warehouse
Magic Tricks, DVDs, Videos, Books, & More!
http://www.alchemistswarehouse.com
More information about the freebsd-questions
mailing list