Linux

Linux 学习笔记

Docker 搭建 PXC 集群实现负载均衡 Linux

Docker 搭建 PXC 集群实现负载均衡

1. 创建 PXC 集群 1.1 拉取 pxc 镜像 1.2 给 pxc 集群创建 docker 内部网络 1.3 给 pxc 集群创建 docker 卷 1.4 创建 pxc 容器节点 1.5 创建 pxc 容器集群 以 node1 为基础 CLUSTER_JOIN=node1 : 加入 node1节点. 创建节点时需等前一个节点mysql 初始化完成. 2. 负载均衡 2.1 拉取haproxy镜像 2.2 创建 haproxy 配置文件 2.3 创建 haproxy 容器 进入 haproxy1 容器,指定haproxy 启动配置指令 创建haproxy 的 mysql 用户 2.4 haproxy 监控: http://ip:4001/dbs pxc 集群重启 重启docker服务和pxc集群容器后,发现pxc集群出现闪退 解决方法: safe_to_bootstrap参数被PXC用来记载谁是最后退出PXC集群的节点。 比如node1是最后关闭的节点,那么PXC就会在把safe_to_bootstrap设置成1,代表node1节点最后退出,它的数据是最新的。 下次启动必须先启动node1,然后其他节点与node1同步。 如果在PXC节点都正常运行的状态下关闭宿主机Docker服务或者电源,那么PXC来不及判断谁是最后退出的节点,所有PXC节点一瞬间就都关上了,哪个节点的safe_to_boostrap参数就都是0。 解决这个故障也很好办,那就是挑node1,把该参数改成1,然后正常启动node1,再启动其他节点就行了。 查看node1挂载目录: 修改 grastate.dat 文件里的 safe_to_bootstrap: 0 改为 safe_to_bootstrap: 1 重新启动pxc集群所有节点,注意node1节点顺序
VPS加速引擎:Linux版锐速全自动安装包 Linux

VPS加速引擎:Linux版锐速全自动安装包

锐速在今年已经宣布不再为用户提供免费版本,但遗憾的是即使你想付费购买也不行,锐速已关闭掉注册。 不过好在已经有VPS网友发布了破解版本,至少当前如果你需要的话还是可以安装锐速并进行提速的。 原版锐速在安装上可能会对Linux新手造成部分困扰,那么也可以使用该网友提供的一键安装包自动化安装。 锐速自动安装包功能介绍: 如果你的系统内核版本能够匹配上的话则会自动进行下载与安装; 如果你的系统内核版本无法匹配上的话则可以手动选择最近的内核版本尝试安装; 已 chattr +i /serverspeeder/etc/apx* 禁止修改配置文件,可以不用加 hosts 了 自动下载锐速的授权文件、自动修改锐速的配置文件; 目前支持CentOS、Ubuntu和Debian,其他系统请点击这里手动下载; 安装前需检测架构: 锐速不支持OpenVZ虚拟化技术,因此如果你准备安装锐速那么首先请登录SSH执行以下命令检测架构; 命令执行完毕后会显示KVM、XEN、OpenVZ等,只要不是OpenVZ就行(以上脚本来自:RedHat) 你可能需要: openvz 可以通过 UML 的方式安装 BBR+SSR 了,具体可以看《 openvz 的 UML+BBR+SSR 一键包(测试), 64M 小内存运行 》 如果你的内核不对,是 Centos 的话请食用《 教程: CentOS 更换内核,提供锐速可用的内核下载 》。 安装锐速 for Linux版: 如果上面新的安装代码有问题,你依然可以使用以前的旧代码来进行安装: 运行上述命令后系统会自动下载所需要的内容,然后会你根据提示选择适配的内核版本: 接下来如果没有意外的话就会顺利安装,到时候会提示你: 常用命令: 你的锐速可能在某些情况下自动挂掉了,比如当你觉得速度突然变的好慢的时候那你就应该检查下状态了。 卸载锐速 for Linux版: 如果你不准备使用锐速或者是准备重新安装的话那么可以执行以下命令来卸载掉锐速: 以上内容转载自:https://www.91yun.org/archives/683
如何为运行 RHEL 7 或 Centos 7 的 AWS Amazon EC2 实例配置静态主机名? Linux

