I am working on writing a script to run on our Debian server(Debian 3.2.68-1+deb7u5 x86_64 GNU/Linux
), which will monitor a specific port we have and when there is no process running on that port, or that port is available, then I will have to send out an email. I intend to run the script every 15 minutes and then send out an email.
We have an email-server and I want to add it’s configuration in the script, but I am not sure how I can do that.
When in Java, I am using the configuration in this manner :
JavaScript
x
Properties props = new Properties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "EMAIL-HOST-NAME");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "PORT-PROVIDED");
Currently, I have the script as follows, any suggestions to script are also welcome. Thank you.
JavaScript
#!/bin/bash
server=0.0.0.0 // localhost
port=PORT-NUMBER
if nc $server $port &> /dev/null; then
// do nothing
else
// send email
fi
Thank you.
Advertisement
Answer
Both mailx
and sendmail
can send full e-mails from CLI; most systems feature both preinstalled.
Example with ‘mailx’:
JavaScript
echo "This is the message body and contains the message" | mailx -v
-r "someone@example.com"
-s "This is the subject"
-S smtp="mail.example.com:587"
-S smtp-use-starttls
-S smtp-auth=login
-S smtp-auth-user="someone@example.com"
-S smtp-auth-password="abc123"
-S ssl-verify=ignore
yourfriend@gmail.com