iNet

学习笔记 十: mail

拟墨画扇 提交于 2020-08-12 00:14:37
一 邮件系统简介 二 postfix vi /etc/postfix/master.cf postconf postconf inet_interfaces myorigin postconf -e 'myorigin = example.com' 三 sendmail 四 使用实例 公司A www.qq.com 用户admin@qq.com,发送一封邮件到 公司B www.jd.com 用户admin@jd.com,需要按照下面要求你设置。 公司 www.qq.com 使用sendmail,公司B,使用postfix 设置别名admin@qq.com 抄送一份给用户monitor@qq.com 配置dovecot,可以使用pop3,imap收邮件。 建立虚拟用户 cw1@jd.com 发送邮件到 admin@qq.com 来源: oschina 链接: https://my.oschina.net/u/4332858/blog/4317191

kubernetes云平台管理实战: 集群部署(CentOS 7.8 + docker 1.13 + kubectl 1.52)

心不动则不痛 提交于 2020-08-11 21:23:32
一、环境规划 1、架构拓扑图 2、主机规划 master 192.168.118.18 node01 192.168.118.19 node02 192.168.118.20 192.168.118.18即时master也是node 3、软件版本 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core) [root@master ~]# docker version Client: Version: 1.13.1 API version: 1.26 Package version: docker-1.13.1-161.git64e9980.el7_8.x86_64 Go version: go1.10.3 Git commit: 64e9980/1.13.1 Built: Tue Apr 28 14:43:01 2020 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Package version: docker-1.13.1-161.git64e9980.el7_8.x86_64 Go version: go1.10.3 Git commit: 64e9980

openstack虚拟机获取不到ip

眉间皱痕 提交于 2020-08-11 19:16:52
一、现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二、分析思路: (1)查看neutron服务状态,确保dchp服务正常运行 root@controller22: 15: 11~#neutron agent- list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. +--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+ | id | agent_type | host | availability_zone | alive | admin_state_up | binary | +--------------------------------------+--------------------+------------+-------------------+-------+-------------

Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)

早过忘川 提交于 2020-08-11 18:57:19
阅读目录 一、前言 二、翻译正文 1、两种实现方式 2、BSD 的选择 3、Linux 的选择 4、linux实现中, accept 队列满了怎么办 5、问题延伸 4、Stevens老爷子的建议 三、译文的测试验证 1、服务端程序 2、客户端程序 3、客户端请求发送5次,填满 accept 队列 5、测试tcp_abort_on_overflow 参数 5、服务端正常accept时的连接情况 四、简单总结 五、 Tomcat 、nginx、redis中如何设置 backlog 1、tomcat 2、nginx 3、redis 回到顶部 一、前言 这两天看tomcat,查阅 tomcat 怎么承载高并发时,看到了backlog参数。我们知道,服务器端一般使用mq来减轻高并发下的洪峰冲击,将暂时不能处理的请求放入队列,后续再慢慢处理。其实操作系统已经帮我们做了一些类似的东西了,这个东西就是backlog。服务端一般通过 accept 调用,去获取socket。但是假设我们的程序处理不过来(比如因为程序bug,或者设计问题,没能及时地去调用 accept),那么此时的网络请求难道就直接丢掉吗? 当然不会!这时候,操作系统会帮我们放入 accept 队列,先暂存起来。等我们的程序缓过来了,直接调用 accept 去 队列取就行了,这就达到了类似mq的效果。 而 backlog,和另一个参数

Linux中,Tomcat 怎么承载高并发(深入Tcp参数 backlog)

試著忘記壹切 提交于 2020-08-11 18:43:41
一、前言 这两天看tomcat,查阅 tomcat 怎么承载高并发时,看到了backlog参数。我们知道,服务器端一般使用mq来减轻高并发下的洪峰冲击,将暂时不能处理的请求放入队列,后续再慢慢处理。其实操作系统已经帮我们做了一些类似的东西了,这个东西就是backlog。服务端一般通过 accept 调用,去获取socket。但是假设我们的程序处理不过来(比如因为程序bug,或者设计问题,没能及时地去调用 accept),那么此时的网络请求难道就直接丢掉吗? 当然不会!这时候,操作系统会帮我们放入 accept 队列,先暂存起来。等我们的程序缓过来了,直接调用 accept 去 队列取就行了,这就达到了类似mq的效果。 而 backlog,和另一个参数 /proc/sys/net/core/somaxconn 一起,决定了队列的容量,算法为:min(/proc/sys/net/core/somaxconn, backlog) 。 文章比较长,如果只需要结论,看第三章的总结即可,有时间的话,可以仔细看看正文、第四章的验证部分。 如果只想知道怎么设置这个值,直接跳到最后即可。 下面这篇文章,基础原理讲得很不错。但是是外国人写的,我这里简(tong)单(ku)翻译一下,我也会结合自己的理解,做一些补充。原文链接: http://veithen.io/2014/01/01/how-tcp

