Q. How to show mailbox Size on Zimbra via bash script ?
A. There are two script available to show mailbox size of the zimbra users :
Option A
1. Create the scripts directory to keep the bash file and give zimbra ownership to the folder :
# mkdir -p /opt/zimbra/backup/scripts # chown -R zimbra:zimbra /opt/zimbra/backup/scripts
2. Create bash script as below :
# vi /opt/zimbra/backup/scripts/mailboxsize1.sh
Add the following :
#!/bin/bash all_account=`zmprov -l gaa`; for account in ${all_account} do mb_size=`zmmailbox -z -m ${account} gms`; echo "Mailbox size of ${account} = ${mb_size}"; done
3. Give ownership to zimbra group and user and make the script executable :
# chown -R zimbra:zimbra /opt/zimbra/backup/scripts/mailboxsize1.sh # chmod +x /opt/zimbra/backup/scripts/mailboxsize1.sh
4. As a zimbra user run the following script :
# su - zimbra
$ /opt/zimbra/backup/scripts/mailboxsize1.sh
Sample output :
Mailbox size of admin@ehowstuff.local = 217.23 KB Mailbox size of spam.wc5ohhoylp@ehowstuff.local = 0 B Mailbox size of ham.ypxiyleoyj@ehowstuff.local = 0 B Mailbox size of virus-quarantine.kl6ejsnmd@ehowstuff.local = 0 B Mailbox size of galsync.vtfk6uwt@ehowstuff.local = 0 B Mailbox size of user1@ehowstuff.local = 375.28 KB Mailbox size of user2@ehowstuff.local = 24.97 KB
Option B
1. Create the scripts directory to keep the bash file and give zimbra ownership to the folder :
# mkdir -p /opt/zimbra/backup/scripts # chown -R zimbra:zimbra /opt/zimbra/backup/scripts
2. Create bash script as below :
# vi /opt/zimbra/backup/scripts/mailboxsize2.sh
Add the following :
#!/bin/bash output="/tmp/accountusage" domain="ehowstuff.local" rm -f $output touch $output server=`zmhostname` /opt/zimbra/bin/zmprov gqu $server|grep $domain|awk {'print $1" "$3" "$2'}|sort|while read line do usage=`echo $line|cut -f2 -d " "` quota=`echo $line|cut -f3 -d " "` user=`echo $line|cut -f1 -d " "` status=`/opt/zimbra/bin/zmprov ga $user | grep ^zimbraAccountStatus | cut -f2 -d " "` echo "$user `expr $usage / 1024 / 1024`Mb `expr $quota / 1024 / 1024`Mb ($status account)" >> $output done cat $output
3. Give ownership to zimbra group and user and make the script executable :
# chown -R zimbra:zimbra /opt/zimbra/backup/scripts/mailboxsize2.sh # chmod +x /opt/zimbra/backup/scripts/mailboxsize2.sh
4. As a zimbra user run the following script :
# su - zimbra
$ /opt/zimbra/backup/scripts/mailboxsize2.sh
Sample output im MB:
admin@ehowstuff.local 0Mb 0Mb (active account) galsync.vtfk6uwt@ehowstuff.local 0Mb 0Mb (active account) ham.ypxiyleoyj@ehowstuff.local 0Mb 0Mb (active account) spam.wc5ohhoylp@ehowstuff.local 0Mb 0Mb (active account) user1@ehowstuff.local 0Mb 0Mb (active account) user2@ehowstuff.local 0Mb 0Mb (active account) virus-quarantine.kl6ejsnmd@ehowstuff.local 0Mb 0Mb (active account)
1 Comment
Sorry for my English. How to add that script to zimbra crontab and send to admin@domain.com every month ?