Shell发送邮件+附件_mac shell发邮件

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs
cd /root/.certs
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu"  -d ./ -i qq.crt
ll

在这里插入图片描述

2.3 配置mail.rc

vi /etc/mail.rc

文件尾部添加下面内容:

set from=131413688@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=131413688
#授权码
set smtp-auth-password=xxxxx
set smtp-auth=login
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=/root/.certs

说明:上面的from、smtp-auth-user换成自己的QQ号,xxxxx替换成第1步生成的授权码

3. 测试

3.1 直接发送普通文字邮件

echo  "hello word" | mail -s "title"  131413688@qq.com

接收到的邮件:
在这里插入图片描述

3.2 将文件内容作为邮件内容发送

cd /root/data/shell
vim mailContent.txt

文件内容为:

Hello Jack, Nice to meet you.
I'm from shenzhen, China.

执行发送邮件命令

cd /root/data/shell
cat mailContent.txt | mail -s "旅游向导" 131413688@qq.com

接收到的邮件:
在这里插入图片描述

3.3 shell发送无附件的邮件

1)编写shell脚本

vim /root/shell/mail/mail_noattachment.sh

文件内容为:

#!/bin/bash 

FROM_EMAIL="131413688@qq.com"
TO_EMAIL="100861008@qq.com,100861999@qq.com"
JOB_NAME="TEST"
RUNNINGNUM=1

echo -e "`date "+%Y-%m-%d %H:%M:%S"` : The running $JOB\_NAME job num is $RUNNINGNUM in 192.168.137.201 执行异常!!" | mail \
-r "From: alertAdmin <${FROM\_EMAIL}>" \
-s "Warn: Skip the new $JOB\_NAME spark job." ${TO\_EMAIL}


说明:FROM_EMAIL、TO_EMAIL都换成自己的邮箱来测哈!

2)执行shell脚本发送邮件

sh /root/shell/mail/mail_noattachment.sh

接收到的邮件:【我TO_EMAIL里指定的2两个邮箱都收到了邮件】
在这里插入图片描述

3.4 Shell发送带附件的邮件

1)准备2个附件:
第一个log日志文件

vim /root/shell/mail/error1.log

文件内容为【加中文可以测试附件是否会中文乱码】:

错误日志1:
This is the exception 1.1...
This is the exception 1.2...

第二个log日志文件

vim /root/shell/mail/error2.log

文件内容为:

错误日志2:
This is the exception 2.1...
This is the exception 2.2...

2)编写shell脚本

vim /root/shell/mail/mail_attachment.sh

文件内容为:

   #!/bin/bash 
   
   FROM_EMAIL="131413688@qq.com"
   TO_EMAIL="100861008@qq.com,100861999@qq.com"
   LOG1=/root/shell/mail/error1.log
	LOG2=/root/shell/mail/error2.log
   
   echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please to check the fail sql attachement." | mailx \
   -r "From: alertAdmin <${FROM\_EMAIL}>" \
   -a ${LOG1} \
   -a ${LOG2} \
   -s "Critical:DSHS fail sql." ${TO\_EMAIL}

3)执行shell脚本发送邮件

sh /root/shell/mail/mail_attachment.sh

接收到的邮件:
在这里插入图片描述
TO_EMAIL指定的邮箱都收到了带附件的邮件,且附件里的中文并没有乱码。

3.5 Shell发送带附件的邮件(优化)

3.4 虽然实现了发送附件的功能,但邮件标题和发送哪些附件都是写死在shell脚本中的,灵活性不够,难道每次发个邮件还得修改shell脚本?
所以生产上是把邮件标题、发送哪些附件等信息,通过参数传入的。

1)编写shell脚本

vim /root/shell/mail/mail_attachment2.sh

文件内容为:

 #!/bin/bash
 
 # $#表示参数个数
 if [ $# -lt 2 ]; then
     echo "Error:Missing parameters"
     echo "Useage: sh mail\_attachement.sh <mail-title> <attachment1> <attachment2> ..."
     exit 1
 fi
 
 FROM_EMAIL="131413688@qq.com"
 TO_EMAIL="100861008@qq.com,100861999@qq.com"
 
 #从第2个参数开始,用-a拼出要发送的附件
 first=1
 attachment=""
 for i in "$@"
 do
     if [ $first -eq 1 ]; then
         first=0
     else
         attachment="$attachment -a $i "
     fi
 done
 
 echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please to check the fail sql attachement." | mailx \
 -r "From: alertAdmin <${FROM\_EMAIL}>" \
 $attachment \
 -s "$1" ${TO\_EMAIL}
 


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

ql attachement." | mailx \
 -r "From: alertAdmin <${FROM\_EMAIL}>" \
 $attachment \
 -s "$1" ${TO\_EMAIL}
 


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值