Erlo

Linux平台mailx发邮件突然出现附件ATT00001.bin的情况总结

2024-11-26 11:29:01 发布   46 浏览  
页面报错/反馈
收藏 点赞

现象描述

最近发现我们监控作业偶尔会发出带有附件ATT00001.bin的邮件,而大部分时候,它都发出带有内容的邮件,以脚本mysql_slowlog_monitor.sh来说, 平时会将慢查询分析报告放在邮件的正文发给DBA,慢查询分析报告的内容放在邮件中,出现问题的时候,邮件正文没有内容,它只有 一个附件ATT00001.bin

function send_slow_rpt(){
    $PT_QUERY_DIGEST --since=$HOURS  $SLOW_LOG_FILE > $ANALYSIS_RPT_FILE
    rpt_exist_data=`cat $ANALYSIS_RPT_FILE | wc -l `
    
    if [ $rpt_exist_data -gt 2 ]; then
        MAIL_SUBJECT="MySQL slow log report on the `hostname` ($SERVER_IP) at $SLOW_RPT_DATE"
        mailx -s "${MAIL_SUBJECT}" -r ${MAIL_FROM} ${MAIL_TO} ${ANALYSIS_RPT_FILE}
    fi

}

原因分析:

分析后发现原因:pt-query-digest生成的慢查询分析报表,有些SQL语句里面包含了特殊字符^M,它导致mail将使用回车符 (^M, r) 字符的 非 Unix 文本文件将被视为二进制数据。所以mailx将将其当作附件发送出来,具体请见下面英文,更多详细信息参考参考资料[1]

Mailx expects input text to be in Unix format, with lines separated by newline (^J, n) characters only. Non-Unix text files that use carriage return (^M, r) characters in addition will be treated as binary data; to send such files as text, strip these characters e. g. by tr -d '

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认