tonglin0325的个人主页

Python学习笔记——发邮件

参考:Python3实现163邮箱SMTP发送邮件

1.首先需要注册一个网易的邮箱,开启smtp服务,并使用其授权码

2.发送邮件的Python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import smtplib
from email.header import Header
from email.mime.text import MIMEText

# 第三方 SMTP 服务
mail_host = "smtp.163.com" # SMTP服务器
mail_user = "XXX" # 用户名
mail_pass = "XXX" # 授权密码,非登录密码

sender = "XXX@163.com" # 发件人邮箱(最好写全, 不然会失败)
receivers = ["XXX@126.com"] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

content = '我用Python'
title = '人生苦短' # 邮件主题


def sendEmail():
message = MIMEText(content, 'plain', 'utf-8') # 内容, 格式, 编码
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title

try:
smtpObj = smtplib.SMTP_SSL(mail_host, 465) # 启用SSL发信, 端口一般是465
smtpObj.login(mail_user, mail_pass) # 登录验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送
print("mail has been send successfully.")
except smtplib.SMTPException as e:
print(e)


def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
email_client = smtplib.SMTP(SMTP_host)
email_client.login(from_account, from_passwd)
# create msg
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8') # subject
msg['From'] = from_account
msg['To'] = to_account
email_client.sendmail(from_account, to_account, msg.as_string())

email_client.quit()


if __name__ == '__main__':
sendEmail()
# receiver = '***'
# send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

全文 >>

kafka知识点

  1. 搭建kafka的时候需要根据数据流量预估kafka集群的规模,aws为其MSK服务(aws上的托管kafka)提供了一个excel表格,可以输入参数来评估集群需要的硬件参数
1
2
https://amazonmsk.s3.amazonaws.com/MSK_Sizing_Pricing.xlsx

全文 >>

ubuntu下GRUB使用

GRUB 是一个用于加载和管理系统启动的完整程序。它是Linux 发行版中最常见的 引导程序 bootloader 。引导程序是计算机启动时运行的第一个软件。

1.grub命令行模式

如果进入的grub命令行模式的话,则说明GNU grub找不到正确的引导文件,这时候可以通过命令手动来进行选择,如下

查看当前路径

1
2
grub> ls

输出如下

1
2
(proc) (hd0)、(hd0, msdos1) (hd1) (hd1,gpt4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1) (hd3) (hd3,gpt1)

我这边机器挂了4块硬盘,所以就会有hd0,hd1,hd2,hd4

这时候就需要找到linux系统安装所在的分区,只能每个盘的每个分区一个个试过去,比如hd0只有1个分区,我们就可以使用如下命令查看1分区的文件目录

1
2
grub> ls (hd0,1) #再按tab键

出现的是lost+found,说明这是一个数据盘,并不是linux系统分区,当试到hd1,4的时候

1
2
grub> ls (hd1,4) #再按tab键

出现,说明找到了linux系统安装的盘

1
2
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/ root/ run/ sbin/ snap/ srv/ sys/ tmp/ usr/ var/ initrd.img/ vmlinux cdrom/ lib32/

接下来使用如下命令选择这个引导

1
2
3
4
5
set root=(hd1,4)
set prefix=(hd1,4)/boot/grub
insmod normal
normal

会正常进到grub系统选择页面,然后就可以正常进入linux系统,如下

参考:Ubuntu开机出现grub指令,无法正常开机

2.修复GRUB引导

安装boot-repair来对引导进行修复

1
2
3
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair

然后运行boot-repair按布置操作即可

参考:ubuntu启动盘修复grub引导

对于ubuntu18.04以下的版本,可能无法通过apt-get来安装boot-reapir,会报源找不到的错误

可以直接下载deb包来进行安装boot-repair

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Download debian packages
wget https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair/+files/glade2script_3.2.3~ppa4_all.deb
wget https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair/+files/boot-sav_4ppa65_all.deb
wget https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair/+files/boot-repair_4ppa65_all.deb

# Attempt to install them
sudo dpkg -i ./glade2script_3.2.3~ppa4_all.deb
sudo dpkg -i ./boot-sav_4ppa65_all.deb
sudo dpkg -i ./boot-repair_4ppa65_all.deb

# Now that dpkg knows we need to install dependancies for these packages
# use apt-get to auto-install said dependancies
sudo apt-get -f install

# Install the packages FOR REAL this time
sudo dpkg -i ./glade2script_3.2.3~ppa4_all.deb
sudo dpkg -i ./boot-sav_4ppa65_all.deb
sudo dpkg -i ./boot-repair_4ppa65_all.deb

参考:

1
2
https://gist.github.com/wilm0x42/6f11a58d3ef1ccb1238045e29834af40

全文 >>