问题如下    最近要对一台服务器做一些操作,以前我也没有登录过,今天要去操作的时候发现 直接卡着 如下图的界面。最开始我以为是网络差,但是等登录进去了之后发现一点都不卡。方案一般出现卡顿就是修改 ssh 配置文件里面的修改 UseDNS  和 GSSAPIAuthentication 为 no。但是这一次发现不行。觉得很奇怪。然后觉得卡半天太烦了,就 操作了 Ctrl + C 。偶然发现居然进去了。然后根据这个操作反推 那应该是执行了什么脚本。一般ssh 登录会默认执行 .bash_profile  .bashrc 。我就打开文件看了看,发现里面真有一个执行shell脚本,关闭搞定。从来没有如此丝滑过
问题如下    最近公司内部来了几台二手服务器,这几台二手服务器都有多块磁盘,一块磁盘 500多G,一块磁盘 30T。我们把操作系统安装在 500G的磁盘上,等安装完就要挂载另一块次,然后就按照以前的方式进行磁盘分区,弄完以后发现,怎么只分区了一块 2T的分区? 然后就大致想了想,应该是分区方式不对,然后就搜索了下发现的确有这个区别。原始解释如下2T以上磁盘和以下磁盘分区格式:    挂载2T以上的磁盘通常需要使用GPT(GUID Partition Table)分区格式,而2T以下的磁盘则一般使用MBR(Master Boot Record)分区格式。因为MBR分区格式所支持的最大硬盘容量是2TB,如果想使用更大容量的磁盘,就必须使用GPT分区格式。分区工具:    2T以下使用fdisk分区工具,但是对于硬盘容量大于2T时,这个命令就不管用了,因为MBR分区表只支持
问题如下    最近登录一台服务器,提示如下错误并截图如下:no matching host key type found. Their offer: ssh-dss。    解决方案    查阅了下资料说是 因为OpenSSH 7.0以后的版本不再支持ssh-dss (DSA)算法,官方的说法是这个算法太弱了。Mac电脑升级之后版本是高于7的。可以通过加参数支持改算法如下ssh -oHostKeyAlgorithms=+ssh-dss user@ip
  问题        最近我们遇到了一个问题,我们有的Job是常驻的,输出的日志是固定为了,例如如下命令(once.sh 是一个死循环的脚本),这样所有的命令都要输出日志到 notice_wechat.log{ /bin/sh jobs/bin/once.sh notice/wechat ;} >> /data/logs/jobs/notice_wechat.log 2>&1        如果使用默认的logrotate【logrotate基础传送门】的配置,就会重命名然后生产一个新文件,例如 notice_wechat.log_20221020 。但是进程是常驻的,切割之后日志会输出到 notice_we
需求        大家常用的分享就是把 电脑屏幕或者手机屏幕投屏到电视上面。这个一般手机都支持,电脑投屏到电视这个需要安装一些软件。        我的需求是将我的设备投屏到我的Mac 电脑上面,这种需求听起来有点不太常用,但是对我来说常用,因为我经常用ipad画图和设计,在电脑上给大家讲解。 我有如下几个设备1个 ipad1个 ios 手机2个android 手机满足过程        我在测试各种软件过程中发现,很多软件都无法满足android投屏到笔记本。所以我分两个部分给大家讲解苹果系列        苹果手机和ipad他们都说升级到15之后都可以直接在
问题        最近我们在重新部署线上云主机的堡垒机环境,其中用到了OpenVPN。最后安装好了之后发现,客户端虽然可以连接服务端,但是无法访问外网等网站,也就是只能访问这一台堡垒机。分析过程        我个人对网络其实不怎么熟悉,我就和上海一个在拼多多的运维朋友请教。最开始他也挺懵逼的,我们自己都在自己公司内网配置VPN 都没有遇到过这个问题。我们就觉得有几个点会出出问题:服务端配置有问题VPN客户端网络有问题服务器网络有问题服务器该虚拟网卡配置有问题第1点 既然我们客户端工具可以连接上应该没问题排除 。第2点 我们在客户端连接的机器上面,可以通过内网地址直接登录到服务器说明,自己电脑网络没问题 排除。第3点 服务器本身可以访问外网,排除。为了确定是第4点的问题,我们使用了 Wireshark 进行流量抓包。发现目前就是
  在工作中会经常对数据库进行运维操作,例如大表清理等等统计数据库占用的空间统计同一个实例下面的所有数据库的容量大小SELECT  table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)', sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)', sum(truncate(DATA_FREE/1024/1024, 2)) as '碎片占用(MB)' from information_schema.tables group by table_sch
  起因        我在慕课有个flask 入门的课程:点击这里查看慕课课程。当时课程讲解的使用学习的视频网站已经不再提供服务了,为了方便大家学习这里重新找了一个视频源。这里郑重声明:该代码仅用于学习演示,请大家妥善使用,不要给源网站造成任何压力。示例代码新建一个python文件,文件名称是 movie2.py,代码如下# -*- coding: utf-8 -*- from application import app, db import requests, os, time, hashlib, json, re from bs4 import BeautifulSoup from common.libs.DataHelper&