如何为运行 RHEL 7 或 Centos 7 的 AWS Amazon EC2 实例配置静态主机名?

问题 Amazon EC2实例的主机名是在启动时动态分配给实例的IP地址。虽然可以使用hostname命令更改,但如果重新启动或停止/启动实例后,又会恢复为动态分配给实例的IP地址。 简短描述 hostnamectl命令可以指定一个在实例停止/启动和重新启动后仍然保留的主机名。因为RHEL 7和Centos 7都使用systemd,执行下面列出的解析步骤为这些Linux发行版指定一个新的永久的主机名。 解析 从shell运行hostnamectl命令,更新RHEL7或CentOS7实例的主机名,替换为你要使用的实例主机名。 使用vi编辑器更新RHEL 7或Centos 7 Linux实例上的/etc/cloud/cloud.cfg文件。有关使用vi编辑器的一般信息,请从命令shell(不带引号)运行命令“info vi”。 将下面的代码添加到文件的底部,以确保在重新启动后仍然保留新的主机名: 保存并退出vi编辑器。 重新启动实例: 重新启动EC2实例后,运行不带任何参数的hostname指令,来验证主机名更改是否持续存在: 该命令应该返回您在步骤1中指定的新主机名:
更改 AWS Amazon EC2 Linux 实例的主机名 Linux

更改 AWS Amazon EC2 Linux 实例的主机名

当您启动实例时,实例会分配到一个主机名,其形 式为私有内部 IPv4 地址。 典型的 Amazon EC2 私有 DNS 名称如下所示:ip-12-34-56-78.us-west-2.compute.internal,其中包含内部域、服务 (在此示例中为 compute)、区域和某种形式的私有 IPv4 地址。 当您登录实例时,Shell 提示符处显示此主机名的一部分 (例如,ip-12-34-56-78)。 每次停止和重新启动 Amazon EC2 实例时 (除非您使用的是弹性 IP 地址),公有 IPv4 地址都会改变,而且公有 DNS 名称、系统主机名和 Shell 提示符也会改变。 在 EC2-Classic 中启动的实例在停止和重新启动时,也会收到新的私有 IPv4 地址、私有 DNS 主机名和系统主机名;而在 VPC 中启动的实例则不会收到这些内容。 更改系统主机名 如果为实例的 IP 地址注册了公用 DNS 名称 (如 webserver.mydomain.com),则可以设置系统主机名,以便实例将自己标识为该域的一部分。 这样还会更改 Shell 提示符,以便它显示此名称的第一部分,而不是 AWS 提供的主机名 (例如,ip-12-34-56-78)。 如果没有注册公用 DNS 名,还是可以更改主机名,但过程略有差异。 将系统主机名更改为公用 DNS 名称 如果已注册了公用 DNS 名称,请执行此过程。 配置文件 在您的实例上,在您常用的文本编辑器中打开 /etc/sysconfig/network 配置文件,更改 HOSTNAME 条目以反映完全限定域名 (例如 webserver.mydomain.com)。 重启实例以接受新主机名。 或者,您可以使用 Amazon EC2 控制台重启 (在 Instances 页面上,依次选择 Actions、Instance State 和 Reboot)。 验证 登录实例,验证主机名是否已更新。您的提示应显示新主机名 (显示第一个“.”之前的部分)。并且 hostname 命令应显示完全限定域名。 在无公用 DNS 名称的情况下更改系统主机名 配置文件 在您常用的文本编辑器中打开 /etc/sysconfig/network 配置文件,更改 HOSTNAME 条目以反映所需的系统主机名 (例如 webserver)。 更改Hosts 在您常用的文本编辑器中打开 /etc/hosts 文件,更改以 127.0.0.1 开始的条目,以匹配以下示例,替换为您自己的主机名。 重启实例以接受新主机名。 或者,您可以使用 Amazon EC2 控制台重启 (在 Instances 页面上,依次选择 Actions、Instance State 和 Reboot)。 验证 登录实例,验证主机名是否已更新。您的提示应显示新主机名 (显示第一个“.”之前的部分)。并且 hostname 命令应显示完全限定域名。 在不影响主机名的情况下更改 Shell 提示符 如果不需要修改实例的主机名,但是希望显示比 AWS 提供的专用名称 (例如 webserver) 更有用的系统名称 (如 ip-12-34-56-78),您可以编辑 Shell 提示符配置文件,以显示系统别名,而不是主机名。 将 Shell 提示符更改为主机别名 在 /etc/profile.d 中创建一个文件,将名为 NICKNAME 的环境变量设置为要在 Shell 提示符中显示的值。例如,若要将系统别名设置为 webserver,请执行以下命令。 在您的常用文本编辑器 (如 vim 或 nano)···
国内优秀npm镜像推荐及使用 Linux

