Linux
文章平均质量分 82
胖虎是只mao
这个作者很懒,什么都没留下…
展开
-
keepalived配置文件详细说明和实际使用
keepalived配置文件详细说明和实际使用原创 2022-09-27 14:59:43 · 4116 阅读 · 0 评论 -
mysql 指定多个IP 绑定监听地址 bind_address
bind_address 参数:其实能否绑定多个IP跟mysql 版本有关系。MySQL 服务器在一个或多个网络套接字上侦听 TCP/IP 连接。,但一个地址可以映射到多个网络接口。要指定服务器应如何侦听 TCP/IP 连接,请 bind_address在服务器启动时设置系统变量。服务器还有一个 admin_address系统变量,可以在专用接口上启用管理连接。原创 2022-09-13 17:37:15 · 9158 阅读 · 0 评论 -
mysql 报错too many connections,修改max_connections连接数设置后不生效的解决方案
mysql 报错too many connections,修改max_connections连接数设置后不生效的解决方案原创 2022-09-13 16:07:16 · 1773 阅读 · 0 评论 -
linux 配置 NTP 服务器
NTP 是用于同步网络中计算机时间的协议,全称为网络时间协议(Network Time Protocol)。时区和时间一致性对于服务器运行非常重要,有时会直接影响到任务执行的结果。例如,在更新数据库或者分析日志时,时间顺序对结果有很大影响。为避免在节点上运行业务时出现逻辑混乱和网络请求错误等问题,我们需要统一相关 ECS 实例的时区设置,所以需要安装一个 NTP 服务用于同步各个节点之间的时间。(尤其环境各类节点比较多的时候,更需要做时间同步。)...原创 2022-08-11 02:01:50 · 4890 阅读 · 0 评论 -
m1pro pd17安装centos8 后,网络无法连接的问题,以及DNS的设置
1. 配置网络(由于在安装过程中没有配置网络,默认是关闭)编辑网络配置文件cd /etc/sysconfig/network-scripts/修改网卡配置文件,修改ONBOOT=yes #开机自启TYPE=Ethernet #网卡类型PROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcp #动态获取DEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROU原创 2022-02-20 22:14:15 · 1761 阅读 · 0 评论 -
centos aarch64(arm64) iso 下载地址
centos8:https://vault.centos.org/8.1.1911/isos/aarch64/centos7:https://vault.centos.org/altarch/7.6.1810/isos/aarch64/https://archive.kernel.org/centos-vault/altarch/7.6.1810/isos/aarch64/原创 2022-02-14 23:10:21 · 4232 阅读 · 0 评论 -
Linux中Swap与Memory内存区别
一、介绍Linux中swap与memory。对于memory没什么可说的就是机器的物理内存,读写速度低于cpu一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存的造价是要高于磁盘的,虽然相对来说价格一直在降低。除此之外,内存的断电丢失数据也是一个原因说不能把所有数据和程序都保存在内存中。既然不能全部使用内存,那数据还有程序肯定不可能一直霸占在内存中。当内存没有可用的,就必须要把内存中不经常运行的程序给踢出去。但是踢到哪里去,这时候swap就出现了。swap原创 2022-02-11 11:27:22 · 5582 阅读 · 0 评论 -
网络常用命令合集
常用网络命令合集ping 命令ipconfig 命令arp 命令(地址转换协议)traceroute 命令route 命令nslookup 命令nbtstat 命令netstat 命令net 命令一、 ping命令ping 是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping 就是一个测试程序,如果 ping 运行正确,大体上就可以排除网络访问层、网卡、Modem 的输入输出线路、电缆和路由器等存在的故障,从原创 2022-02-09 19:01:59 · 2552 阅读 · 0 评论 -
python 网络编程面试题
怎么实现强行关闭客户端和服务器之间的连接?在 socket 通信过程中不断循环检测一个全局变量(开关标记变量),一旦标记变量变为关闭,则 调 用 socket 的 close 方法,循环结束,从而达到关闭连接的目的。简述 TCP 和 UDP 的区别以及优缺点...原创 2021-06-09 00:32:29 · 1812 阅读 · 6 评论 -
python 复习—并发编程实战(八)——多线程和多进程的生产者消费者模型、线程、进程再总结
任务生产者负责生产数据(随机生成一个数字),消费者负责处理数据(判断生产出来的数据是不是质数)。现在假设有一个生产者和多个消费者。1. 多线程(Thread)的生产者消费者模型import randomimport timeimport mathimport threadingfrom queue import Queueclass Producer(threading.Thread): # 生产者线程 def __init__(self, data, num_sum):原创 2021-06-07 15:15:54 · 153 阅读 · 0 评论 -
python 复习—并发编程实战(七)——并发编程总结
Python并发编程学习并发编程加速程序的运行高薪程序员必备能力程序运行的5种并发粒度单线程单线程多协程多线程多进程多机器怎样选择并发技术如果单机无法搞定大数据计算IO密集型CPU经常在等待IO比如网络爬虫选择1:多协程 coroutine选择2:多线程 threadingCPU密集型计算密集型,CPU计算为主比如加密解密使用多进程multithreading线程池和进程池原理:提前创建好线程/进程放在池子里,新的task原创 2021-06-03 00:13:07 · 134 阅读 · 0 评论 -
python 复习—并发编程实战(六)——线程、多进程、多协程加速程序运行实例(多线程和多进程的对比)
一、多线程实例import threadingimport timelock = threading.Lock()class Account: def __init__(self, balance): self.balance = balancedef draw(account, amount): with lock: if account.balance >= amount: time.sleep(0.1)原创 2021-06-02 23:59:56 · 317 阅读 · 3 评论 -
python 复习—并发编程(四)——IO多路复用、协程
一、铺垫:基于socket发送http请求1、需求一:向百度发送请求搜索关键字“alex”,有如下两种方式: import requests ret = requests.get('https://www.baidu.com/s?wd=alex')方式二(socket方式,也是requests的原理): import socket sk = socket.socket() # 与百度创建连接: 阻塞 sk.connect(('www.baidu.com',8原创 2021-05-27 14:09:41 · 389 阅读 · 0 评论 -
python 复习—并发编程(二)——线程锁、threading.local线程池、生产者消费者模型、线程安全
一、线程锁线程安全,多线程操作时,内部会让所有线程排队处理。如:list/dict/Queue线程不安全 + 人(锁) => 排队处理1、RLock/Lock:一次放一个a、创建10个线程,在列表中追加自己,如下代码: import threading v = [] def func(arg): v.append(arg) print(v) for i in range(10): t = threading.Threa.原创 2021-05-26 17:13:30 · 226 阅读 · 1 评论 -
python —— gevent详解(三)
gevent 程序员指南gevent是一个基于 libev的并发库。它为各种并发和网络相关的任务提供了整洁的API。介绍本指南假定读者有中级Python水平,但不要求有其它更多的知识,不期待读者有 并发方面的知识。本指南的目标在于给予你需要的工具来开始使用gevent,帮助你 驯服现有的并发问题,并从今开始编写异步应用程序。Greenlets在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但原创 2021-05-11 15:26:37 · 1409 阅读 · 0 评论 -
python —— gevent详解(二) 协程、进程、线程
我们通常所说的协程Coroutine其实是corporate routine的缩写,直接翻译为协同的例程,一般我们都简称为协程。在linux系统中,线程就是轻量级的进程,而我们通常也把协程称为轻量级的线程即微线程。进程和协程下面对比一下进程和协程的相同点和不同点:相同点:我们都可以把他们看做是一种执行流,执行流可以挂起,并且后面可以在你挂起的地方恢复执行,这实际上都可以看做是continuation,关于这个我们可以通过在linux上运行一个hello程序来理解:shell进程和hello进程原创 2021-05-11 14:30:57 · 3082 阅读 · 1 评论 -
python —— 异步gevent、yeild、协程、阻塞
为什么要用异步?–这种网络应用通常瓶颈都在IO层面,解决等待读写的问题比提高文本解析速度来的更有性价比。–而多进程带来的优点(cpu处理)并没有得到体现,反而创建和调度进程带来的开销要远超出它的正面效应,拖了一把后腿。即便如此,多进程带来的效益相比于之前单进程单线程的模型要好得多。(多进程和多线程除了创建的开销大之外还有一个难以根治的缺陷,就是处理进程之间或线程之间的协作问题,因为是依赖多进程和多线程的程序在不加锁的情况下通常是不可控的,而协程则可以完美地解决协作问题,由用户来决定协程之间的调度。)参原创 2021-05-10 16:02:53 · 1561 阅读 · 2 评论 -
Linux中su、su -和sudo的区别
susu 切换到root用户,但是并没有转到root用户家目录下,即没有改变用户的环境。su -su - 切换到root用户,并转到root用户的家目录下,即改变到了root用户的环境。这个涉及到不同用户下的环境变量的配置。su和sudo没有切换工作目录和环境变量,只是赋予用户权限,而su -是真正切换到root登录,工作目录切换到/root,环境变量也同时改变.sudo通过sudo,我们能把某些超级权限有针对性的下放,并且不需要普通用户知道root密码(sudo用的不是root密码,而原创 2021-05-06 18:33:05 · 540 阅读 · 0 评论 -
Supervisor和Gunicorn部署Flask项目
基本环境最简单的Flask Web应用:新建文件夹myproject,里面就一个文件:myapp.pyfrom flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return 'Hi! It works!'if __name__=='__main__': app.run(host='0.0.0.0')想启动该应用,只要运行python myapp.py就可以在浏览器http://l原创 2021-04-24 22:20:58 · 1240 阅读 · 0 评论 -
LInux基础知识(五)—— shell环境、shell变量、字符串、数组、注释
1. Shell 脚本Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 “shell编程” 都是指 shell 脚本编程,不是指开发 shell 自身。2. Shell 环境Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可原创 2021-04-22 23:59:55 · 161 阅读 · 0 评论 -
Linux基础知识(四)—— yum、apt命令
一、yum 命令yum 语法yum [options] [command] [package …]options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。command:要进行的操作。package:安装的包名。yum常用命令1. 列出所有可更新的软件清单命令:yum check-update2. 更新所有软件命令:yum update3. 仅安装指定的软件命令:yum install <package_na原创 2021-04-22 21:19:29 · 1990 阅读 · 0 评论 -
Linux搭建 FTP 服务器、SFTP服务器
使用场景ftp是大多数网站的文件传输选择工具,但ftp并不是非常安全,并且在centos上搭建的vsftpd也非常的不稳定,偶尔会出现权限问题,例如500、或是账号密码不正确等等。而SFTP是基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。建议:更高的效率使用FTP协议,更安全的通信使用SFTP协议。sftp命令可以通过ssh来上传和下载文件,是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多FTP是一种文件传输协议,一原创 2021-03-26 12:00:54 · 1970 阅读 · 0 评论 -
Linux FTP并发连接及带宽限制
问题沿用练习一,通过调整FTP服务端配置,实现以下目标:最多允许100个FTP并发连接每个IP地址最多允许2个并发连接匿名访问时,将速度限制为 50KB/s用户登录访问时,将速度限制为 500KB/s在客户机上通过ftp或wget验证上述限制方案关于vsftpd服务器的并发及带宽限制,主要用到以下配置参数:max_clients:限制并发的客户端个数max_per_ip:限制每个客户机IP的并发连接数anon_max_rate:匿名最大速度(字节/秒)local_max_rate原创 2021-03-25 17:34:56 · 5069 阅读 · 1 评论 -
python 利用ftp上传文件至服务器、从服务器下载文件
ftplib模块是Python中默认安装的,通过它定义的FTP类中的各个函数,可以完成对FTP服务器的操作,既能实现简单的ftp客户端,也可以连接或者操作FTP服务端,完成文件上传或下载。1.函数介绍ftplib模块中各个函数功能如下:ftp=FTP() #设置变量 ,实例化ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect("IP","port") #连接的ftp sever和端口 ft原创 2021-03-25 15:50:02 · 6756 阅读 · 0 评论 -
Linux基础知识(三)——磁盘管理
Linux磁盘管理好坏直接关系到整个系统的性能问题。Linux磁盘管理常用三个命令为df、du和fdisk。df:列出文件系统的整体磁盘使用量du:检查磁盘空间使用量fdisk:用于磁盘分区dfdf命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。语法:df [-ahikHTm] [目录或文件名]选项与参数:-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k :以 KBytes 的容量显示各文原创 2021-03-11 19:12:56 · 811 阅读 · 0 评论 -
Linux 基础知识(二)——用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。一、Linux系统用户账号的管理用户账号的管理工作主要涉及到用户账号的添加、修改和删除。添加用户原创 2021-03-11 17:59:47 · 239 阅读 · 0 评论 -
Linux连接——硬链接、软连接
1.Linux 链接概念Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。硬连接硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项原创 2021-03-11 17:23:37 · 257 阅读 · 0 评论 -
linux基础知识(一)——目录结构、文件的属主和属组
一、Linux系统目录结构系统启动必须:/boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。/etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。/lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:原创 2021-03-11 16:43:48 · 2728 阅读 · 0 评论 -
Ansible之Roles、Playbook
1.Roles介绍ansible自1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷的include它们的一种机制。角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。主要使用场景代码复用度较高的情况下。Roles目录结构原创 2020-12-21 15:32:10 · 394 阅读 · 0 评论 -
Ansible基础入门介绍
1. Ansible快速入门介绍Ansible是一款简单的运维自动化工具,只需要使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务。Ansible的特点1、ansible不需要单独安装客户端,也不需要启动任何服务2、ansible是python中的一套完整的自动化执行任务模块3、ansible playbook 采用yaml配置,对于自动化任务执行过一目了然Ansible组成结构Ansible是Ansible的命令工具,核心执行工具;一次性或临时执行的操作都是通过该命令执行原创 2020-12-21 15:17:23 · 301 阅读 · 0 评论 -
mysql数据库从库同步延迟的解决方案
在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下,希望文章对各位会有所帮助。在从服务器上执行show slave status;可以查看到很多同步的参数,我们需要特别注意的参数如下:Master_Log_File: SLAVE中的I/O线程当前正在读取的主服务器二进制日志文件的名称Read_Master_Log_Pos: 在当前的主服务器二进制日志中,SLAVE中的I/O线程已经读取的位置原创 2020-12-15 16:09:07 · 1235 阅读 · 1 评论 -
MySQL架构备份之双机热备——MySql 主从复制、主主复制
M–S架构:实现双机热备(AB复制)1、可以降低master读压力2、可以对数据库做“热备”,热备只能解决硬件master硬件故障,软件故障等重大故障问题,但无法解决人为误操作导致的逻辑故障(列如输入错误的SQL语句把重要的记录删除了),所以常规的备份是必须。环境准备及要求:1、关闭防火墙和selinux2、hosts文件中两台服务器主机名和ip地址一一对应起来3、系统时间需要同步4、master和slave的数据库版本保持一致(系统版本保持一致)思路:1、master必须开启二进制日志原创 2020-12-09 19:04:00 · 4530 阅读 · 5 评论 -
rsync+inotify实现文件的实时同步
一、rsync工具介绍rsync(remote sync)即远程同步。rsync不仅可以远程同步数据(类似于scp),而且可以本地同步数据(类似于cp),但不同于cp或scp的是,它不会覆盖以前的数据,而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。rsync安装:yum install -y rsyncrsync的命令格式:rsync [选项] ... SRC DESTrsync [选项] ... SRC [ USER@ ]HOST:DESTrsync [选原创 2020-12-09 11:38:37 · 8578 阅读 · 0 评论 -
keepalived的抢占与非抢占模式
背景:两个节点haproxy通过keepalived实现高可用说明:harpxy的实际运行过程中,当master发生异常,且后期恢复master正常后,存在抢占或非抢占两种情况。简单点说抢占模式就是,当master宕机后,backup 接管服务。后续当master恢复后,vip漂移到master上,master重新接管服务,多了一次多余的vip切换,而在实际生产中是不需要这样。实际生产中是,当 原先的master恢复后,状态变为backup,不接管服务,这是非抢占模式。接下来分4种情况说明1)俩台都为原创 2020-11-30 17:57:11 · 3326 阅读 · 3 评论 -
Keepalived+Nginx实现高可用集群
Keepalived+Nginx 高可用集群(主从模式)集群架构图:说明:Keepalived机器同样是nginx负载均衡器。实现思路:将keepalived 中的vip作为nginx负载均衡的监听地址,并且域名绑定的也是vip的地址。说明:Nginx 负载均衡实现高可用,需要借助Keepalived地址漂移功能。1)实验环境准备(此处都是使用的centos7系统)# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)原创 2020-11-30 17:44:04 · 881 阅读 · 2 评论 -
Linux检测远程端口是否打开
在Linux系统中查看远程端口是否打开的方法很多,以下来列举一1. 可以使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:lsof -i:80 如果有显示说明已经开放了,如果没有显示说明没有开放2. 通过nmap来检查端口是否通畅nmap ip 显示全部打开的端口[root@localhost etc]# nmap 172.16.3.34 80...原创 2019-12-10 14:48:08 · 11331 阅读 · 0 评论 -
Linux系统软件看门狗
1.看门狗定义Linux 自带了一个 watchdog 的实现,用于监视系统的运行,包括一个内核 watchdog module 和一个用户空间的 watchdog 程序。内核 watchdog 模块通过 /dev/watchdog 这个字符设备与用户空间通信。用户空间程序一旦打开 /dev/watchdog 设备(俗称“开门放狗”),就会导致在内核中启动一个1分钟的定时器(系统默认时间),此......原创 2019-11-07 16:28:43 · 8913 阅读 · 4 评论 -
Linux 解析 ip 的各种命令
IP命令完全可以取代ifconfig命令 甚至更强ip常用命令格式如下:ip [ OPTIONS ] OBJECT { COMMAND | help }对象OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm |...原创 2019-11-01 16:53:04 · 3360 阅读 · 0 评论 -
curl命令详解
curl命令curl 是一种命令行工具,作用是发出网络请求,然后获取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面列举其常用功能。1.查看网页源码直接在 curl 命令后加上网址,就可以看到网页源码。以网址 www.baidu.com为例(选择该网址,主要因为它的网页代码较短)。$ curl www.baidu.com如果要把这个网页保存下来,可以使用 -o 参数...原创 2019-08-09 17:26:17 · 3699 阅读 · 0 评论 -
Python 进程和线程、协程浅析
python进程Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子...原创 2019-05-06 17:25:25 · 265 阅读 · 0 评论