Linux运维
未读DNS主从介绍作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速且不间断的域名查询服务。在DNS域名解析服务中,从服务器可以从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,因此通过部署从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。 安装环境 主机名 操作系统 IP 主服务器 CentOS 7 10.1.1.250 从服务器 CentOS 7 10.1.1.254 修改配置1.250主机配置1.250区域配置文件1.254主机配置1.254区域配置文件12345678910111213141516171819202122232425262728293031323334options { listen-on port 53 { 10.1.1.250; }; directory "/var/named/chroot/etc/"; dump-file "/var/ ...
Linux运维
未读关于日志切割日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。 logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。 安装logrotate在Debian或Ubuntu上: 1# apt-get install logrotate cron 在Fedora,CentOS或RHEL上: 1# yum install logrotate crontabs logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logr ...
DNS的正向解析在DNS域名解析服务中,正向解析是指根据域名(主机名)查找到对应的IP地址。也就是说,当用户输入了一个域名后,bind服务程序会自动进行查找,并将匹配到的IP地址返给用户。这也是最常用的DNS工作模式。 正向解析: 根据主机名(域名)查找对应的IP地址。 自定义区域配置文件这里自定义了一个boysec.cn的主机域,可以放在/etc/named.rfc1912.zones文件中,也可以放置在自定义的文件中,在/etc/named.conf里include进来 123456[root@k8s-dns ~]# cat /etc/named.rfc1912.zones zone "boysec.cn" IN { type master; #服务类型 file "boysec.cn.zone"; #解析规则保存文件名称 allow-update { none; }; #运行那些客户机动 ...
Linux运维
未读DNS概念DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS 的分布式数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间(domain name space)。如图所示树的最大深度不得超过127 层,树中每个节点都有一个可以长达63 个字符的文本标号。 DNS域名解析过程首先,客户端先在本地缓存查找有没有域名缓存,如果没有,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名 ...
Redis持久化Redis 为了内部数据的安全考虑,会把本身的数据以文件的形式保存到硬盘中一份,在服务器重启后会自动把硬盘的数据恢复到内存(Redis)里面 Redis持久化分为: RDB 持久化方式 AOF 持久化方式 两种持久化可以同时开启 持久化的两种方式介绍RBD介绍RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发手动触发有save和bgsave两命令。 save命令:阻塞当前Redis,直到RDB持久化过程完成为止,若内存实例比较大会造成长时间阻塞,线上环境不建议用它bgsave命令:redis进程执行fork操作创建子线程,由子线程完成持久化,阻塞时间很短(微秒级),是save的优化,在执行redis-cli shutdown关闭redis服务时,如果没有开启AOF持久化,自动执行bgsave;显然bgsave是对save的优化。bgsave运行流程RDB 持久化优缺点可以在指定的时间间隔内生成数据集的 时间点快照(point-in-time snapshot)。优点:速度快,适合于用做备份,主从复制也是基于RDB持久化功能实现的 ...
Redis介绍Redis是当前比较热门的NOSQL系统之一,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis特点速度快1234Redis所有的数据都存放在内存中;Redis使用C语言实现;Redis使用单线程架构;Redis读取的速度是110000次/s,写的速度是81000次/s。 基于键值对的数据结构服务器1支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合) 丰富的功能123提供了键过期功能,可以实现缓存;提供了发布订阅功能,可以实现消息系统;提供了pipeline功能,客户端可以将一批命令一次性传到Redis,减少了网络开销。 客户端语言多1java,PHP,python,C,C++,Nodejs等 持久化,主从复制(集群)1RDB和AOF Redis应用场景缓存-键过期时间12缓存session会话缓存用户信息,找不到再去mysql查,查到然后回写到redis 排行榜-列表&有序集合12热度排名排行榜发布时间排行榜 ...
Linux运维
未读TCP三次握手建立连接第一次握手:客户端发送SYN=1(SYN的标志位设置为1),初始化一个序列号(seq=x)。第二次握手:服务端收到请求,确认客户端的SYN(ack=x+1)发送ACK=1,SYN=1(SYN和ACK标志位设为1)并自己初始化一个seq序列号(seq=y)。第三次握手:客户端向服务端发送确认ACK=1(ACK标志位等于1),加seq=x+1,ack=y+1确认 三次握手的tcp四种状态及变迁LISTEN服务端状态,应用程序打开监听端口,处理来自客户端TCP端口的连接。SYN_SENT客户端状态,当客户端通过应用程序connect()连接时,客户端TCP发送SYN标记主动建立连接,此时状态为SYN_SENTSYN_RECV服务端状态,当收到客户端SYN封包后,服务端会发送一个SYN及ACK确认到客户端,再等待对方连接确认,这时状态为SYN_RECV,如果发现有很多SYN_RCVD状态,可能受到了SYN FLood的Dos攻击ESTABLISHED当客户端回复正确的ack值后,就建 ...
Web服务
未读Tomcat多实例tomcat多实例介绍首先要回答一个问题,为什么要用单机多实例?在不宕机的情况下,webapps里面存在多个项目,可能由于其中一个项目过度使用内存或者其他不确定的因素使得tomcat挂了,那么同一tomcat下的项目也会一同挂了;而使用不同的tomcat,同一台服务器下,每个tomcat的进程是不一样的额,一个项目出现问题tomcat挂了,那么由于是在不同进程,其他项目不会影响的。 还有一个问题就是不同tomcat使用了不同端口,最后域名只有一个怎么分配?其实这个使用nginx的反向代理,根据请求的前缀,代理到相应的tomcat项目服务端口对应的nginx server即可。其本质就是复制多个tomcat目录,然后修改为不同的端口并启动代码一致,但是公用一个数据库 复制目录123[root@boysec.cn ~]# cd /opt/[root@boysec.cn /opt]# cp -a apache-tomcat-8.5.59 tomcat_01[root@boysec.cn /opt]# cp -a apache-tomcat-8.5.59 tomcat_02 ...
Web服务
未读Tomcat 介绍Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选.Tomcat和Nginx,Apache(httpd),lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Server和JSP容器,独立的Server容器是Tomcat的默认模式,.不过,Tomcat处理静态HTML的能力不如Nginx/Apache服务器.其他JAVA容器还有resin,weblogic等 Tomcat安装部署java环境12yum install java-1.8.0 -yjava -version 部署Tomcat1234567891011mkdir /data/soft -pcd /data/soft/wget https://mirrors.tuna.tsing ...
Linux运维
未读安装centos7系统首先,先介绍一下CentOS7的镜像,本文中,我们使用的是CentOS7.2的镜像CentOS7的下载地址可以从以下这个地址下载http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.isoCentOS -7-x86_64 -DVD -1708.iso从 CentOS 7 之后,版本命名就跟发行的日期有关了。• CentOS-7 系统是 7.x 版本• x86_64 64 位操作系统,并且从 7以后不再提供 以后不再提供 32 位镜像。 位镜像。 CentOS 7 默认网卡修改(可选) 我这里为了性能考虑,采用最小化安装 磁盘分区 开始准备安装 kdump是在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务。(关闭)security policy:安全策略 (关闭) 配置yum源安装所需软件配置本地yum源12345678mkdir /mnt/cdrommount /dev/sr0 /mnt/cdromvi /etc/yum.repos.d/linux.repo ...
Linux运维
未读零宽断言(匹配宽度为零,满足一定的条件/断言)零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西,也就是说它们像 \b ^ $ < > 这样的锚定作用,用于指定一个位置,这个位置应该满足一定的条件(即断言),因此它们也被称为零宽断言。 断言用来声明一个应该为真的事实。正则表达式中只有当断言为真时才会继续进行匹配。 四种分类先行断言 (?=exp)//表示匹配表达式前面的位置例如 [a-z]*(?=ing) 可以匹配 cooking 和 singing 中的 cook 与 sing 123[root@boysec.cn ~]$echo "cooking singing"|grep -oP '[a-z]*(?=ing)'cooksing 注意:先行断言的执行步骤是这样的先从要匹配的字符串中的最右端找到第一个 ing (也就是先行断言中的表达式)然后 再匹配其前面的表达式,若无法匹配则继续查找第二个 ing 再匹配第二个 ing 前面的字符串,若能匹配则匹配,符合正则的贪婪性 ...
爱站批量查网站权重相信很多人在批量刷野战的时候,会去查看网站的权重吧,然后在决定是否提交给补天还在是盒子。但是不能批量去查询,很困惑,作为我这个菜鸟也很累,一个个查询的。所以写了这个脚本。参考脚本爱站批量查询网址权重2.0版本。 演示如果在cmd运行中得先转脚本对应的绝对路径下运行。不然会爆文件不存在的错误。如果在pycharm等集成环境中使用的话,将脚本文件作为一个项目打开。 将需要查询的网站保存在相同目录下的websites.txt文本中,一行一个网站。 注:本脚本不能保证一次完全都能查询成功,但失败的网站会保存在Query failure.csv文件中,成功的网站会保存在webweight.csv文件中。 下面是最喜欢的环节放代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#! ...