shell发送email

配置mailx使用smtp服务器发送邮件

安装
[root@192 ~]# yum -y install mailx sendmail
配置文件
[root@192 ~]# vim /etc/mail.rc #添加内容
set from=931145352@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=931145352@qq.com
set smtp-auth-password=nfqeasrxvyvobbhd
set smtp-auth=login

说明

from:对方收到邮件时显示的发件人
smtp:指定第三方发邮件的smtp服务器地址
set smtp-auth-user:第三方发邮件的用户名
set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码
smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

测试
[root@192 ~]# echo hello | mailx -v -s "text" 931145352@qq.com
  • example
#!/bin/bash
#获取cpu使用率
cpuUsage=`top -n 1 | awk -F "[ %]+" 'NR==3 {print $3}'`
echo "$cpuUsage"
#获取磁盘使用率
data_name="/dev/sda1"
diskUsage=`df -h | grep $data_name | awk -F " " '{print $5}'| awk -F "[ %]" '{print $1}'`
echo "$diskUsage"
logFile=/tmp/jiankong.log
success=/tmp/true.log
logFiles=/tmp/jiankongs.log
#获取内存情况
mem_total=`free -m | awk -F ' ' 'NR==2{print $2}'`
mem_used=`free -m | awk -F ' ' 'NR==2{print $3}'`
echo "$men_total"
echo "$men_used"
#统计内存使用率
mem_used_persent=`awk 'BEGIN{printf "%.0f\n",('$mem_used'/'$mem_total')*100}'`
#获取报警时间
now_time=`date '+%F %T'`
function send_mail(){
        mail -s "监控报警" 931145352@qq.com < /tmp/jiankong.log
}
function check(){
        if [[ "$cpuUsage" > 50 ]] || [[ "$diskUsage" > 10 ]] || [[ "$mem_used_persent"  > 50 ]];
	then
                echo "报警时间:${now_time}" > $logFile
                echo "CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%" >> $logFile
		echo "报警时间:${now_time}" >> $logFiles
                echo "CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%" >> $logFiles

                send_mail
	else
		echo "时间:${now_time}" > $success
		echo "CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%" >> $success
        fi
}
function main(){
        check
}
main

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell脚本可以通过邮件发送信息给指定的接收者。其中最常用的方式是通过`mail`命令或`sendmail`工具来实现邮件发送功能。 使用`mail`命令发送邮件需要在脚本中指定邮件的收件人、发件人、主题和正文等信息。以下是一个简单的例子: ```shell #! /bin/bash # 设置收件人和发件人 recipient="receiver@example.com" sender="sender@example.com" # 设置主题和正文 subject="Shell脚本发送邮件" body="这是一封通过Shell脚本发送的测试邮件。" # 使用mail命令发送邮件 echo "$body" | mail -s "$subject" "$recipient" -- -r "$sender" ``` 在上述脚本中,我们首先设置了收件人和发件人的邮箱地址,然后指定了邮件的主题和正文。最后,使用`echo`命令将正文传递给`mail`命令,并使用`-s`选项指定主题,`-r`选项指定发件人,`--`则表示后面不再解析选项。通过这样的方式,我们就可以发送一封简单的邮件。 除了使用`mail`命令,我们也可以使用`sendmail`工具发送邮件。`sendmail`是一个更底层的标准邮件传输工具,提供更高级的邮件发送功能。使用`sendmail`发送邮件需要编写邮件的头部信息,并通过标准输入将邮件内容传递给`sendmail`。以下是一个示例: ```shell #! /bin/bash # 设置收件人和发件人 recipient="receiver@example.com" sender="sender@example.com" # 设置主题和正文 subject="Shell脚本发送邮件" body="这是一封通过Shell脚本发送的测试邮件。" # 通过sendmail发送邮件 echo -e "To: $recipient\nFrom: $sender\nSubject: $subject\n\n$body" | sendmail -t ``` 在上述脚本中,我们通过`echo`命令将邮件的头部和正文内容传递给`sendmail`,并使用`-t`选项告诉`sendmail`从标准输入读取邮件内容。通过这样的方式,我们也可以成功地发送一封邮件。 无论是使用`mail`命令还是`sendmail`工具,都需要确保系统中安装了相应的邮件客户端软件,并且已经配置好了SMTP服务器等相关信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值