Hi, I recently research on how auto-mailing to notify the increase of storage size. I try avoid schedule/routine checkup the storage to determine increase the storage size. It is time-consuming. Any comment on how to get the storage size %? and automatically trigger mailing function instead manually?
Stuff like that is being asked once and then - the search function of the forum returned this thread for example:
Thank for reply. I really surf through but i can't get the keyword for it.
What's i trying search is unix+email+storage. Obviously, it didn't return useful information.
I'm encounter any problem now. 'mail' cannot send out email to existing exchange server.
I guess i suppose setup SMTP host but i don't really know where is the configuration location. Anybody can assist me on how to configure SMTP mail server in Solaris 10?
from a script, check the disk space and if it reaches x% to capacity, email out.
i take it this is what you are looking for?
you could simply look at the output of `df -h` and awk out the capacity. then depending on its results, use `mailx` to send out an email.
however, may i suggest snmp traps? if you have a NMS in place already, this is much more efficient. look into upgrading net-snmp to latest version and adjust snmpd and associated config files accordingly.
you don't need to go through the hassle of setting up a smtp server.
Ya. I has been successfully extract out FileSystem % as Zaxxon show in example. I'm encounter a new problem or may be challenge. I cannot email out the stuff. I'm trying sendmail command and trying configure sendmail.mc.
It is still not working. I have go through several steps as following:
- vi /etc/hosts
127.0.0.1 localhost
100.100.100.100 WSERV WSERV. loghost
then, # check-hostname
Hostname WSERV OK: fully qualified as WSERV.
- vi /etc/mail/cf/cf/local.mc
define(`SMART_HOST', `mail.companyX.com')dnl
Remove the line MAILER(`local')dnl.
Remove the line LOCAL_NET_CONFIG.
Remove the R$* < @ $* .$m. > $* $#esmtp $@ $2.$m $: $1 < @ $2.$m. > $3.
- Compile and deploy local.mc to sendmail.cf
# /usr/ccs/bin/m4 ../m4/cf.m4 local.mc > /etc/mail/sendmail.cf
- Restart sendmail
# svcadm restart sendmai
When I trying send out the email, it is seem like working but i didn't get any mail from exchange server.
WSERV% sendmail -v counsellor@companyX.com
testing
.
counsellor@companyX.com... Connecting to [127.0.0.1] via relay...
220 WSERV. ESMTP Sendmail 8.13.8+Sun/8.13.8; Thu, 1 Apr 2010 12:35:57 +0800 (MYT)
>>> EHLO WSERV.
250-WSERV. Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<informix@WSERV> SIZE=8
250 2.1.0 <informix@WSERV>... Sender ok
>>> RCPT To:<counsellor@companyX.com>
>>> DATA
250 2.1.5 <counsellor@companyX.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <counsellor@companyX.com>... Connecting to mail.companyX.com via relay...
050 <informix@WSERV>... Warning: alias database /etc/mail/aliases.db out of date
050 <informix@WSERV>... Connecting to local...
050 220 WSERV LMTP ready
050 >>> LHLO WSERV.
050 250-WSERV
050 250-8BITMIME
050 250-ENHANCEDSTATUSCODES
050 250 PIPELINING
050 >>> MAIL From:<>
050 250 2.5.0 ok
050 >>> RCPT To:<informix>
050 >>> DATA
050 250 2.1.5 ok
050 354 go ahead
050 >>> .
050 250 2.1.5 informix OK
050 <informix@WSERV>... Sent
250 2.0.0 o314ZvoG022914 Message accepted for delivery
counsellor@companyX.com... Sent (o314ZvoG022914 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 WSERV. closing connection
WSERV% pwd
You don't need to set up an SMTP host from scratch (sendmail needs a lot of study ;)). Use a perl script calling up the Net::SMTP module and connect to an existing SMTP host (you do have one of these, don't you?)
Here's a script that I knocked up. Call it up by piping or redirecting the message content with a message title followed by a list of users.
#!/usr/bin/perl
#(C) son_t, 2010
#Usage: sendmessage.pl "MESSAGE TITLE" <user> [<user>] < message_content_file
#Or: cat message_content_file | sendmessage.pl "MESSAGE TITLE" <user> [<user>]"
use Net::SMTP;
my $domain = "YOUR DOMAIN";
my $smtphost = "YOUR SMTP HOST";
my $sending_user = `/usr/ucb/whoami`;
chop($sending_user);
my $server = `/usr/bin/hostname`;
chop($server);
my $subject=shift(@ARGV);
my @users = @ARGV;
if (!@users) {
print STDERR "Must specify one or more users\n";
exit 1;
}
# qualify addresses
for (my $i = 0; $i < @users; $i++) {
$users[$i] = $users[$i] . "\@$domain" if ($users[$i] !~ /\@/);
}
# connect
#print "connect smtphost:$smtphost server.domain:$server.$domain\n";
$smtp = Net::SMTP->new("$smtphost",Hello=>"$server.$domain");
if (!defined($smtp)) {
print STDERR "Error connecting to server\n";
exit 1;
}
# setup
#print "setup $sending_user\@$server.$domain\n";
$smtp->mail("$sending_user\@$server.$domain");
$smtp->recipient(@users);
$smtp->data();
# header
my $tousers = join(', ', @users);
#print "header tousers:$tousers sending_user:$sending_user\@$server.$domain subject:$subject\n";
$smtp->datasend("To: $tousers\n");
$smtp->datasend("From: $sending_user\@$server.$domain\n");
$smtp->datasend("Subject: $subject\n\n");
# body
$smtp->datasend(<STDIN>);
# finish
$smtp->dataend();
$smtp->quit;
It would be nice to see your (or anybody's) disk usage monitoring script, if you've written one. I've got one, which I found on the web and modified for my own use (which I could post if anyone is interested.)
my disk monitoring script = net-snmp
Thank alot, Son_t but my company not execute the Perl script. We have standardize all using c shell script.
I will continuous research on it. Thank
---------- Post updated 04-02-10 at 03:29 AM ---------- Previous update was 04-01-10 at 08:44 PM ----------
Is that anything mistake in the DaemonPortOptions or should i enable ClientPortOptions also? My plan is used Solaris to send out the email to exchange server as smtp protocol.
Please give any recommend.
# SMTP daemon options
O DaemonPortOptions=Name=MTA
O DaemonPortOptions=Port=987, Name=MSA, M=E
# SMTP client options
#O ClientPortOptions=Family=inet, Address=0.0.0.0
Yes. Finally, i get the solution. :D:D:D
From example i read from article is apply 'hostname.' but it is not recognized from the server. We need like this 'hostname.com'. It is simplest edit the /etc/hosts and whatever i configure sendmail.mc last time is work fine.
/etc/hosts
127.0.0.1 localhost
192.168.1.1 serverName serverName.com loghost
Sorry, i encounter another relevant for this topic.
I have another mirror which is umounted in /etc/vfstab. how to know the percentage usage in this umounted partition?
can't monitor something that doesn't exist
Even It is not mounted fs but it still in mirroring and allocated to multi-soft partition. Any alternative method to monitor the storage status of soft partition or mirror?
If a filesystem is not mounted, you still can use the df command to get the usage of the filesystem, like:
# df /dev/md/dsk/d103
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d103 5159862 1054466 4053736 21%
thank for reply. It is really appreciate but it show error as below:
# df /deve/md/dsk/d100
df: /dev/md/dsk/d100: not a ufs file system
You can find out the type of the filesystem with
# fstyp /dev/md/dsk/d100
ufs
When you know the type you can add it as argument to the df command:
df -F ufs /dev/md/dsk/d100
Replace ufs with whatever your filesystem type is.
I try but it's not working. Are the commands only work on ufs fs?
# fstyp /dev/md/dsk/d100
Unknown_fstyp (no matches)
# df -F ufs /dev/md/dsk/d100
Filesystem kbytes used avail capacity Mounted on
df: /dev/md/dsk/d100: not a ufs file system
fstyp uses a specialized module for every supported filesystem. You can find them under
/usr/lib/fs/*/fstyp
where * are the supported filesystems on your machine (like ufs, zfs, vxfs, ...)
If fstyp prints unknown_fstyp, then the device is most likely not formatted with a filesystem.