openstack虚拟机获取不到ip

删除回忆录丶 提交于 2020-08-11 18:00:15
一、现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二、分析思路: (1)查看neutron服务状态,确保dchp服务正常运行 root@controller22: 15: 11~#neutron agent- list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. +--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+ | id | agent_type | host | availability_zone | alive | admin_state_up | binary | +--------------------------------------+--------------------+------------+-------------------+-------+-------------

WebVirtMgr添加多台KVM主机

走远了吗. 提交于 2020-08-11 05:06:24
一、前提环境: 172.16.41.232为WebVirtMgr以及KVM主机,系统环境为centos7.7 172.16.41.30为KVM主机,系统环境为centos7.2 部署172.16.41.30为KVM主机: 二、KVM安装这里就不介绍了,可参考 KVM之KVM安装部署 ,直接进行配置。 在新的KVM主机机器上配置虚拟化及网桥环境: 复制网卡: [root@localhost network-scripts]# cp ifcfg-eno16777736 ifcfg-br0 修改网卡信息:删除IP信息,添加BRIDGE=br0 及NM_CONTROLLED=no信息 [root@localhost network-scripts]# vim ifcfg-eno16777736 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=eno16777736 UUID=079a4633-04d6-4c8d-b65d-a803778cdaef DEVICE=eno16777736 ONBOOT=yes IPV6_PEERDNS=yes IPV6

openstack虚拟机获取不到ip

為{幸葍}努か 提交于 2020-08-10 22:04:00
一、现象描述: openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二、分析思路: (1)查看neutron服务状态,确保dchp服务正常运行 root@controller22: 15: 11~#neutron agent- list neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. +--------------------------------------+--------------------+------------+-------------------+-------+----------------+---------------------------+ | id | agent_type | host | availability_zone | alive | admin_state_up | binary | +--------------------------------------+--------------------+------------+-------------------+-------+-------------

《Erlang程序设计》第十四章 套接字编程

自古美人都是妖i 提交于 2020-08-10 20:14:32
第十四章 套接字编程 Table of Contents 第十四章 套接字编程 14.1 使用TCP 14.1.1 从服务器上获取数据 14.1.2 一个简单的TCP服务器 14.1.3 改进服务器 14.2 控制逻辑 14.2.1 主动型消息接收(非阻塞) 14.2.2 被动型消息接收(阻塞) 14.2.3 混合型模式(半阻塞) 14.3 连接从何而来 14.4 套接字的出错处理 14.5 UDP 14.5.1 最简单的UDP服务器和客户机 14.5.2 一个计算阶乘的UDP服务器 14.5.3 关于UDP协议的其他注意事项 14.6 向多台机器广播消息 第十四章 套接字编程 14.1 使用TCP 14.1.1 从服务器上获取数据 -module (socket_examples). -export ([ nano_get_url/0 ]). -import (lists, [ reverse/1 ]). nano_get_url () -> nano_get_url ( "www.google.com" ). nano_get_url ( Host ) -> %% 链接到主机的80端口, 以二进制模式打开套接字, 原始方式发送TCP数据 {ok, Socket } = gen_tcp : connect ( Host , 80, [binary, {packet, 0}]),

shell 解决mysql 主从同步出现延迟和错误的问题

亡梦爱人 提交于 2020-08-10 11:29:55
#!/bin/sh # check_mysql_slave status ip=eth0 mysql_command=/home/server/mysql/bin/mysql mysql_user=root mysql_pass=123456 mysql_sockfile=/tmp/mysql.sock datetime=`date +"%Y-%m-%d_%H:%M:%S"` mysql_slave_logfile=/home/server/logs/check_mysql_slave.log slave_ip=`ifconfig $ip|grep "inet addr" | awk -F[:" "]+ '{print $4}'` #status=$($mysql_command -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave status\G" | grep -i "running") Slave_IO_Running=`grep Slave_IO_Running $mysql_slave_logfile| awk ' {print $2}'` Slave_SQL_Running=`grep Slave_SQL_Running $mysql_slave_logfile | awk '{print $2}'