11-08-2008
Please, review script.
Hi guys,
I 've been brewing this shellscript, but I can't test it until next tuesday.
In the meantime I am too curious wether it will work or not, so I'd like to hear your comments.
Background:
I want to watch the user quota for mailboxes in various email-domains on a IMAP-server.
I have a list of directories in which the user mailboxes reside (domains.txt). The dirnames are named after the specific email-domain.
The users' mailbox quota is at 100 MB.
So if the quota will reach 100MB or more, it is written to a report for the mailserver admin.
And an email is written to the responsable person for the email-domain.
shell=bash
OS=Debian Linux
Thanks & regards, A.
#!/bin/bash
echo " Exceeded mailbox-quota in domains" > /home/tmp/report.txt
echo "*************************************" >> /home/tmp/report.txt
#
ls /home/mailboxes > /home/tmp/domains.txt
#
while read domain; do
cd /home/mailboxes/$domain
echo "Checked mailboxes of $domain...." >> /home/tmp/report.txt
du -k --max-depth=1 | sort -rn > /tmp/$domain.f1
sed -e '1d' < /tmp/$domain.f1 > /tmp/$domain.f2
sed -e 's%./% %g' < /tmp/$domain.f2 > /tmp/$domain.userquota
while read num user; do
if [ $num -ge 100000 ] ; then
echo " $user's mailbox is $num Kb in $domain. This should be 100000" >> /home/tmp/$domain.report.txt
echo " $user's mailbox is $num Kb" >> /home/tmp/report.txt
echo " " >> /home/tmp/report.txt
echo "---------------------------" >> /home/tmp/report.txt
#
/usr/bin/mutt -nx -e 'set from=admin@mailhostingdomain.com; set realname="My RealName"' \
-s "Noreply: emailquota exceeded " -a /home/tmp/$domain.report.txt postmaster@$domain < /dev/null
else
echo " No quota have been exceeded for $domain " >> /home/tmp/report.txt
echo " " >> /home/tmp/report.txt
echo "---------------------------" >> /home/tmp/report.txt
fi
done < /tmp/$domain.userquota
done < /home/tmp/domains.txt
/bin/mv /home/tmp/report.txt /home/work/report-$(date +%F).txt
/usr/bin/mutt -nx -e 'set from=admin@mailhostingdomain.com; set realname="My RealName"' \
-s "Noreply: New emailquota report $(date + %F) " -a /home/work/report-$date +F).txt postmaster@mailhostingdomain.com < /dev/null
8 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I want to copy all the log file except current date log from one server to another server.
Log File will be like this LOGNIG_08_11_2008*.log
For this
cd /test/log
date -d '1 day ago' "+%d_%m_%Y" -->This command gives previous day
scp LOGSNIG_date -d '1 day ago' "+%d_%m_%Y"... (2 Replies)
Discussion started by: srinivasvandana
2 Replies
2. Shell Programming and Scripting
Hi,
I need Unix Shell Script Review Check list in the format of word or excel.
Can any one provide the review checklist for unix shell script. Pls. (1 Reply)
Discussion started by: praka
1 Replies
3. Shell Programming and Scripting
I have written a bit of shell that lets our company check all our SSL certs.
the aim is to have a list of servers and run this check from cron once a week.
Our managers have decided that we will not run BASH, so it has been written in /bin/sh and only needs openssl, no perl, no bash, no extra... (8 Replies)
Discussion started by: robsonde
8 Replies
4. Shell Programming and Scripting
I have written a little script to scan users home directories for certain commands located inside a file. The script is setup to include a small help section and allows for passing a username argument to override scanning of all users home directories.
A lot of searching and trial and error has... (7 Replies)
Discussion started by: bkeep
7 Replies
5. UNIX for Dummies Questions & Answers
The task: remove undesirable characters from filenames.
Restrictions: Must use basic RE, base utilities (non-GNU) and /bin/sh (ash). No ksh, zsh, perl, etc.
Below is what I've come up with. It seems to work OK but I'm open to shorter, more efficient alternatives.
Inside the square... (4 Replies)
Discussion started by: uiop44
4 Replies
6. Shell Programming and Scripting
The script distributes files from an AIX server using iether ftp or sftp depending on the constraint of the destination server. I am interested in having the error checking routine critically reviewed. I will only include an excerpt from the script concerning error trapping: (where $FTP_OUT is the... (7 Replies)
Discussion started by: peleton
7 Replies
7. Shell Programming and Scripting
Hello *nix friends,
I've written a shell script that allow web admin's to copy file/folder from a development site to the production site. It's more or less a poor man SVN.
I'm posting the script here because I was able to get many questions answered through this forum and also, I want to... (4 Replies)
Discussion started by: rwhite35
4 Replies
8. Cybersecurity
Hi,
Can some please provide some hints on what to look for in unix/Linux logs such as sulog from a Information security perspective.
Regards (2 Replies)
Discussion started by: Tilus
2 Replies
LEARN ABOUT DEBIAN
parallel-slurp
PARALLEL-SLURP(1) PARALLEL-SLURP(1)
NAME
parallel-slurp - copy files from listed hosts
SYNOPSIS
parallel-slurp [OPTIONS] -h hosts.txt -L destdir remote local
DESCRIPTION
pssh provides a number of commands for executing against a group of computers, using SSH. It's most useful for operating on clusters of
homogenously-configured hosts.
parallel-slurp gathers specified files from hosts you listed.
OPTIONS
-r --recursive
recusively copy directories (OPTIONAL)
-L --localdir
output directory for remote file copies
-h --hosts
hosts file (each line "host[:port] [user]")
-l --user
username (OPTIONAL)
-p --par
max number of parallel threads (OPTIONAL)
-o --outdir
output directory for stdout files (OPTIONAL)
-e --errdir
output directory for stderr files (OPTIONAL)
-t --timeout
timeout (secs) (-1 = no timeout) per host (OPTIONAL)
-O --options
SSH options (OPTIONAL)
-v --verbose
turn on warning and diagnostic messages (OPTIONAL)
EXAMPLE
An example to copy /home/irb2/foo.txt from each host. Files gathered will be stored in /tmp/outdir/hostname/foo.txt.
# prallel-slurp -h hosts.txt -L /tmp/outdir -l irb2
/home/irb2/foo.txt foo.txt
ENVIRONMENT
All four programs take similar sets of options. All of these options can be set using the following environment variables:
o PSSH_HOSTS
o PSSH_USER
o PSSH_PAR
o PSSH_OUTDIR
o PSSH_VERBOSE
o PSSH_OPTIONS
SEE ALSO
parallel-ssh(1), parallel-scp(1), parallel-nuke(1), parallel-rsync(1), ssh(1)
AUTHOR
Brent N. Chun <bnc@theether.org>
COPYING
Copyright: 2003, 2004, 2005, 2006, 2007 Brent N. Chun
NOTES
1. bnc@theether.org
mailto:bnc@theether.org
03/30/2009 PARALLEL-SLURP(1)