国内优秀npm镜像推荐及使用

npm全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便。下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。 国内优秀npm镜像 淘宝npm镜像 搜索地址:http://npm.taobao.org/ registry地址:http://registry.npm.taobao.org/ cnpmjs镜像 搜索地址:http://cnpmjs.org/ registry地址:http://r.cnpmjs.org/ 如何使用? 有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法。 以淘宝npm镜像举例: 1.临时使用 2.持久使用 3.通过cnpm使用
MySQL单表百万数据记录分页性能优化 Linux

MySQL单表百万数据记录分页性能优化

自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行。 测试环境: 先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息 查询结果: 从上图中我们可以看到表的基本信息:关于行和表大小的单位都是字节,我们经过计算可以知道 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: 当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下: 我们已经看出随着起始记录的增加,时间也随着增大, 这说明分页语句limit跟起始页码是有很大关系的,那么我们把起始记录改为40w看下(也就是记录的一般左右) 再看我们取最后一页记录的时间 难怪搜索引擎抓取我们页面的时候经常会报超时,像这种分页最大的页码页显然这种时间是无法忍受的。从中我们也能总结出两件事情: limit语句的查询时间与起始记录的位置成正比 mysql的limit语句是很方便,但是对记录很多的表并不适合直接使用。 2.   对limit分页问题的性能优化方法 利用表的覆盖索引来加速分页查询我们都知道,利用了索引查询的语句中如果只包含了那个索引列(覆盖索引),那么这种情况会查询很快。因为利用索引查找有优化算法,且数据就在查询索引上面,不用再去找相关的数据地址了,这样节省了很多时间。另外Mysql中也有相关的索引缓存,在并发高的时候利用缓存就效果更好了。在我们的例子中,我们知道id字段是主键,自然就包含了默认的主键索引。现在让我们看看利用覆盖索引的查询效果如何:这次我们之间查询最后一页的数据(利用覆盖索引,只包含id列),如下: 相对于查询了所有列的37.44秒,提升了大概100多倍的速度那么如果我们也要查询所有列,有两种方法,一种是id>=的形式,另一种就是利用join,看下实际情况: 查询时间为0.2秒,简直是一个质的飞跃啊,哈哈另一种写法 查询时间也很短,赞!其实两者用的都是一个原理嘛,所以效果也差不多
MySQL 8.0.0 发布 Linux

MySQL 8.0.0 发布

