linux文本界面发邮件,柴少鹏的官方网站-linux发送邮件内容变成了tcmime.xxxx.xxxx.xxxx.bin的附件形式...

因为物理机比较多,为了确保在硬盘在损坏之前能够预警出来,所以每台物理机都部署了一个定时检测脚本来检测磁盘状态,如果出现问题就发送到一个汇总的服务器,由服务器过滤并发送报警信息到运维人员的邮箱。

发送邮件的命令为:echo "`cat /tmp/diskmail `"|mail -s  "disk check err" 收件人邮箱。

但是问题是并没有发送附件,但是除了postfix客户端收到的是正常的报警内容外,其他的类似于QQ邮箱,163邮箱收到的都是类似于:tcmime.1146.1146.1196.bin 这种形式的附件格式。将附件下载下来,用windows的文本编辑工具是可以打开的。

b2135fdaa57b5636bc9ee71713ed265b.png

可见是发送的内容有问题,导致了这种情况的出现。

博文来自:www.51niux.com

通过linux服务器上面#vim  /tmp/diskmail文件,发现在内容每行的末尾有^M,然后我试着将末尾的^M去掉,再发送发现正常了。

echo "`cat /tmp/diskmail|tr -d '\r' `"|mail -s  "disk check err"  收件人邮箱

然后再查看:收件箱的内容不再是附件而是下面的格式:

TIME: Apr 10 10:08:13

IP:101.111.253.123

ERR:

sd 0:0:5:0: [sdd] Sense Key : Medium Error [current]

sd 0:0:5:0: [sdd] Add. Sense: Unrecovered read error

当然有时候vim文件发现每行的末尾没有^M,但是发送还是附近的形式。

#yum install  dos2unix -y

#dos2unix  /tmp/diskmail

再次发送次文件的内容,也不再是附件了。

注:

dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\r\n

,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。很多时候再windows上面编辑的shell脚本上传到linux服务器上面的时候,也需要用此命令转换一下格式,以防止运行报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值