вторник, 19 сентября 2017 г.

How to send bash script output via email using AWS SES


  • Create SES SMTP user

https://console.aws.amazon.com/iam/home?#/s=SESHome

We need

SMTP Username:
AXXXXXXXXXXXXQ
SMTP Password:
AsFbCCCXXXXXXXXXXXCXXXXXXXXXXXqQ6

  • Validate email to send FROM
SES - Email Addresses - Verify a New Email Address
  • Create custom policy in IAM in order to give permissions to send emails and assign to a role. Assign role to instance.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Resource": "*"
        }
    ]
}
  • install mailx package ( yum install mailx) and test it :
-v verbose
-s Subject
-S settings
-S nss-config-dir can be found by  find / -name "cert*.db", /etc/pki/nssdb/ in my case
-S from "EMAIL@VALIDATED.DOMAIN" - watch step 2

mailx -v -s "Test" -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S smtp=smtp://email-smtp.us-east-1.amazonaws.com:587 -S from="EMAIL@VALIDATED.DOMAIN" -S smtp-auth-user=AXXXXXXXXXXXXQ -S smtp-auth-password= AsFbCCCXXXXXXXXXXXCXXXXXXXXXXXqQ6 -S nss-config-dir=/etc/pki/nssdb/ USER@DOMAIN.RECIPIENT

  • Edit global mailx conf (/etc/mail.rc)  and add account: 

account ses {
        set smtp-use-starttls
        set ssl-verify=ignore
        set smtp-auth=login
        set smtp=smtp://email-smtp.us-east-1.amazonaws.com:587
        set from="EMAIL@VALIDATED.DOMAIN"
        set smtp-auth-user= AXXXXXXXXXXXXQ
        set smtp-auth-password= AsFbCCCXXXXXXXXXXXCXXXXXXXXXXXqQ6
        set nss-config-dir=/etc/pki/nssdb/
}

  • Test mailx global config
echo -e "Test Mail body text" | mailx -v -s "Test" -A ses USER@DOMAIN.RECIPIENT

  • Create script and add it to cron

Комментариев нет:

Отправить комментарий

Bash: MySql backup (file per db), restore+ users and privileges

Backup Mysql DB (file per db) #!/bin/bash USER="root" databases=`mysql -u $USER -e "SHOW DATABASES;" | tr -d "|...