MySQL 开发团队于 12 日宣布 MySQL 8.0.0 开发里程碑版本(DMR)发布!可能有人会惊奇 MySQL 为何从 5.x 一下跳跃到了 8.0。事实上,MySQL 5.x 系列已经延续了很多年,从被 Oracle 收购之前就是 5.1,而收购之后一直维持在 5.x,比如 5.5,5.6,5.7 等等。其实,如果按照原本的发布节奏,可以把 5.6.x 当成 6.x,5.7.x 当成 7.x。所以,只是换了版本命名方式而已。不过这次发布的 MySQL 8.0.0 开发版本还是有不少亮点的。 MySQL 8.0.0 亮点 事务性数据字典,完全脱离了 InnoDB 存储引擎真正将数据字典放到了 InnoDB 中的一些表中,从此不再需要 FRM、TRG、PAR 文件啦!Information Schema 现在以数据字典表的一个视图出现。原则上可以完全不需要 InnoDB 数据表类型了,所有的系统表都可以放到 InnoDB 之中。 SQL 角色角色是一系列权限的集合。可以创建角色,给某个用户授予和去除角色。这对于权限管理很方便。 utf8 字符集将成为默认字符集,并支持 Unicode 9默认字符集将从latin1改为utf8,默认定序collation将从latin1_swedish_ci改为utf8_800_ci_ai。 不可见索引可以将一些索引设置为不可见,这样 SQL 优化器就不会用到它,但是它会继续在后台保持更新。当有需要时,可以随时恢复可见。 对二进制数据可以进行位操作不仅仅可以对BIGINT进行位操作,从 8.0 开始也支持对[VAR]BINARY/[TINY|MEDIUM|LONG]BLOB进行位操作了。 改进了对 IPv6 和 UUID 的操作INET6_ATON()和INET6_NTOA() 现在可以进行位操作了,因为INET6_ATON()现在返回的是VARBINARY(16)数据类型(128 位)。改进了 UUID 操作,引入了三个新的函数UUID_TO_BIN(),BIN_TO_UUID()和IS_UUID()。MySQL 并没有特殊的 IPv6 和 UUID 数据类型,而是以VARBINARY(16)数据类型保存的。 持续性的全局变量可以用SET PERSIST来设置持久性的全局变量,即便服务器重启也会保持下来。性能数据库Performance Schema的改进比如对性能数据库增加了 100 多个索引,可以检索更快。 重构 SQL 分析器持续不断的逐步改进 SQL 分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。 成本模型InnoDB 缓冲区现在可以估算主内存缓存区中的有多少表和索引,这可以让优化器选择访问方式时知道数据是否可以存储在内存中还是必须存储到磁盘上。 直方图Histograms通过使用直方图,用户或 DBA 可以对数据分布进行统计,这可以用于查询优化以寻找优化的查询方案。 改进扫描性能改进了 InnoDB 范围查询的性能,可提升全表查询和范围查询5-20% 的性能。 重构 BLOB重构 BLOB 加速了片段读取/更新操作,可以加速 JSON 数据的操作。 持久化自增值InnoDB 会持久化保持自增序列的最大值到 redo 日志中。这个改进还修复了一个非常老的 199 号 bug。 临时表取消对压缩临时表的支持,并存储临时表的元数据到内存中。 其它的更多重要改进和细节,请参考 MySQL 8.0.0发布公告[1]和这里[2]。 下载 目前 8.0.0 还是开发版本,如果你希望体验和测试最新特性,可以从dev.mysql.com[3]下载各个平台的安装包。不过,MySQL 软件包是越来越大了,Linux 平台上的二进制打包后就将近有 1 GB。如果在产品环境中使用,在 8.0 没有进入稳定版本之前,请继续使用 5.7 系列,当前最新的版本是 5.7.15 GA 版本——这只有 600 M 多。最新的源代码放在GitHub[4]上,感兴趣的朋友可以去看看,其中有不少是中国人的贡献。 [1]: http://dev.mysql.com/doc/relnotes/mysql/8.0/en/ [2]: http://mysqlserverteam.com/the-mysql-8-0-0-milestone-release-is-available/ [3]: http://dev.mysql.com/downloads/mysql/ [4]: https://github.com/mysql/mysql-server
十款最流行的密码破解工具 Linux

十款最流行的密码破解工具

