希望对此提出一些建议或指导。我对大多数这些东西都不是很熟悉,但已经设法导航,测试并检查以达到这一点。一次解决一个错误!
运行Plesk 11.0.9我试图设置一个运行shell脚本的简单Cron作业来检测接近满的邮箱,这样我或用户就可以得到通知并解决问题。
在假设这将检查所有邮箱的情况下以root用户身份运行脚本。
该脚本来自Plesk论坛(上篇文章http://forum.parallels.com/showthread.php?106635-Qmail-e-mail-quota-notification-script-for-Plesk-9-3-10),其中许多用户似乎已经取得了成功但是在运行作业时我收到此错误
/usr/local/psa/bin/mboxfull.sh:第26行:bc:找不到命令
/usr/local/psa/bin/mboxfull.sh:line 32:bc:command not found
这似乎是一个非常通用的“写的内容不起作用”错误所以我的搜索没有给我很多方向来解决这个问题。
下面的完整脚本标有“违规”行。任何方向帮助都将非常感谢!
#! /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;
答案 0 :(得分:1)
line 26: bc: command not found
表示您的服务器上未安装“bc”实用程序。
尝试按照以下命令安装它:
# yum install bc
或类似于debian的系统:
# apt-get install bc