文章列表

  • 全部
  • kubernetes3
  • pgSQL1
  • 数据库19
  • awk1
  • openssl1
  • 私有yum仓库1
  • shell2
  • linux11
  • scripts4
  • nginx2
  • MySQL19
  • rsync1
  • Linux

    shell中特殊变量

    特殊变量说明备注$!Shell最后运行的后台Process的PID(后台运行的最后一个进程的进程ID号)$#shell脚本传入参数的个数$$Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)$0脚本本身的文件名$1传到Shell当中的第一个参数以此类推$2 $3…$n$*所有参

  • Linux

    shell脚本统计nginx日志访问IP归属地

    这个脚本的主要功能是统计nginx日志中访问IP的归属地并显示其访问次数。它支持并发执行以提高处理速度,但同时也需要注意主机资源的消耗。脚本接收一个参数,即nginx日志文件的路径。以下是该脚本的摘要: 该脚本首先检查传入的日志文件是否存在,并判断是gzip压缩文件还是普通文本文件。然后,它会读取日志文件,并通过awk命令统计每个IP的访问次数。 接着,脚本会遍历每个IP及其对应的访问次数,并通过curl命令查询每个IP的地理位置信息。这些信息会写入一个临时文件,并随后并发地处理这些IP信息,以提高处理速度。处理完成后,脚本会显示总的IP数量,并询问用户是否直接查看结果文件。如果用户选择查看,脚本会展示文件内容;否则,脚本会退出并删除临时文件。 需要注意的是,这个脚本在处理大量数据时可能会消耗较多的系统资源,因此在使用时需要注意监控系统的资源使用情况。另外,由于使用了并发处理,可能会因为网络延迟等原因导致处理速度波动。如果需要单独执行以查看进度,可以关闭并发执行的代码块中的部分注释行。

  • NGINX

    Nginx配置文件 location 匹配规则

    基于上述文章内容,这是一个关于nginx的location指令的摘要总结: Nginx的location指令是用于匹配不同的URI请求,并对请求进行不同的处理和响应。location指令的匹配规则对于理解nginx的工作原理非常重要。 location的匹配遵循以下优先级规则: 1. 精准匹配:使用“=”进行精准URI匹配。 2. 前缀匹配:匹配请求URI的前缀。如果找到匹配,nginx会停止搜索其他类型的匹配。 3. 正则匹配:使用“~”或“~*”进行正则表达式的URI匹配,区分或不分大小写。当找到多个正则匹配时,按照配置文件中的顺序进行匹配。 4. 命名location:使用“@”定义,用于内部重定向,不参与正常的请求匹配。 在处理请求时,nginx首先会进行精准匹配,如果没有找到,则进行前缀匹配,然后搜索正则匹配。正则匹配的搜索是按照配置文件中的顺序进行的。 此外,还有一些其他的location配置相关的事项需要注意,如: 1. 请求URI中的参数不能在location中直接匹配,但可以通过$query_string变量进行访问。 2. location配置中,URI尾部的斜杠(/)不影响匹配。 3. 如果URI结构以域名结尾,尾部是否带有斜杠都不会导致重定向。 4. 如果URI结构是以目录形式结尾,尾部缺少斜杠会导致重定向。 最后,对于实际使用中的location配置建议,至少应该定义三个匹配规则:直接匹配网站根、处理静态文件请求和转发动态请求到后端应用服务器。这样的配置可以提高处理效率并适应不同的请求需求。

  • Linux

    MySQL8二进制安装脚本

    这是一个用于安装和配置MySQL 8.0.27的bash脚本摘要: 该脚本首先检测系统是否有残留的mariadb并进行清理。然后安装必要的依赖,创建MySQL系统用户。接着下载并解压MySQL 8.0.27,创建数据目录并授权。配置环境变量后,写入配置文件并初始化数据库。 具体步骤如下: 1. 检测并清理系统中残留的mariadb。 2. 安装必要的依赖,如tar、libaio-devel等。 3. 创建MySQL系统用户。 4. 下载MySQL 8.0.27并解压。 5. 创建数据目录并授权。 6. 配置环境变量,将MySQL的bin目录添加到PATH中。 7. 写入配置文件,包括端口、数据目录、基于目录等。 8. 初始化数据库,可以选择是否生成MySQL登录密码。 9. 配置systemd服务,使MySQL可以作为系统服务运行。 最后,脚本提供了使用systemctl命令或/etc/init.d/mysqld来启动和关闭mysqld的方法,并提示了如果启动失败应查看哪些日志文件。此外,还提示了在初始化时如果选择了生成随机密码,应在脚本目录下的initialize.log文件中查看。 总的来说,这是一个完整的MySQL安装、配置和初始化的脚本,适用于Linux系统。

  • Linux

    ssh密钥局域网批量分发脚本

    #!/bin/bash#获取内网eth1 ip地址IP=`ip address show eth1|awk -F"[ /]+" '/inet /{print $3}'`#截取网络位NET=${IP%.*}#主机密码PASSWD=echo#主机位起止

  • Linux

    已存在nginx日志切割脚本

    随记:nginx当开启日志记录时,只要有web资源访问就会有访问记录产生,access.log就会持续增长,所以需要进行日志切割,让nginx重新写入新的日志文件,由于之前未对网站未进行日志切割,导致之在做了日志切割后,第一次的日志量过大,统计较为困难,因此就有了它#!/bin/bash#定义日志文

  • NGINX

    logrotate切割nginx日志

    摘要: 本文主要描述了如何使用logrotate对nginx日志进行切割。logrotate是一款Linux自带的开源日志切割软件,无需额外安装。本文首先介绍了logrotate的基本概念和优点,然后详细说明了其命令选项和参数。接着,根据需求,配置了一个针对nginx日志的logrotate方案,包括按天切割、保留最近30天的日志文件、忽略空日志、gzip压缩、延迟压缩、备份日志保存到指定目录,并在切割后热重启nginx。对于多个目录的日志切割,只需在配置文件中指定日志文件即可。最后,提供了使用系统默认的logrotate定时任务或crontab定时任务进行日志切割的方法。

  • MySQL

    MySQL 配置文件详解

    这篇文章提供了MySQL配置文件的详细选项和说明,包括配置文件的读取顺序、客户端和服务端配置参数等。内容涵盖了MySQL服务器的运行参数、性能优化、存储引擎配置、日志设置、安全设置等多个方面,提供了对MySQL服务器进行精细控制的方法。这些参数可以帮助管理员优化MySQL服务器的性能、提高数据安全性、改善用户体验等。 在[mysqld]部分,包含了服务器配置参数,如内存使用、文件I/O、日志管理、存储引擎等。在[client]或[mysql]部分,则是客户端配置参数,包括连接超时、字符集设置等。 这些参数可以根据服务器的实际使用情况和需求进行调整,以达到最佳的性能和安全性。同时,还提供了对MySQL服务器进行故障恢复、备份、安全配置等方面的指导。 需要注意的是,一些参数(如内存使用参数、I/O参数等)需要根据服务器的硬件资源和实际使用情况来合理设置,避免过度配置导致的资源浪费或配置不足导致的性能问题。在修改配置参数后,通常需要重启MySQL服务才能生效。

  • MySQL

    MySQL之MHA高可用和读写分离

    MHA(Master High Availability)是一个为MySQL数据库提供高可用性的解决方案。它通过实现主备复制、故障检测以及故障切换等功能,确保数据库的高可用性。MHA的工作原理包括保存宕机Master的二进制日志、识别最新更新的Slave、应用中继日志到其他Slave、应用从Master保存的二进制日志事件,以及提升一个Slave为新的Master。MHA利用SSH进行远程连接和管理,确保数据传输的安全性。 MHA具有自动故障转移快、数据一致性高、无需修改现有MySQL设置、易于扩展、性能优秀等特点。部署MHA需要满足特定的先决条件,如开启binlog、设置不同的server_id、创建主从复制用户等。MHA管理器通过配置文件管理多个主从复制集群,并在Master故障时自动切换到新的Master。 此外,MHA还提供了在线主库切换功能,能够安全地切换当前运行的主库到一个新的主库中。MHA由两部分组成:Manager工具包和Node工具包,分别用于管理和节点操作。 MHA的优势在于能够快速进行故障转移,保证数据一致性,且不需要对现有的MySQL环境进行重大修改。它适用于任何支持复制的存储引擎,并能在半同步复制和异步复制模式下工作,对性能影响小。部署MHA时,需要确保所有节点满足特定条件,如SSH连接、数据库配置等。 在实际应用中,MHA通常与其他数据库中间件如Atlas结合使用,以提供更为复杂的数据库管理功能,如读写分离、负载均衡、自动分表等。通过合理配置和监控,MHA和Atlas能够显著提高MySQL数据库的可扩展性和可用性。

  • MySQL

    MySQL主从复制

    摘要总结: MySQL的主从复制是一种数据同步技术,允许从库复制主库的数据更改,确保主从库之间的数据一致性。实现主从复制的前提包括:两台或多台数据库实例、主库开启二进制日志、主库创建复制用户、主库和从库具有不同的server_id、从库在开启复制前需获取主库数据并记录binlog位置、从库需知主库信息(IP、端口、用户、密码、日志文件和位置)并开启IO和SQL线程。主从复制涉及主库的binlog、从库的中继日志、master.info文件和IO、SQL线程。 主从复制的原理涉及change master to语句和start slave命令的使用,从库通过IO线程从主库接收binlog,并存储至中继日志中,SQL线程读取中继日志并执行。 对于半同步复制,MySQL从5.5版本开始支持,其基本原理是主库提交事务后,等待至少一个从库确认接收并写入中继日志后再返回客户端。半同步复制有两种模式:AFTER_SYNC和AFTER_COMMIT,主库在收到从库确认后决定是否提交事务。 为启用半同步复制,需要在主从库安装相关插件并设置全局参数。主库需设置`rpl_semi_sync_master_enabled`为1,从库需设置`rpl_semi_sync_slave_enabled`为1,并重启MySQL服务。 主从复制的参数监控和调试涉及查看`rpl_semi_sync_master_clients`、`Rpl_semi_sync_master_net_avg_wait_time`等状态变量,以监控半同步复制的运行情况。 主从复制和半同步复制提供了数据一致性和高可用性,但也可能带来性能影响。在实际应用中,需根据业务需求和性能考虑选择合适的复制策略。

avatar

半城小栈

吾乃 Echo,对运维痴迷不已😃,踏入此领域仿若闯入神秘太古世界。

运维途中,战故障似与太古凶兽搏斗,艰难无畏。

于开源社区交流论道,与高手过招。望吾等在运维路上扶摇直上🚀!

  • 42

    文章

  • 5

    分类

  • 11388

    访问量

  • 2023-08-13

    建站天数

avatar

半城小栈

吾乃 Echo,对运维痴迷不已😃,踏入此领域仿若闯入神秘太古世界。

运维途中,战故障似与太古凶兽搏斗,艰难无畏。

于开源社区交流论道,与高手过招。望吾等在运维路上扶摇直上🚀!

  • 42

    文章

  • 5

    分类

  • 11388

    访问量

请您轻一点,我是很昂贵的机器人哦! O.O