密码破解工具是普通计算机用户恢复遗忘密码、黑客窃取信息、渗透测试工程师测试应用安全常用的工具。密码破解工具通常都是通过穷举法,有些还配合使用密码字典来暴力破解密码,但这种方法的效率与密码的强度有很大关系。近年来,计算机编程者开发了大量密码破解工具,每一款工具都有缺点和优点,有时候选择起来非常让人困惑,以下安全牛为大家介绍十款目前最流行的密码破解工具: 1.Brutus 最早发布于2000年的Brutus是目前最流行的远程在线密码破解工具,号称是当今最快最灵活的密码破解工具。目前该工具免费,但只有windows版本。Brutus支持HTTP、POP3、FTP、SMB、Telnet、IMAP、NNTP、NetBus等各种网络协议,而且支持多步认证引擎,可以并发攻击60个目标。 2.RainbowCrack RainbowCrack是一个哈希破解工具,使用大规模时空折中(Time-memory trade off)处理技术加快密码破解,因此比传统暴力破解工具要快。用户无需自己生成彩虹表,RainbowCrack的开发者已经准备好了LM彩虹表、NTLM彩虹表和MD5彩虹表,而且都是免费的。 免费彩虹表下载:http://project-rainbowcrack.com/table.htm 付费彩虹表下载:http://project-rainbowcrack.com/buy.php Rainbow crack程序下载:http://project-rainbowcrack.com/buy.php (支持Windows 和Linux) 3.Wfuzz Wfuzz是一个web应用密码暴力破解工具,还可以用来查找隐藏资源如目录和脚本。该工具还可以识别web应用中不同的注入类型如SQL注入、XSS注入、LDAP注入等。 下载地址:http://www.edge-security.com/wfuzz.php 4.Cain and Abel Cain and Abel是注明的多任务密码破解工具。值得注意的是该工具仅能运行于Windows平台,可以作为网络嗅探器使用,用字典攻击破解加密密码,记录VoIP对话,暴力攻击、密码分析攻击,恢复缓存密码和乱序密码等。 下载地址:http://www.oxid.it/ca_um/ 5.John the Ripper John the Ripper是一款知名的开源密码破解工具,可以运行在Linux、Unix和Mac OSX上,当然Windows版本也有。该工具可以侦测弱密码,专业版功能更加强大。 下载地址:http://www.openwall.com/john/ 6.THC Hydra THC Hydra是速度极快的网络登录密码破解工具,目前支持Windows、Linux、Free BSD、Solaris和OSX等操作系统,以及各种网络协议,包括:Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC 和 XMPP。 下载地址:https://www.thc.org/thc-hydra/ 7.Medusa Medusa是与THC Hydra类似的密码破解工具,号称能够进行快速的并行处理,模块化的暴力登录破解工具。Medusa是一个命令行工具,使用前需要学习命令集,该工具的效率取决于网络速度,在本地网络每分钟可测试2000个密码。 下载地址:http://www.foofus.net/jmk/tools/medusa-2.1.1.tar.gz 8.OphCrack OphCrack是Windows平台上一个免费的基于彩虹表的密码破解工具,也是最流行的windows密码破解工具,也可以应用于Linux和Mac系统,能够破解LM和NTLM哈希表。 OphCrack程序下载:http://ophcrack.sourceforge.net/ 彩虹表下载:http://ophcrack.sourceforge.net/tables.php 9.L0phtCrack L0phtCrack是OphCrack的一个替代品,2006年被赛门铁克收购后终止,但是2009年原班开发人马回购了该产品并进行了重新发布,增加了排程审计功能。 L0phtCrack下载:http://www.l0phtcrack.com/download.html 10. Aircrack-NG Aircrack-NG是一个WiFi密码破解工具,能够破解WEP或WPA密码。该工具能分析无线加密包并通过算法破译密码,使用了FMS攻击等技术。Aircrack-NG目前支持Linux和Windows平台。 Aircrack-NG下载:http://www.aircrack-ng.org/ 教学地址:http://www.aircrack-ng.org/doku.php?id=getting_started