需求    我们都知道nginx日志里面有域名,同时也有用户的远程ip。但是ip其实我们看不出什么东西,我们知道通过ip其实可以查询一些地理位置信息出来的(很多网站都可以直接查的)。这个过程就是GeoIP:就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息。而在logstash里面就有一个解决这个需求的插件:logstash-filter-geoip数据格式    logstash-filter-geoip 本身不用安装,logstash默认已经安装了,如果您的没有安装,可以直接执行安装命令/usr/share/logstash/bin/logstash-plugin install logstash-filter-geoip    该插件有如下信息"geoip" => { &nb
公司的技术栈    公司经历了1年的发展,慢慢也使用了很多技术服务。感觉创个业把上海学到的全部知识都搬出来了。我们主要技术栈如下技术团队组成    公司技术团队主要由前端 + 后端组成。运维岗 和 App研发岗 都算在后端或者前端里面去了。目前招聘的大部分后端是写PHP的,但是如果会Python 或者Go 会加分。这里不讨论语言的哪些破事。组建团队要根据当地的人才组成和自己公司的实力出发。例如我个人强项是PHP和Python,Java虽然会但是基本都忘记的差不多了,那我就会以我擅长的招聘,总不能来了全是Go,我自己都不知道如何去评价代码质量了。网络    就像我其他文章里面说的,我懂个锤子的网络。都是被逼出来的,公司搬迁到新的办公室。那么大的办公室网络总得搞起来,不说多么正规,最起码要保证上网速度了。那就提前了解下,慢慢知道这些网络设备是干什么的的了。为了省钱,我们所有
两年的变化      从2019年开始离开正常上下班的工作以来已经两年半了,我们列个时间线来说说这些事情。2019年6月 谈定去广州白云的事情2019年7月初 办完离职手续前往广州白云区进入项目中(在6月与7月之间电话远程面试,当时招聘了一个人,成立的公司叫做:广州威宇网络科技有限公司   已注销)2019年7月 ~ 2019年12月30日 期间主要忙于当时承诺要做的项目 也是属于和广州老板的比较好的蜜月期。2019年12月31日 ~ 2020年1月5日  三家人一起去了马尔代夫2020年1月15日前  离开广州先回了一趟上海去然后在回去了湖北襄阳。2020年1月23日 湖北封城 当时我回湖北襄阳老家了。媳妇和丈母娘一家在上海过年。2020年3月  离开了襄阳去了安陆然后去了广州。由于襄阳在湖北的西北所以影响不是很大,当时离武汉越近的地方影响肯定是越大2020年3月 ~ 2020年5、6月 主要忙于
缘由    git 目前已经是非常流行的版本管理工具了。当时我在安居客的时候就已经使用这个工具了。而代码私有化管理是正常的一个需求,因为代码也是公司的资产。这几年使用过好几个,最开始的是gitlab,我专门写过一篇文章:用GitLab搭建自己的私有GitHub。然后是gogs。目前我们使用的是gitea。Gitea    gitea是从 gogs发展而来的,我个人使用过程发现感觉比gogs安装和使用都方便,还有是开源的。这点必修要佩服哪些开源的人和团队,因为有了这些开源工具才让我们研发效率更高更快。具体更详细的介绍,可以看官方文档,具体链接我放在参考资料部分了。准备gitea需要数据库记录基本信息,数据库我选用的是MySQL安装  二进制安装最简单,参考地址:二进制安装文档 。下载执行就好了wget -O gitea https://dl.gitea.io/gitea/
  问题        由于公司使用了OpenVPN来保证网络的安全,但是发现每一次连接上VPN之后整个网络都变成服务器的出口IP了,这时候网络就非常慢了,并且这样也不对,应该需要走OpenVPN的再走。这时候就需要配置分流了。配置在服务端和客户端改一个都可以,由于改服务端影响比较大,所以那就改客户端的配置客户端路由分流路由控制需要由三个参数进行定义:route-nopull如果在客户端配置文件中配route-nopull,openvpn连接后将不会在电脑上添加任何路由,所有流量都将本地转发。vpn_gateway如果在客户端配置文件中配vpn_getaway,默认访问网络不走vpn隧道,如果可以通过添加该参数,下发路由,访问目的网络匹配到会自动进入VPN隧道。route 10.0.0.0 255.255.255.0  vpn_gateway route 172.
  缘由        前面不是写过一个文章 局域网内网机器上网实操。基于这个情况,有时候需要某台机器的文件夹或者文件要被其他机器共享。假设服务器如下服务器名称操作系统IP描述服务器ACentos7.9192.168.1.10文件服务器服务器BCentos7.9192.168.1.11需要访问服务器A的文件技术方案技术方案肯定比较多,例如可以直接 scp 复制服务器A的需要文件到 服务器B。还有一种方式可以共享挂载 :NFSNFS网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC
缘由    我们在大数据数据里面有一类数据是 域名,例如 www.jixuejima.cn ,我们需要把 cn 和 jixuejima.cn 提取处理,这个其实就是TLD(TOP LEVEL DOMAIN)顶级域名解析过程。    大家看过我们前面ELK相关文章的,都知道我们处理过程是 FileBeat -> Redis -> LogStash -> ES 。在 聊聊公司的技术栈  这篇文章中我就说过这个过程,但是肯定很多人很郁闷,为什么不能直接从FileBeat 直接 到 ES。其实就是因为原始数据要结果处理之后才能进入ES,而FileBeat处理能力是有限并且是非常差的(至少我们在使用过程中发现就是这样的一个结果)。解决方案    logstash有很多插件可以用,找了很久发现了一个 : https://gi
缘由        最近看到了2个项目,促使我再次核查了以下这个软件是什么。这两个项目是 webterminal 和 jumpserver 。这两个项目里面都有一个功能 运维审计,用户行为录像。挺好奇这个录像怎么做的,就去找了下有咩有类似的开源软件。其实以前在上海安居客的时候我们运维也有这种软件,但是具体是不是叫这个名字我不太清楚,我个人觉得这种录屏软件挺神奇了 就想了解下,当然由于种种原因 直到本周我才认真查阅了下,找到了这个可以实现这个功能的软件:asciinema介绍        asciinema 是一个开源命令行终端录制器,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提供方法在终端或者web浏览器中进行回放。asciinema的录制和播放都是基于文本的,相比传统的video有很多好处,例如录制
缘由        前面我们讲解了 ELK 的搭建过程。最近在处理系统数据发现了一个问题,一个ES节点处理太慢了,基本上要20多个小时才能处理完。这样我们就只能增加ES节点,部署集群模式了。当前是这种单节点服务集群搭建目的要搭建成3节点的服务器,其中3个节点是主节点也是数据节点其实配置ES集群是比较方便了,大家主要几个参数就可以了,主要注意以下几个参数就好了#集群的名字 cluster.name: app-data #节点的名字 node.name: node-1 #节点是否为master节点 node.master: true #节点是否为数据节点 node.data: true #发现节点,一般三个就够了,不需要配置所有的节点 discovery.zen.ping.unicast.hosts: ["192.160.10.1:9300","192.160.10.2:9
缘由        随着公司研发人员越来越多,为了安全控制要对服务器访问进行控制。为了让线上服务器更安全,所以要进行技术改造。如下图是以前的架构图图。技术人员主要通过SSH到堡垒机 在通过堡垒机去链接其他服务器或者数据。此时堡垒机是要暴露一个公网SSH端口在外面的,这样不太安全。所以想到了用VPN解决改变之后的架构图对比之后我们可以发现,SSH线路被VPN取代了,这样我们就可以把SSH的端口关闭掉,只使用VPN就可以直接到堡垒机了。这样我们就需要在堡垒机服务器安装一个VPN服务就可以了。关于VPN软件相关东西就不细说。本来写了很多内容,微信公众号那边提示违规了,那就去掉了,机制的你们肯定可以找到对应的解决方案。参考脚本点击这里。当连接上VPN,这时候你就相当于在堡垒机服务器上面了,直接可以连接 业务服务器了。至于如何控制每个用户可以登录哪些业务服务器 需要增加业务系统,我们内部自己用Python开发了一套CMDB
  缘由    我们有个同事要安装一个软件,就用yum 安装,然后就悲剧。安装完成之后 发现无论执行任何命令都会报错,如下错误psgrep: relocation error: : /usr/lib64/libpthread.so.0: relocation error: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference/usr/lib64/libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVAT
缘由    大概9月份有一个脚本总是无法正常执行完,后来手动执行总是会看到出现 “ Segmentation fault ” 错误。我就根据这个错误去搜索引擎查了下,大部分都说是内存错误,我以为是内存不够大,就修改了运行的内存。但是最后发现还是会出现这个错误。排查错误    这种错误一般要生成core.dump文件方便分析,如何生成?如何分析?生成core.dump    默认是不生成的,需要执行如下命令打开。如果再出现 上面的错误的时候 就会生成 core.dump文件(在执行命令的当前目录)ulimit -c unlimitedgdb分析    一般执行如下命令可以进行分析##安装gdb yum install gdb ##分析core文件,core.13
缘由    最近购买了一批二手Dell服务器,由于一些原因远程控制卡没办法使用,所以只能安装OMSA管理工具OMSA 介绍    DELL OMSA的全称为Dell Openmanage Server Administrator,它是戴尔公司基于自主研发力量开发的IT系统管理解决方案,通过与业内领先的系统管理解决方案供应商密切配合,在深入了解用户对系统管理需求的基础上,OMSA系统管理方案可以全面解决系统管理人员最关心的系统部署、系统监控和系统变更三大系统管理问题。它通过提供以下两种方式来对本地和远程的服务器进行管理和监控。1、基于Web浏览器的集成图形用户界面(GUI)2、操作系统的命令行界面(CLI)工具大家可能对DELL的IDRAC更熟悉一点,OMSA其实就是 IDRAC企业版的开源社区版。这里列出IDRAC和OMSA的web界面,两者看着非常相似,功能上也是非常相似。IDRAC截图界面如下OMSA截图
缘由    最近我们接到一个客户项目,客户所有的东西必须部署在独立内网里面的,但是整个程序有一部分是需要访问外网的,可以理解为调用外部网址接口,所以我们就要出一个方案来解决这个问题。假如内网服务器列表如下服务器名称操作系统IP描述服务器ACentos7.9192.168.1.10程序服务器服务器BCentos7.9192.168.1.11程序服务器服务器CCentos7.9192.168.1.12这台机器可以上外网,交换机上专门配置的技术难点    由于我个人对于网络这块连半吊子都算不上,所以只能说硬着头皮上 并且还要考虑安全问题。在做的过程中请教了以前安居客的网络工程师大神,一路走下来,算是磕磕碰碰搞定了,虽然不是那么正统,最起码问题解决了。遇到问题主要如下需要一个 http/https 代理, 让程序的接口可以访问出去yum 安装软件 如何在线安装git 可以使用ssh协议进行clone 更新禁
起源        最近发下很多人在我的python课程下面提问,关于安装完扩展运行程序的时候出现如下的莫名其妙的错误Traceback (most recent call last):   File "manage_web.py", line 2, in     from application import app,manager   File "/data/www/private_deploy/python3_yuanwei/application.py", line 3, in    &
起因大家都知道我有个 Python Flask构建微信小程序订餐系统  课程。这个课程主要是讲解 小程序在线商城的。最近微信小程序更新了获取用户信息的接口:getUserInfo 换成了getUserProfile实践过程小程序修改pages/index/index.wxml 修改如下<button class="confirm-btn" bindtap="getUserProfile" wx:if="{{regFlag==false}}">授权登录</button>pages/index/index.js 修改如下在login方法之后新增加如下方法,为新加的按钮添加触发事件 getUserProfile: function (e) {     var that =&
为什么需要分部署部署        对于一般数据量不太或者对浏览器要求不多样化没必要多台机器部署。多台机器部署主要解决以下。数据量比较大,一台机器无法承受所有的请求需要不同的浏览器环境可远程调用,把业务代码和浏览器操作分离环境准备        我们需要提前准备多台机器(可以是虚拟机)。由于是java的所以需要配置相对来说搞一些,个人建议最低2核4G主机名IP配置描述test-001192.168.40.52核4G主节点 + 任务节点(chromedriver + chrome浏览器)test-002192.168.40.62核4G任务节点(chromedriver + chrome浏览器)开始部署架构下载        官方下载地址:https://www.seleni
  缘由    我们有一个产品牵扯到核查数据,在核查数据过程中会发现有一些违规网站,这一些违规网站我们要进行截图保留证据。如果是人工截图就非常麻烦,需要截图之后上传到系统,增加了大家的工作量,我们就想着试着程序自动化截图解决方案    由于我们爬虫都使用的python selenium 调用的chrome无头浏览器,所以我们依然选择了selenium调用chrome进行截图。截图核心代码如下,非常简单###核心代码如下 driver.get( url ) #初始化一个屏幕大小 driver.set_window_size(1400, 900) ##通过脚本获取页面宽和高,设置窗口大小 width = driver.execute_script("return document.documentElement.scrollWidth"
  缘由        最近我们一台高防服务器,在同步服务器时间时报 no server suitable for synchronization found,最后经查实是机房屏蔽了udp端口所致,因为ntpdate同步时间使用的是udp123端口。rdate解决方案        既然ntp不行我们改用rdate 完全可以解决因国内一些高防机房屏蔽UDP端口而造成的时间无法同步问题。同时rdate使用的端口是37安装yum install rdate同步安装完成之后可以先手动同步 : /usr/bin/rdate -s time.nist.gov 。最保险的方式是配置定时任务 每10分钟或者半个小时执行一次*/10 * * * * /usr/bin/rd
  缘由        目前由于工作需要,我们需要爬虫(本人严重申明:商业爬虫属于违规行为,请各位技术同事不要有意无意的做违规的事情)获取网页一些东西,但是大家都知道目前有很多网站都是用前后端分离的,使用curl请求是没办法获取到页面信息的,所以我们就基于目前我们相对擅长的技术点选择了 “Selenium”。刚好自己又会一点Python。所以这样我们的技术方案就可以执行下去了。Selenium介绍       Selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目。从我个人浅显的理解:提供了扩展来模拟用户与浏览器的交互。有如下特点支持主流的大部分浏览器:ie、ff、safari、opera、chrome支持多平台:windows、linux、MAC 支持主流语言的操作库:Python、Java、C#、Ruby、Jav
  起源        最近发下很多人在我的python课程下面提问,关于执行python3.7 安装某些扩展有如下报错ModuleNotFoundError: No module named ‘_ctypes’出现原因        Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError:
  起源        最近发下很多人在我的python课程下面提问,关于执行python 定时器Job会报错 如下In aggregated query without GROUP BY, expression #1 of SELECT list contains出现原因        在MySQL5.7.5后,默认开启了ONLY_FULL_GROUP_BY,所以导致了之前的一些SQL无法正常执行,其实,是我们的SQL不规范造成的,因为group by 之后,返回的一些数据是不确定的,所以才会出现这个错误。解决方案        我们知道了原因,就可以去找到对应的解决方法,主要都是修改
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981