Reputation: 1
Hoping for a bit of advice or guidance on this one. I am not very familiar with most of this stuff but have managed to navigate and test and check to get to this point. Solving one error at at time!
Running Plesk 11.0.9 I am attempting to set up a simple Cron job running a shell script to detect mailboxes that are approaching full, so that I or the user can be notified and solve the issue.
Running the script as the root user under the assumption that this will check all mailboxes.
The script is from the Plesk forum (last post http://forum.parallels.com/showthread.php?106635-Qmail-e-mail-quota-notification-script-for-Plesk-9-3-10) where many users seem to have had success however on running the job I get this error
/usr/local/psa/bin/mboxfull.sh: line 26: bc: command not found
/usr/local/psa/bin/mboxfull.sh: line 32: bc: command not found
This seems like a very generic 'what is written won't work' error so my search hasn't given me much direction as to how to correct this issue.
Full script below with the 'offending' lines marked. Any help of direction would be very much appreciated!
#! /bin/bash
# Mail quota reaching it's limit e-mail notification
# script for Plesk 9.3+ / Plesk 10 & Qmail
# Modified by "Scy" from the original script
# provided by "azur99" in Plesk forum:
# http://forum.parallels.com/showthread.php?t=71666
#setenv QMAILUSER 'do-not-reply'
MAILROOT=/var/qmail/mailnames
cd $MAILROOT > /dev/null
for DIR in *.*;do
cd $MAILROOT/$DIR
for MAILBOX in * ;do
if [ -d $MAILBOX ]
then
# look for specific mailbox quota file and set mailbox softquota
QUOTAFILE=$MAILROOT/$DIR/$MAILBOX/Maildir/maildirsize
# Fetching mailbox quota size in bytes
HARDQUOTA=$((`head -1 $QUOTAFILE | cut -d S -f1`))
if [ "$HARDQUOTA" -eq 0 ]; then
continue
fi
# Fetching space used by mailbox in bytes
(THIS IS LINE 26!) MBOXSPACE=$((`tail -n +2 $QUOTAFILE | cut -c1-12 | paste -sd+|bc`))
# Calculate the quota limit required for mail warning (85% for default)
SOFTQUOTA=$((10 * $HARDQUOTA / 100))
# Calculate mailbox usage percentage (with two decimals)
(THIS IS LINE 32) MBOXPERCENT=$(echo "scale=2; $MBOXSPACE*100/$HARDQUOTA" | bc)
# Check if the mailbox is full enough for warning, and if, send the warning mail
if [ $HARDQUOTA -gt 0 -a $MBOXSPACE -gt $SOFTQUOTA ]; then
# Let's generate the values in megabytes (with two decimals)
HARDQUOTA=$(echo "scale=2; $HARDQUOTA/1048576" | bc)
if [ "$(echo $HARDQUOTA | cut -c1)" = "." ] ; then HARDQUOTA="0"$HARDQUOTA
fi
MBOXSPACE=$(echo "scale=2; $MBOXSPACE/1048576" | bc)
if [ "$(echo $MBOXSPACE | cut -c1)" = "." ] ; then MBOXSPACE="0"$MBOXSPACE
fi
/usr/sbin/sendmail -t << EOF
To: $MAILBOX@$DIR
From: ******@*******.com
Bcc: ****@******.com
Subject: Your mailbox is almost full
Dear mail user,
Your e-mail $MAILBOX@$DIR is about to reach its maximum quota. You are using $MBOXSPACE MB ($MBOXPERCENT%) out of the maximum quota $HARDQUOTA MB.
We would kindly suggest you to delete some older messages and purge them to free some space in the mailbox. If the quota limit is reached, you won't be able to receive any new messages and the sender will receive 'mail quota exceeded' notifications.
Another option is to configure your POP3 mail client (e.g. Microsoft Outlook, Mozilla Thunderbird or Apple Mail) to delete the messages on the server mailbox every time the mail account is read.
This is an automated message, do not reply. If you require any assistance, please open a support ticket at http://*******/support.php .
EOF
fi
fi
done;
done;
Upvotes: 0
Views: 758
Reputation: 10312
line 26: bc: command not found
means that "bc" utility is not installed on your server.
Try to install it by following commands:
# yum install bc
or for debian-like systems:
# apt-get install bc
Upvotes: 2