开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

Ubuntu on Windows10 跨平台开发环境搭建权威指南

程序猿经常争论的一个话题是:日常开发到底 Windows 好还是 Linux 好?进而演化出另一个问题:到底选 MacBook 好还是 SurfaceBook 好? 选择 Linux 系统或者 mac 笔记本的同学最核心的理由是 Linux/Mac 开发、编译工具链比较完善,很多环境或者安装包都系统自带了,写出来的程序可以很方便的通过开发、测试与线上系统对接,开发测试效率比较高,而 Windows 下开发的同学可能需要考虑开发、测试代码的可移植性问题。就拿笔者来说,也曾经遇到过某些 java/python API 不支持 Windows 的问题,这给日常开发带来了不小的麻烦。 在 Windows10 以前,咱们为了解决 Windows 开发环境跨平台的问题,往往会选择 cygwin,这个项目本身已经很成熟了,笔者也用了很多年,它能在 Windows 下模拟一套类 Linux 的环境,用它应付一般的开发测试问题不大。但它的缺点在于组件、包管理器比较弱,对于日后的环境维护相当麻烦,而且一些底层 API 模拟的并不完善,对于一些涉及 Linux 底层的系统调用等场景显得很鸡肋。幸运的是在 2016 年,微软在 Windows10 WSL 里开始内置 Ubuntu,之后又开始在 Microsoft Store 以 UWP APP 的形式发布各个 Linux 系统...
xrzs 发布于 1周前 阅读 4218 评论 6 点赞 1

hyperledger v1.0.5 区块链运维入门(一)

网上搜索hyperledger大部分文章是讲解开发环境配置的,安装哪些文章配置好开发环境,写好合约,怎样落地呢?却很少文章提及。 要将区块链落地,我们必须依赖运维技术,这是IT基础设施,区块链应用将建立在这个基础设施之上,否则区块链就是浮云。
neo-chen 发布于 2周前 阅读 118

nginx+keepalive主从双机热备+自动切换解决方案

### 安装 安装必要环境组件及应用 ``` yum -y install gcc openssl-devel popt-devel libnl* kernel-devel ipvsadm libnfnetlink libnfnetlink-devel net-snmp-agent-libs ``` 下载keepalived ``` wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz ``` 建立内核软连接 ``` ln -s /usr/src/kernels/$(uname -r)/ /usr/src/linux ``` 解压并进行编译安装 ``` tar xvf keepalived-1.3.5.tar.gz cd keepalived-1.3.5 ./configure make && make install ``` 为方便以后操作给应用部分文件创建软连接 ``` ln -s /usr/local/etc/keepalived/ /etc/ ln -s /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ ln -s /usr/local/sbin/keepalived /usr/sbin/ ``` ==#也可以用yum直接安装== ### 配置文件解析 /etc/keepalived/keepalived.conf ``` global_defs { # 全局配置模块 } vrrp_instance VI_1 { # VRRP配置模块 } virtual_server 192.168.111.100 80 { # LVS配置模块 } ``` ### 配置实例 --- 服务器|IP地址|说明 ---|---|--- 主LVS调度器|192.168.40.11|用于访问WEB服务器负载均衡 副LVS调度器|192.168.40.12|使用Keepalived做双机备份,保证LVS负载均衡稳...
ZHAO_JH 发布于 2周前 阅读 522 评论 5 点赞 1

解决“/bin/bash^M: bad interpreter: No such file or directory”

原因:在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识 解决方法: (1)使用linux命令dos2unix filename,直接把文件转换为unix格式; (2)使用sed命令sed -i "s/\r//" filename  或者 sed -i "s/^M//" filename直接替换结尾符为unix格式; (3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。 查看脚本文件是dos格式还是unix格式的几种办法。 (1)cat -A filename  从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$; (2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式; (3)vi filename打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。...
cephn1 发布于 2周前 阅读 392

Linux监控平台——搭建zabbix监控平台,zabbix监控主动模式、被动模式、添加监控主机、添加自定义模板、处理图形乱码、自动发现

第十九章 Linux监控平台搭建 19.1 Linux监控平台介绍 常见开源监控软件 cacti、nagios、zabbix、smokeping、open-falcon等等。 cacti、smokeping偏向于基础监控,成图漂亮。 cacti、nagios、zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态;zabbix会获取服务或者监控项目的数据从而可以成图,zabbix把数据记录到数据库里,支持历史数据查询,而且zabbix可以非常方便的自定义监控项目。 open-falcon为小米公司开发,开源后受到诸多大公司和运维工程师的追捧,适合大企业,滴滴、360、新浪微博、京东等大公司在使用这款监控软件,值得研究。 本节学习以zabbix为例。   19.2 zabbix监控介绍 zabbix基于C++开发,是C/S(client/server)架构,即分为客户端和服务端,单个服务端节点可以支持上万台客户端,监控中心支持web UI(web界面)配置和管理。 查看zabbix官方文档:https://www.zabbix.com/manuals 是学习zabbix的最好途径。 zabbix组件 zabbix整个体系架构中有以下5个主要角色: zabbix-server zabbix-server是整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有...
Champin 发布于 3周前 阅读 422 评论 2

keepalived+nginx搭建高可用(注意点)

1. 在yum安装完keepalived之后,配置keepalived的配置文件 - 注意点 - 在master和backup的keepalived的配置文件中,网卡名字为当前机器的网卡名称 - VIP的选择为 可用的一个ip,通常在做高可用,局域网环境比较多, 所以这个vip是和两台机器同网段的一个内网ip。 如果用在外网环境下,无所谓在不在一个网段,只要客户端能访问到。 2. 停掉nginx服务,启动keepalived服务,会看到keepalived拉动nginx服务启动 - 若是无法启动失败,基本都是配置文件和脚本的问题,或者是 防火墙和selinux未关闭的原因。 ``` systemctl stop firewalld 关闭firewalld iptables -nvL setenforce 0 临时关闭selinux getenforce命令查看是否为Permissive ``` 3. keepalived的脚本需要设置成755权限,否则有可能会导致实验失败 4. 查看vip的时候,只能使用 ip add 命令 查看,而 ifconfig命令 是无法查看的 5. yum安装的nginx,默认的索引页在 /usr/share/nginx/html/index.html...
运维小白 发布于 3周前 阅读 510

容器云方案部署文档

## 概述 ![虚拟机与容器](http://upload-images.jianshu.io/upload_images/5592768-f0b258f0b641bc29.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 虚拟机和容器技术的实现了服务器计算环境的抽象和封装,可以作为服务器平台上的应用程序运行的软件实体。多台虚拟机和容器可以被部署在一台物理服务器上,或将多台服务器整合到较少数量的物理服务器上,但是容器技术不是为了完全取代传统虚拟机技术,两者有本质的区别: * 虚拟机技术属于系统虚拟化,本质上就是在模拟一台真实的计算机资源,其中包括虚拟CPU,存储,以及各种虚拟硬件设备——这意味着它也拥有自己的完整访客操作系统; * 容器技术则是应用虚拟化,使用沙箱机制虚拟出一个应用程序运行环境,每个运行的容器实例都能拥有自己独立的各种命名空间(亦即资源)包括: 进程, 文件系统, 网络, IPC , 主机名等; 虚拟机将整个操作系统运行在虚拟的硬件平台上, 进而提供完整的运行环境供应用程序运行,同时也需要消耗更过的宿主机硬件资源; 而Docker等容器化应用时使用的资源都是宿主机系统提供的,仅仅是在资源的使用上只是做了某种程度的隔离与限制.比起虚拟机,容器拥有更高的资源使用效率,实例规模更小、创建和...
行者深蓝 发布于 1个月前 阅读 271

使用Heapster和Splunk监控Kubernetes运行性能

Kubernetes已经成为容器编排的事实上的王者,连Docker都已经向K8s女王大人低头。对于Kubernetes的cluster的数据收集和监控已经成为IT运维的一个重要话题。我们今天来看一看如何利用Splunk最新的Metrics Store来对Kubernetes的集群进行性能监控。 部署架构 下图是该方案的部署架构,主要包括: 利用Heapster收集K8s的性能数据,包含CPU,Memory,Network,File System等 利用Heapster的Statsd Sink,发送数据到Splunk的Metrics Store 利用Splunk的搜索命令和仪表盘功能对性能数据进行监控 前期准备 前期主要要准备好两件事: 编译最新的Heapster的镜像,并上传到某个公共的Docker镜像仓库,例如docker hub 在Splunk中配置Metrics Store和对应的网络输入(Network Input UDP/TCP) 这里主要要做的选择是Statsd的传输协议用UDP还是TCP。这里我推荐使用TCP。 最新的Heapster代码支持不同的Backend,包含了log, influxdb, stackdriver, gcp monitoring, gcp logging, statsd, hawkular-metrics, wavefront, openTSDB, kafka, riemann, elasticsearch等等。因为Splunk的Metrics Store支持statsd协议,所以可以很容易的和Heapster集成。 首先我们需要利用最新的heapster代码,编译...
naughty 发布于 1个月前 阅读 1593 评论 2 点赞 1

k8s-web集群架构从零开始(1)

使用k8s搭建一个web集群
大巴0007 发布于 1个月前 阅读 108 评论 2

Docker Swarm集群初探

相信Docker技术大家都有所了解,单个Docker能发挥的作用毕竟有限,也不便于管理,所以Docker得组集群来使用才能发挥强大的技术优势。既然要组集群那就涉及诸如Docker的资源调度、管理等等一系列问题。目前涉及Docker集群的三个主要的技术无外乎Swarm、Kubernetes、Mesos三种。从本文开始作者将会一一实践这几种主要的Docker集群技术,话不多说,现在开始。
hansonwang 发布于 1个月前 阅读 229 评论 1 点赞 1

关于处理器漏洞Meltdown(熔断)和Spectre(幽灵)

关于该重大漏洞的发现,源于Google公司的Project Zero安全团队的论文https://meltdownattack.com/meltdown.pdf 漏洞是由于Intel 处理器设计的一个BUG,利用漏洞能够允许具有用户态权限的进程执行未经过授权的CPU缓存数据读取,这有可能导致攻击者获取到用户设备上的一些敏感数据,例如密码、登录密钥、用户的私人照片、邮件、即时通讯信息甚至是商业秘密文件等。 针对英特尔处理器涉及到两种攻击方法,分别为Meltdown和Spectre,Meltdown涉及CVE编号CVE-2017-5753和CVE-2017-5715,而Spectre涉及CVE编号CVE-2017-5754。 Meltdown破坏了位于用户和操作系统之间的基本隔离,此攻击允许程序访问内存,因此其他程序以及操作系统的敏感信息会被窃取。这个漏洞“熔化”了由硬件来实现的安全边界。允许低权限用户级别的应用程序“越界”访问系统级的内存,从而造成数据泄露。 Spectre则是破坏了不同应用程序之间的隔离。问题的根源在于推测执行(speculative execution),这是一种优化技术,处理器会推测在未来有用的数据并执行计算。这种技术的目的在于提前准备好计算结果,当这些数据被需要时可立即使用。在此过程中,英特尔没有很好地将低权限的应用程序与访问内核内存分开,这...
桔子 发布于 2个月前 阅读 190

RedHat7.2自带curl请求https站点报错的问题

### 问题背景 >我们的项目要拿到客户机上做私有化安装,服务器操作系统客户指定只能使用redhat7.2版本,且客户机为了保密需要不能访问外网,而操蛋的redhat系统自带的curl支持的是nss协议的https,而非openssl协议的https,执行curl访问https站点的时候会出现无法load key的报错。 网上查了一下解决方案,Stack Overflow上有答案说是生成的key的问题,需要将key转换成RSA的加密方式,我试了一下,curl命令不会报错,但我们的服务端代码实现不能正常的初始化相关加解密容器。 还有部分答案推荐重装curl,由于对redhat系统并不熟悉,且向来听说linux上离线安装的时候需要处理的依赖比较复杂,我的内心其实是拒绝的,但没有更好的解决办法,只能硬着头皮上了。。。 ### 安装zlib 1. 访问zlib官网,下载最新的zlib包,这里由于我的rhel是较新的7.2版本,因此直接使用了zlib的最新版,如果是老版本,可能需要考虑linux内核的兼容性问题; 2. 解压缩zlib安装包,cd到解压缩的zlib包目录下,运行以下命令: ```shell ./configure make test make install #这里安装的是静态库 make clean ./configure --shared make test make install #这里先clean,然后安装的是共享库 cp zutil.h...
looqy 发布于 2个月前 阅读 150 评论 6

第4周第1课:lvm、磁盘故障小案例

# LVM讲解 LVM的结构图 ![Markdown](http://i4.bvimg.com/602923/bc0e55b45053f2b0.png) 图中顶部,首先是实际的物理磁盘及其分区和其上的物理卷(Physical Volume)。一个或多个物理卷可以用来创建卷组(Volume Group)。然后基于卷组可以创建逻辑卷(Logical Volume)。卷组中只要有可用空间,就可以创建若干逻辑卷。文件系统就是在逻辑卷上创建的,可以在操作系统挂载并访问。 **LVM操作流程:磁盘分区 → 创建物理卷 → 划分卷组 → 划分逻辑卷 → 格式化、挂载 → 扩容(或缩容)**。 ### 一、磁盘分区 这一步的关键是,磁盘数据类型为8e(即lvm格式),系统格式为Linux LVM)。 ``` [root@greenfinch ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0xa90b2e9e 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):p         ## 查看磁盘/dev/sdb的原始信息 磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 ...
grassroots 发布于 2个月前 阅读 84

nagios 可视化方案

对nagios可视化方案做一个总结
Guest_Main 发布于 2个月前 阅读 379 评论 1

zabbix创建自定义监控项

**背景:** zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求。有时候由于业务需求,需要自定义监控项。 下面以创建mysql自定义监控项为例,分享如何创建zabbix自定义监控项。 **环境说明:** zabbix版本:3.0.3 操作系统:CentOS 7 mysql版本:5.7.1 **实现步骤:** 1、修改 zabbix_agentd.conf,添加zabbix_agent 配置目录,以下是我本机的zabbix的配置: 将以下行的注释去掉 ``` #Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf ``` 变成: ``` Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf ``` 将此行注释去掉后,zabbix_agentd启动后会自动扫描/usr/local/etc/zabbix_agentd.conf.d/目录下所有的.conf文件,并加载。 2、编写监控脚本/usr/local/zabbix/zabbix-script/get_mysql_status.sh,脚本如下(脚本存放目录可以自定义): ``` #!/bin/sh case $3 in uptime) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $2}' ;; threads) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $4}' ;; question) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $6}' ;; sq) mysqladmin -u...
Kyle_ming 发布于 2个月前 阅读 280

Dapper,大规模分布式系统的跟踪系统

Dapper--Google生产环境下的分布式跟踪系统,应运而生。那么我们就来介绍一个大规模集群的跟踪系统,它是如何满足一个低损耗、应用透明的、大范围部署这三个需求的。当然Dapper设计之初,参考了一些其他分布式系统的理念,尤其是Magpie和X-Trace,但是我们之所以能成功应用在生产环境上,还需要一些画龙点睛之笔,例如采样率的使用以及把代码植入限制在一小部分公共库的改造上。
鹏磊 发布于 2个月前 阅读 194

Linux 多应用程序docker自动部署脚本

Linux 多应用程序docker自动部署脚本可以结合jenkins分布式部署
Smallwei小伟 发布于 2个月前 阅读 199 评论 3

TCP: time wait bucket table overflow解决方法

随着访问量的增大,系统默认的承受能力达到上限,系统日志频繁出现。/var/log/messages中常见的“kernel: TCP: time wait bucket table overflow”这个信息,会发现每隔5s就会报出几行。此时查看连接状态如下: [root@IPTV001 ~]# netstat -an | awk '{print $6}' | sort | uniq -c | sort -rn    6216 TIME_WAIT      30 LISTEN      21 ESTABLISHED      20 CONNECTED      14        4 STREAM       2 FIN_WAIT1       1 I-Node       1 Foreign       1 FIN_WAIT2       1 established)       1 CLOSE_WAIT       1 and       1 987101641       1 8614       1 8613       1 8597 可以看见 TIME_WAIT值还是比较大的  修改 vi /etc/sysctl.conf net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.file-max=65535 fs.inotify.max_user_instances = 8192 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 6...
小白to 发布于 2个月前 阅读 88

VirtualBox虚拟机导出导入实践

VirtualBox虚拟机导出导入实践
MaxBill 发布于 2个月前 阅读 124

Docker快速验证保存iptables的转发策略

接上回(Docker快速验证tomcat单机多实例方案),解决非root账号不能绑定80端口,采用的是iptables转发的解决办法.这只能是个临时方案: ```shell root@SuSE11:/etc/sysconfig$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081 ``` 这个方法有以下局限: 1. 重启服务器失效; 2. 重启防火墙失效: [root@tomcat7conf]# rcSuEfirewall2 restart 3. 每次都的申请root权限手工执行转发命令
蛮大人 发布于 2个月前 阅读 122

《SRE:Google运维解密》

前言 问世近一年以来,《SRE: Google 运维解密》一书销量累计已两万余册。我想首先感谢各位读者对本书的支持,真的是衣食父母呀!如果还没有下单购买,是不是看过本文之后可以考虑尽快呢? 随着SRE概念在在国内外的火爆传播,相信很多朋友也对此书有了一定程度的了解。感谢 GitChat 平台,我这次有机会和大家再分享一下书内书外的故事。希望不管您是否看过本书,本文的信息都能对您有用! 成书花絮 首先要明确的是,这本书是一本文集。Google内部在2014年进行了一次题目+作品征集工作,由封面上的编者团将收集来的投稿筛选,据称砍掉2/3内容才 (原始资料据称超过1500页) 最后得以问世。 技术类书籍成书难,和大数据项目的关键难点很像。那就是——没有数据。据我和国内运维岗位交流的感觉,别说写文档了,就连服务器密码都是只记在脑子里的,根本没时间写下来好嘛。玩笑归玩笑,但是道理不变, Google SRE 给我留下的一个不可磨灭的印记就是——文档重过一切。没写文档,救火责任永远在你自己身上背着,出问题半夜也要爬起来解决啊。写完文档,救火责任就变成大家共享的了,就可以开心的睡觉了。每个团队成员会主动维护本组文档,时刻保持其为最新。知识共享的第一步,当...
linuxprobe16 发布于 4周前 阅读 9

Gitlab CI 基础知识

Gitlab CI 是一个功能非常强大的持续集成系统,有很多不同的功能,而且每次发布都会增加新的功能。它的技术文档也很丰富,但是对那些要在已经配置好的 Gitlab 上使用它的用户来说,它缺乏一个一般性介绍。设计师或者测试人员是无需知道如何通过 Kubernetes 来实现自动伸缩,也无需知道“镜像”和“服务”之间的不同的。   在 fleetster, 我们搭建了自己的 Gitlab 实例,而且我们大量使用了 Gitlab CI。我们的设计师和测试人员也都在用它,也很喜欢用它,它的那些高级功能特别棒。 但是,他仍然需要知道什么是“管道”,知道如何查看部署到一个“环境”中的分支。因此,在本文中,我会尽可能覆盖更多的功能,重点放在最终用户应该如何使用它们上;在过去的几个月里,我向我们团队中的某些人包括开发者讲解了这些功能:不是所有人都知道持续集成(Continuous Integration)(CI)是个什么东西,也不是所有人都用过 Gitlab CI。 如果你想了解为什么持续集成那么重要,我建议阅读一下 这篇文章,至于为什么要选择 Gitlab CI 呢,你可以去看看 Gitlab.com 上的说明。 简介 开发者保存更改代码的动作叫做一次提交(commit)。然后他可以将这次提交推送(push)到 Gitlab 上,这样可以...
六库科技 发布于 2周前 阅读 4

CentOS下启动和停止Tomcat

启动Tomcat: 进入tomcat目录/bin,然后./startup.sh 停止Tomcat: 进入tomcat目录/bin,然后./shutdown.sh
Helios51 发布于 3个月前 阅读 4

Docker加速器 DaoCloud

由于众所周知的原因,从Docker Hub难以高效地下载镜像。 除了使用VPN或代理之外,最为有效的方式就是使用Docker国内镜像。 [DaoCloud](https://www.daocloud.io/)是首个提供国内免费Docker Hub镜像的团体,可以使用DaoCloud团队提供的Docker Hub Mirror服务。 # Docker加速器简介 Docker加速器是 DaoCloud 推出的 Docker Hub Mirror 服务的官方名称。 Docker加速器提供Docker Registry(Docker Hub)在中国的镜像代理服务,为中国用户在国内服务器上缓存诸多镜像。 当用户的Docker设定了--registry-mirror参数后,用户的Docker拉取镜像时,首先去Docker加速器中查找镜像,若命中则说明该镜像已经在Docker加速器中缓存,用户直接从Docker加速器中下载。 若没有命中,则说该镜像还没有被缓存,那么Docker加速器首先会被驱使去Docker Hub中下载该镜像,并进行缓存,最终让用户从Docker加速器中下载该镜像。 # Docker加速器使用说明 在[DaoCloud](https://www.daocloud.io)注册并登录。 在登录后的页面(https://dashboard.daocloud.io/),点击“产品->加速器”标签,根据新弹出的页面中“配置 Docker 加速器”信息,更改自己的 Docker 配置文件,然后重启Docker,使之生效。 注意...
xiaolyuh 发布于 2周前 阅读 8

Java 9 新特性概述

Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。 本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9
IBM Cloud

CentOS7使用firewalld打开关闭防火墙与端口

1、firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disable firewalld 禁用: systemctl stop firewalld 2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。 启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service 查看已启动的服务列表:systemctl list-unit-files|grep enabled 查看启动失败的服务列表:systemctl --failed 3.配置firewalld-cmd 查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看所有打开的端口: firewall-cmd --zone=public --list-ports 更新防火墙规则: firewall-cmd --reload 查看区域信息: firewall-cmd --get-active-zones 查...
Helios51 发布于 3个月前 阅读 4

配置samba服务器@手把手

### 配置Samba服务器: _以前我们在windows上共享文件的话,只需右击要共享的文件夹然后选择共享相关的选项设置即可。然而如何实现windows和linux的文件共享呢?这就涉及到了samba服务了,这个软件配置起来也不难,使用也非常简单。_ #### 安装samba: 安装系统的时候大多会默认安装samba,如果没有安装,在CentOS上只需要运行这个命令安装即可: ``` ##同时安装了samba服务和客户端; [aming@Dasoncheng ~]$ yum install -y samba samba-client ``` #### Samba配置文件: _Samba的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用 # 或者 ; 注视掉了。先看一下未被注释掉的部分:_ ``` [global] #全局参数 workgroup = SAMBA #工作组名称 security = user #安全验证的方式,总共有4种(详细下面介绍) passdb backend = tdbsam #定义用户后台的类型,共有3种 printing = cups printcap name = cups load printers = yes #设置在Samba服务启动时是否共享打印机设备 cups options = raw #打印机的选项 [homes] #共享参数 comment = Home Directories #描述信息 valid users = %S, %D%w%S browseable = No #...
脑洞老湿_ 发布于 1周前 阅读 4

【CentOS 7LAMP架构1】,LAMP模式介绍与MySQL安装与配置#171214

> hellopasswd --- # LAMP架构模式 Linux+Apache(httpd)+MySQL+PHP # mysql和MariaDB介绍 - MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿美金),2009年sun公司被Oracle(甲骨文)公司收购(74亿美金) - MySQL官网https://www.mysql.com最新版本5.7GA/8.0DMR - MySQL5.6变化比较大,5.7性能上有很大提升 - MariaDB为MySQL的一个分支,官网https://mariadb.com/最新版本10.2 - MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立。 - MariaDB5.5版本对应MySQL的5.5,10.0对应MySQL5.6 - Community社区版本,Enterprise企业版本,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本。 # 安装MySQL - MySQL的几个常用安装包:rpm、源码、二进制免编译 - cd /usr/local/ssrc - wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz - tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz - mv mysql-5.6....
hellopasswd 发布于 2个月前 阅读 11

How Linux Works(三):内存管理

- 经典内存异常:Out of Memory (OOM) Killer - 我的内存利用率为什么特别高? - Linux 内存的分类 - Linux 内存的计算 - Linux 进程的内存 - Linux 应用内存分配
RiboseYim 发布于 2个月前 阅读 249 评论 1 点赞 1

zabbix创建自定义监控项

**背景:** zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求。有时候由于业务需求,需要自定义监控项。 下面以创建mysql自定义监控项为例,分享如何创建zabbix自定义监控项。 **环境说明:** zabbix版本:3.0.3 操作系统:CentOS 7 mysql版本:5.7.1 **实现步骤:** 1、修改 zabbix_agentd.conf,添加zabbix_agent 配置目录,以下是我本机的zabbix的配置: 将以下行的注释去掉 ``` #Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf ``` 变成: ``` Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf ``` 将此行注释去掉后,zabbix_agentd启动后会自动扫描/usr/local/etc/zabbix_agentd.conf.d/目录下所有的.conf文件,并加载。 2、编写监控脚本/usr/local/zabbix/zabbix-script/get_mysql_status.sh,脚本如下(脚本存放目录可以自定义): ``` #!/bin/sh case $3 in uptime) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $2}' ;; threads) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $4}' ;; question) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $6}' ;; sq) mysqladmin -u...
Kyle_ming 发布于 2个月前 阅读 280

Linux安装jdk8以及环境变量配置

Linux安装jdk8以及环境变量配置 原创 2015年07月06日 00:05:03    1、解压安装 [plain] view plain copy   sudo tar zxvf ./jdk-8u45-linux-x64.tar.gz  -C /usr/lib/jvm     cd /usr/lib/jvm     2、配置环境变量 敲入命令: gedit ~/.bashrc 在最后添加上:   [plain] view plain copy   JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45    export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    export PATH=${JAVA_HOME}/bin:$PATH   保存退出,输入以下的命令使得该配置的环境变量生效   source ~/.bashrc 3、配置默认的jdk版本,执行以下的命令   [plain] view plain copy   sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_45 /bin/java 300   sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_45 /bin/javac 300   4、测试 打开一个终端输入依稀命令 java -version...
rootliu 发布于 2个月前 阅读 11

【CentOS 7MySQL常用操作3】,MySQL常用命令#180113

> hellopasswd --- # MySQL常用命令 - 查询库show databases; - 切换库use mysql; - 查看库里的表show tables; - 查看表里的字段desc tb_name; - 查看建表语句show create table tb_name\G; - 查看当前用户select user(); - 查看当前使用的数据库select databases(); ``` mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 rows in set (0.00 sec) mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed ``` ``` mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slave_master_info...
hellopasswd 发布于 1个月前 阅读 13

tomcat shutdown后,进程还存在的解决办法

基本原理为启动tomcat时记录启动tomcat的进程id(pid),关闭时强制杀死该进程        第一步 :vim修改tomcat下bin/catalina.sh文件,添加点东西,主要是记录tomcat的pid,如下: #设置记录CATALINA_PID。   #该设置会在启动时候bin下新建一个CATALINA_PID文件   #关闭时候从CATALINA_PID文件找到pid,kill。。。同时删除CATALINA_PID文件   在PRGDIR=`dirname "$PRG"`后面加上:   if [ -z "$CATALINA_PID" ]; then         CATALINA_PID=$PRGDIR/CATALINA_PID   fi   第二步 vim tomcat的shutdown.sh文件,在最后一行加上-force:     bin/shutdown.sh exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@" #加上 -force  
itlzm 发布于 1个月前 阅读 18

centos7 系统目录结构与文件

专业软件定制开发:济南恒软信息技术有限公司(http://www.heng-soft.com) 一、目录结构与用途: /boot:系统引导文件、内核 /bin:用户的基本命令 /dev:设备文件 /etc:配置文件 /home:用户目录 /root:root用户目录 /sbin:管理类的基本命令 /tmp:临时文件存放地 /usr:共享的只读数据 /mnt:临时文件系统挂载点 /media:移动设备挂载点 /opt:第三方应用程序的安装位置 /srv:系统运行的服务用到的数据 /var:变化的数据文件 /proc:用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统 二、文件类型: -:普通文件 d:目录文件 b:块儿设备文件 c:字符设备 l:符号链接 p:管道 s:socket文件  
glen_xu 发布于 1个月前 阅读 6

sorry,you must have a tty to run sudo

问题 ``` sorry,you must have a tty to run sudo ``` visudo ``` #Default requiretty ```
玖零後大叔 发布于 1个月前 阅读 10

Tomcat的常用配置

本文索引: * 配置tomcat监听80端口 * Tomcat虚拟主机 * Tomcat日志 ### 配置tomcat监听80端口 默认tomcat监听的是8080端口,如果想直接输入ip就访问到网页,就需要进行如下操作: * 修改配置文件 ``` [root@localhost src]# vim /usr/local/tomcat/conf/server.xml /定位到8080 修改8080为80,保存退出 ``` * 重启服务 ``` # 先关闭后启动 [root@localhost src]# /usr/local/tomcat/bin/shutdown.sh [root@localhost src]# /usr/local/tomcat/bin/startup.sh ``` * 验证是否生效 ``` [root@localhost src]# netstat -lntp | grep java tcp6 0 0 :::80 :::* LISTEN 2823/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2751/java tcp6 0 0 :::8009 :::* LISTEN 2751/java ``` > 如果系统内已经安装并启动了apache/nginx web服务,80端已被占用,需要关闭这些web服务器,然后重启tomcat服务。 --- ### Tomcat虚拟主机 跟apache/nginx web服务器一样,tomcat也可以设置虚拟主机。 在tomcat配置文件中和之间的配置为虚拟主机配置部分,name定义域名,appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可。 ``` [root@localhos...
Lu_Castiel 发布于 3周前 阅读 11

清华同方收购UnitedStack,加速Openstack发展

导读 IT技术正以前所未有的速度驱动着时代的发展,深刻地改变着人类的生活,作为面向未来的IT形式,云计算重新定义了科技创新与企业发展的基础动力。11月8日,同方云计算战略发布会在京举行,清华同方以“清华科技,云享安全”为愿景与使命,做面向行业市场的安全云计算综合解决方案与服务提供商。 市场需求与国家需要:同方云路的双动力 据IDC的预测,到2018年, 85%以上的大型企业将采用混合(多)云的IT环境;到2019年,43%的物联网数据将有边缘计算设备进行预处理;到2020年, 80%以上的500强企业将通过行业云向客户提供数字服务。如果说科技是第一生产力的话,那么云计算正成为第一生产力的源动力。面对如此诱人的产业发展态势,作为我国信息化建设的领军企业,清华同方势必在此进行战略布局。 在刚刚结束的十九大上,党和国家领导人再次强调,我们要坚定不移走科技强国之路,建设网络强国,走出一条中国特色国家安全道路,以安全保发展,以发展促安全。作为清华大学旗下的高科技企业,同方自然承担了守护国家信息安全的使命,这也是清华大学践行科技成果转化的首要目标。凭借清华大学强大的研发后盾及自身20年的产业积累,同方已经具备了厚积薄发的基础。 优势显著 全栈...
linuxprobe16 发布于 3周前 阅读 5

监控平台 --- zabbix高级配置

本文索引: * 添加自定义监控项目 * 配置邮件告警 * 测试告警 * 问题处理 --- ### 添加自定义监控项目 zabbix可以自定义监控项目,满足个性化的需求。例如网站注册量、访问量等具体监控项目就需要编写相关的脚本来监控数据,以满足具体应用的需求。 实例:监控某台web的80端口连接数,并出图(步骤如下) 1. zabbix监控中心创建监控项目 2. 针对该监控项目以图形展现 #### 客户端脚本编写 * 客户端上定义脚本 ``` [root@client ~]# vim /usr/local/sbin/estab.sh #!/bin/bash ##获取80端口转发连接数 netstat -ant | grep ':80' | grep -c ESTABLISHED [root@client ~]# chmod 755 /usr/local/sbin/estab.sh ``` * 客户端上编辑配置文件 ``` [root@client ~]# vim /etc/zabbix/zabbix_agentd.conf //增加 UnsafeUserParameters=1 //表示使用自定义脚本 UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh //重启zabbix-agent服务 [root@client ~]# systemctl restart zabbix-agent ``` * 到服务器端验证 ``` //有值显示表示配置有效 [r...
Lu_Castiel 发布于 3周前 阅读 18

【CentOS 7Shell编程2】,shell中的逻辑判断#180206

> hellopasswd --- # shell中的逻辑判断 - 格式1:if条件;then语句;fi - 格式2:if条件;then语句;else语句;fi - 格式3:if条件;then语句;elif语句;then语句;else语句;fi - 逻辑判断表达式:if[$a -gt $b];if[$a =lt 5];if[$b -eq 10]等 -gt(>);-lt(<);-ge(>=);-le(<=);-eq(==);-ne(!=)注意到处都是空格 - 可以使用&&||结合多个条件 - if[$a -gt 5] && [$a -lt 10];then - if[$b -gt 5] || [$b -lt 3];then ``` [root@localhost ~]# for i in `seq 1 5` > do > echo $i > done 1 2 3 4 5 [root@localhost ~]# for i in `seq 1 5`; do echo $i; done 1 2 3 4 5 ``` ``` [root@localhost ~]# a=5 [root@localhost ~]# if [ $a -gt 3 ] > then > echo ok > fi ok [root@localhost ~]# if [ $a -gt 3 ]; then echo ok; fi ok [root@localhost ~]# cd shell [root@localhost shell]# vi 1.sh 添加 1 #!/bin/bash 2 a=5 3 if [ $a -gt 3 ] 4 then 5 echo ok 6 fi [root@localhost shell]# sh 1.sh ok [root@localhost shell]# ./1.sh ok ``` ``` [root@localhost shell]# vi 1.sh 添加 1 #!/bin/bash 2 a=1 3 if [ $a -gt 3 ] 4 then 5 echo ok 6 else 7 echo error 8 fi [root@lo...
hellopasswd 发布于 2周前 阅读 13

Supervisor&Gunicorn&Django

# django ``` # 刚写的就不复制粘贴了 https://my.oschina.net/tianshl/blog/1611257 # 列一下目录结构 root@tianshl:~# cd server/ root@tianshl:~/server# tree server server ├── db.sqlite3 ├── manage.py └── server ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ``` # gunicorn ##### 安装 ``` pip install gunicorn ``` ##### 配置 ``` # 修改django项目的settings.py INSTALLED_APPS = [ ...... 'gunicorn', ] ``` ##### 运行 ``` root@tianshl:~# cd /root/server/server/ root@tianshl:~/server/server# gunicorn --pythonpath /root/server/venv/bin/python3 -w 3 -b 0.0.0.0:80 server.wsgi # 测试能否正常运行, 然后ctrl+c结束进程 ``` # supervisor ##### 安装 ``` pip install supervisor ``` ##### 配置 ``` # 默认配置 # 使用echo_supervisord_conf命令查看默认配置 root@tianshl:~# echo_supervisord_conf # 自定义配置 root@tianshl:~# mkdir /etc/supervisor root@tianshl:~# mkdir /etc/supervisor/conf.d root@tianshl:~# echo_supervisord_conf > /etc/supervisor/supervisor.conf root@tianshl:~# vim /etc/su...
tianshl 发布于 1个月前 阅读 12697

Nginx日志配置及分割

1. 格式化日志内容 2. 日志文件切割
tianshl 发布于 2个月前 阅读 272498 点赞 1

ELK -- Logstash安装与配置

### Logstash ##### 使用yum安装 ###### 编辑 repo ``` vim /etc/yum.repos.d/elasticsearch.repo # 内容如下 [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md ``` ###### 安装 ``` sudo yum install logstash ``` #### 配置 Logstash ``` # 参考 https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html # input项配置源数据,此处为监听 "/log"目录下满足"insert.*.log"匹配的所有日志文件 # filter项过滤input输入的数据, "insert.*.log"中每条日志形式如:"2018-01-15 | type | cid | src | eventId | reason", 所以使用" | "拆分每条日志 # output项是输出数据,此处为输出至ElasticSearch # 新建配置文件 insert.conf vim conf.d/insert.conf # 内容如下 input { file { path => "/log/insert.*.log" } } filter { mutate{ split=>["message"," | "] add_field => { "date" => "%{[message][0]}" } add_field => { "type" => "%{[message][1]...
tianshl 发布于 1个月前 阅读 30764

Nginx日志配置及分割

1. 格式化日志内容 2. 日志文件切割
tianshl 发布于 2个月前 阅读 272498 点赞 1

Supervisor&Gunicorn&Django

# django ``` # 刚写的就不复制粘贴了 https://my.oschina.net/tianshl/blog/1611257 # 列一下目录结构 root@tianshl:~# cd server/ root@tianshl:~/server# tree server server ├── db.sqlite3 ├── manage.py └── server ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ``` # gunicorn ##### 安装 ``` pip install gunicorn ``` ##### 配置 ``` # 修改django项目的settings.py INSTALLED_APPS = [ ...... 'gunicorn', ] ``` ##### 运行 ``` root@tianshl:~# cd /root/server/server/ root@tianshl:~/server/server# gunicorn --pythonpath /root/server/venv/bin/python3 -w 3 -b 0.0.0.0:80 server.wsgi # 测试能否正常运行, 然后ctrl+c结束进程 ``` # supervisor ##### 安装 ``` pip install supervisor ``` ##### 配置 ``` # 默认配置 # 使用echo_supervisord_conf命令查看默认配置 root@tianshl:~# echo_supervisord_conf # 自定义配置 root@tianshl:~# mkdir /etc/supervisor root@tianshl:~# mkdir /etc/supervisor/conf.d root@tianshl:~# echo_supervisord_conf > /etc/supervisor/supervisor.conf root@tianshl:~# vim /etc/su...
tianshl 发布于 1个月前 阅读 12697

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

ELK -- ElasticSearch集群安装、配置及错误处理

### ElasticSearch ``` 现有三台服务器[192.168.1.30, 192.168.1.31, 192.168.1.32],使用这三台服务器搭建ElasticSearch集群 ``` #### CentOS 使用 yum 安装 ###### 编辑 repo ``` vim /etc/yum.repos.d/elasticsearch.repo # 内容如下 [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md ``` ###### 使用yum安装 ``` yum install elasticsearch ``` ###### 创建用户 ``` useradd elastic ``` ###### 修改权限 ``` # 数据 chown -R elastic:elastic /var/lib/elasticsearch # 日志 chown -R elastic:elastic /var/log/elasticsearch # 配置 chown -R elastic:elastic /etc/elasticsearch chown -R elastic:elastic /etc/sysconfig/elasticsearch # 指令 chown -R elastic:elastic /usr/share/elasticsearch ``` ###### 配置 ``` # 主节点 192.168.1.30 vim /etc/elasticsearch/elasticsearch.yml # 修改以下几项 cluster.name: etl_es node.name: node-30 node.master: true node.d...
tianshl 发布于 1个月前 阅读 30444

Nginx日志分割

### 一.使用脚本切割 ##### 编辑脚本 ``` tianshl@tianshl nginx $ vim nginx_log_division.sh ``` ##### 脚本内容 ``` #! /bin/sh # 昨天日期 yesterday=`date -v -1d +%Y%m%d` # 日志目录 log_path="/usr/local/var/log/nginx/" # SDK日志路径 sdk_path=${log_path}sdk # 以天为单位切分日志 mv -f ${sdk_path}.log ${sdk_path}_${yesterday}.log # 重新生成日志文件 pid_path="/usr/local/var/run/nginx.pid" sudo kill -USR1 `cat ${pid_path}` ``` ##### 定时任务 ###### 切换到root身份 ``` tianshl@tianshl nginx $ sudo su root ``` ###### 编辑 crontab ``` sh-3.2# crontab -e ``` ###### crontab 添加一行 ``` 0 0 * * * sh /usr/local/var/log/nginx/nginx_log_division.sh ``` ###### 查看是否添加成功 ``` sh-3.2# crontab -l ``` ### 二.不使用脚本切割 ##### server 段增加以下代码 ``` if ($time_iso8601 ~ "(\d{4})-(\d{2})-(\d{2})") { set $time $1$2$3; } ``` ##### 日志文件路径中增加日期参数 ``` access_log /var/log/nginx/api-$time.log; ``` ##### 举个栗子 ``` events { worker_connections 1024; } http { server { # 监听88端口 listen 88;...
tianshl 发布于 2个月前 阅读 273981

Ubuntu on Windows10 跨平台开发环境搭建权威指南

程序猿经常争论的一个话题是:日常开发到底 Windows 好还是 Linux 好?进而演化出另一个问题:到底选 MacBook 好还是 SurfaceBook 好? 选择 Linux 系统或者 mac 笔记本的同学最核心的理由是 Linux/Mac 开发、编译工具链比较完善,很多环境或者安装包都系统自带了,写出来的程序可以很方便的通过开发、测试与线上系统对接,开发测试效率比较高,而 Windows 下开发的同学可能需要考虑开发、测试代码的可移植性问题。就拿笔者来说,也曾经遇到过某些 java/python API 不支持 Windows 的问题,这给日常开发带来了不小的麻烦。 在 Windows10 以前,咱们为了解决 Windows 开发环境跨平台的问题,往往会选择 cygwin,这个项目本身已经很成熟了,笔者也用了很多年,它能在 Windows 下模拟一套类 Linux 的环境,用它应付一般的开发测试问题不大。但它的缺点在于组件、包管理器比较弱,对于日后的环境维护相当麻烦,而且一些底层 API 模拟的并不完善,对于一些涉及 Linux 底层的系统调用等场景显得很鸡肋。幸运的是在 2016 年,微软在 Windows10 WSL 里开始内置 Ubuntu,之后又开始在 Microsoft Store 以 UWP APP 的形式发布各个 Linux 系统...
xrzs 发布于 1周前 阅读 4218 评论 6 点赞 1

Linux命令行常用快捷键(持续更新...)

Tab        自动补全 Ctrl+k    删除(剪切)光标处至末尾所有内容 Ctrl+u    删除(剪切)光标处至开头所有内容 Ctrl+a     移动到开头  Ctrl+e    移动到结尾 Ctrl+l    清屏,等同于clear Ctrl+c    终止当前命令 Ctrl+d    退出当前用户环境,相当于logout               删除光标所在位置后面一个字符 Ctrl+r    查找,回车运行,Ctrl+R继续搜索 Ctrl+s    挂起 Ctrl+q    解除挂起 Ctrl+y    粘贴 Ctrl+z    暂停执行在终端运行的任务 Ctrl+ ->    把光标向右移动一个单词 Ctrl+ <-    把光标向左移动一个单词 !!            执行上一条命令 !h            执行最近一次以h开头的命令 !h:p        仅打印最近一次以h开头的命令,不执行 !number 执行历史命令列表的第num(数字)条命令(结合history使用) !$            上一条命令的最后一个参数 Esc+.       上一条命令的最后一个参数,按 . 两次,倒数第二个参数 $?            上一条命令执行状态(0执行成功,非0执行失败)   (持续更新中...) 最近更新时间:2018/02/20 注:我使用的系统为:CentOS ...
Linux_yk 发布于 2天前 阅读 18

离线使用 kubeadm 创建 kubernetes 1.9.2 集群

# 简介 kubeadm是一个kubernetes官方提供的快速安装和初始化拥有最佳实践的kubernetes集群的工具,但是目前不建议生产使用。 # 系统版本 - OS:CentOS Linux release 7.3.1611 (Core) - Docker :1.12.6 # 所需软件 链接:https://pan.baidu.com/s/1dzQyiq 密码:dyvi # 初始化环境(所有节点上面执行) #### 关闭selinux ``` sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config setenforce 0 ``` #### 关闭sawp分区 ``` swapoff -a vi /etc/fstab 注释掉swap分区 #/dev/mapper/cl-swap swap swap defaults 0 0 ``` #### 关闭系统防火墙 ``` systemctl disable iptables-services firewalld systemctl stop iptables-services firewalld ``` #### 安装第epel yum源 ``` yum install epel-release ``` #### 安装docker 注意,kubead目前支持docker版本为docker-ce 17.4,这里使用yum自带的dcoekr版本 ``` yum install -y docker systemctl enable docker && sudo systemctl start docker ``` #### 相关参数设置 ``` cat < /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --sy...
binges 发布于 3周前 阅读 376 评论 15 点赞 2

手把手教你安装 Vachlinux

varchliunx
wuzsheng 发布于 2天前 阅读 11 评论 3

Linux系统开机启动流程(简述)

1)开机自检,加载BIOS信息     CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等 2)MBR引导     硬盘的0柱面0磁道1扇区被称为MBR(Master Boot Reord)主引导记录,大小为512字节,里面存放预启动信息、分区表信息及分区标志等;分为两部分:第一部分为引导区,占446字节,第二部分为分区表,占66字节,记录硬盘的分区信息(其中前64字节是分区表信息,后2个字节是分区结束标识) 3)grub引导菜单     /etc/grub.conf文件为链接文件,系统读取内存中的grub配置信息,并依照此配置信息启动不同的操作系统 [root@c69-01 ~]# ll /etc/grub.conf lrwxrwxrwx. 1 root root 22 Feb 2 21:37 /etc/grub.conf -> ../boot/grub/grub.conf 4)加载内核kernel 5)启动init进程     在系统引导的过程中/sbin/init是内核第一个加载的程序,因此init进程对应的PID永远为1     该文件会读取/etc/inittab文件,并依据此文件进行初始化工作 6)读取inittab文件,执行rc.sysinit,rc等脚本     读取/etc/inittab文件,获取系统运行级别,如级别3,文本模式或字符模式     /etc/rc.d/rc.sysinit,Linux系统执行的第一个用户层文件,设定PATH、设定网络...
Linux_yk 发布于 1天前 阅读 11

自更新 shell 脚本

有时脚本要存个变量的值下次使用,一般用外部文件存储,对于简单需求略麻烦。 不如修改脚本自己
amita 发布于 2天前 阅读 5

php-fpm慢执行日志

php-fpm慢执行日志 在php-fpm配置文件添加两行 request_slowlog_timeout = 1 #如果一个PHP脚本执行超过一秒# slowlog = /tmp/www_slow.log #可以记录脚本执行慢等日志# [root@wjh-01 sbin]# /usr/local/php-fpm/sbin/php-fpm -t #检查配置文件有没有错 [23-Aug-2017 15:58:57] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful [root@wjh-01 sbin]# service php-fpm restart #重启php-fpm 模拟一个执行慢2秒的php脚本 [root@wjh-01 sbin]# vi /data/www/sleep.php <?php echo "test slow log"; #输出test slow lo sleep(2); #休眠2秒 echo "done"; ?> 执行脚本 [root@wjh-01 sbin]# curl -x127.0.0.1:80 www.123.com/sleep.php #执行过程慢两秒才输出 test slow logdone 查看慢日志看哪慢 [root@wjh-01 sbin]# cat /tmp/www_slow.log   [23-Aug-2017 16:10:23] [pool www] pid 3149 script_filename = /data/www/sleep.php [0x00007f99259161d0] sleep() /data/www/sleep.php:3 #显示脚本第三行慢,因为第三行我们设置了休眠2秒 hu    ...
linux之路 发布于 1个月前 阅读 7

理解TCP/IP三次握手与四次挥手的正确姿势

背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。 中间双方可能就要不断的确认网络是否恢复,但是有时候会: 她:“你可以听到了吗?” 我:“可以了,你呢?”、 她:“喂喂,你可以听到了吗?” 我:“可以了,我可以听到了,你呢?” 她:“你可以听到了吗?” ..... 这种情况很蛋疼,那么怎样才能找一个简单的办法,让两个人都确认自己可以听到对方的声音,对方也可以听到自己的声音呢? 注:以下情节纯属虚构   方案 TCP建立连接为什么是三次握手,而不是两次或四次? TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。 顺便说一句,原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。 举个日常例子,打电话时我们对话如下:   对应为客户端与服务器之间的通信: 于是有了如下对话: 我:1+1等于几? 她:2,2+2等于几? 我:4 首先两个人约定协议 1.感觉网络情况不对的时候,任何一方都可以发起询问 2.任何情况下,若发起询问后5秒还没收到...
Champin 发布于 3个月前 阅读 3067 评论 10 点赞 10

k8s-web集群架构从零开始(1)

使用k8s搭建一个web集群
大巴0007 发布于 1个月前 阅读 108 评论 2

Tomcat基础架构的介绍与安装

第十六章 Tomcat #16.1 Tomcat介绍 > Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是8.0。 - Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 - java程序写的网站用tomcat+jdk来运行 - tomcat是一个中间件,真正起作用的,解析java脚本的是jdk - jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。 - 最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk,我们这次要安装的是sun公司的jdk。 # 16.2 安装jdk 因为Tomcat的安装需要jdk里面...
周云台 发布于 2个月前 阅读 6

负载均衡集群介绍、LVS和LVS NAT模式的搭建

## 18.6 负载均衡集群介绍 - 主流开源软件LVS、keepalived、haproxy、nginx等 - 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做7层使用 - keepalived的负载均衡功能其实就是lvs - lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而nginx仅仅支持http,https,mail,haproxy也支持MySQL这种 - 相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能实现更多的个性化需求 。 ![输入图片说明](https://static.oschina.net/uploads/img/201801/03210730_BkoU.jpg "在这里输入图片标题") ## 18.7 LVS介绍 - LVS是由国人章文嵩开发 - 流行度不亚于apache的httpd,基于TCP/IP做的路由和转发,稳定性和效率很高 - LVS最新版本基于Linux内核2.6,有好多年不更新了 - LVS有三种常见的模式:NAT、DR、IP Tunnel - LVS架构中有一个核心角色叫做分发器(Load balance),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs) - 在调度器的实现技术中,IP负载均衡技术是效率最高的。 - 在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一...
周云台 发布于 2个月前 阅读 12

容器云方案部署文档

## 概述 ![虚拟机与容器](http://upload-images.jianshu.io/upload_images/5592768-f0b258f0b641bc29.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 虚拟机和容器技术的实现了服务器计算环境的抽象和封装,可以作为服务器平台上的应用程序运行的软件实体。多台虚拟机和容器可以被部署在一台物理服务器上,或将多台服务器整合到较少数量的物理服务器上,但是容器技术不是为了完全取代传统虚拟机技术,两者有本质的区别: * 虚拟机技术属于系统虚拟化,本质上就是在模拟一台真实的计算机资源,其中包括虚拟CPU,存储,以及各种虚拟硬件设备——这意味着它也拥有自己的完整访客操作系统; * 容器技术则是应用虚拟化,使用沙箱机制虚拟出一个应用程序运行环境,每个运行的容器实例都能拥有自己独立的各种命名空间(亦即资源)包括: 进程, 文件系统, 网络, IPC , 主机名等; 虚拟机将整个操作系统运行在虚拟的硬件平台上, 进而提供完整的运行环境供应用程序运行,同时也需要消耗更过的宿主机硬件资源; 而Docker等容器化应用时使用的资源都是宿主机系统提供的,仅仅是在资源的使用上只是做了某种程度的隔离与限制.比起虚拟机,容器拥有更高的资源使用效率,实例规模更小、创建和...
行者深蓝 发布于 1个月前 阅读 271

安装nginx出现的问题

1. 问题一 - 初始化的时候,提示没有这个文件 ``` [root@localhost src]# ./configure --prefix=/usr/local/nginx -bash: ./configure: 没有那个文件或目录 ``` - 解决方法: - 因为目录路径错了,导致无法初始化,需要切换到nginx-1.12.1目录下初始化 ``` [root@localhost src]# cd nginx-1.12.1 [root@localhost nginx-1.12.1]# ``` 2. 问题二 ``` 初始化的时候,遇到的 checking for C compiler ... not found ./configure: error: C compiler cc is not found ``` - 解决办法: - 安装包yum -y install gcc 3. 问题三 ``` 初始化的时候,遇到的 ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre= option. ``` - 解决办法: - 安装包yum install -y pcre-deve - 安装包yum install -y openssl openssl-devel --- - 初始化成功的标志 ``` Configuration summary + using system PCRE library + OpenSSL library is not...
运维小白 发布于 4周前 阅读 13

關於金銀倉About_SHKNW

關於金銀倉About_SHKNW SHKNW means Shenzhen and Hongkong Kam Ngan Warehouse. 金銀倉shknw.com有點不好意思金銀倉是一個依靠互聯網技術,面向港澳深圳珠海銷售磁磚傢俬潔具的電商。 通過網絡發售形式,直接從佛山,肇慶,清遠,樂從,南莊廠家和倉庫發貨,也為客戶加工地腳線,打包貨物,報關過關,直接送到港澳客戶的樓下。 這樣的模式為客戶節省了很多北上深圳買磁磚傢俬的時間成本和精力。金銀倉為香港澳門客戶選購磁磚傢俬潔具,增添了一種選擇。 一步到位,最大限度讓利給終端客戶。  Launched in June 2014, SHKNW (www.shknw.com) is the online shopping destination of choice for Hongkong and Macau  consumers looking for tiles furniture and Sanitary ware.   SHKNW saves a lot of time and money for customers. Maximum discount to customers. 眾所周知,深圳香港的磁磚建材昂貴,就是貴在舖租的高昂,一切的客戶成本都因為店租地租的昂貴而不得不賣高價。店租地租的成本都加在磁磚銷售費用上。所以,香港的磁磚價格才昂貴。 為了更大節省成本,我們沒有獨立的門店。請客戶朋友諒解。 金銀倉的業務模式也很簡單:就是通過互聯網向港澳深圳珠海發售...
金銀瓷磚批發倉 发布于 1天前 阅读 5

如何越犾/翻墙访问google、facebook、wiki (下)

之前大家使用的什么google hosts统统都不起作用了,无论怎么设置hosts都访问不了google、facebook、wiki 有没有?作为码农只搞点技术你很受伤有没有? 本图文教程将一步步教您如何搭建属于您自己的Shadowsocks服务器,最低每月16元就可以拥有自己的翻墙梯子啦。并且服务器配备CN2专线,Youtube 1080p无压力。而且可以一键换IP地址,再也不用担心被封了。
小浩浩2015 发布于 1个月前 阅读 34

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

Linux配置开机自启动执行脚本的两种方法

开机要启动的脚本qidong.sh [root@c69-01 scripts]# vim /server/scripts/qidong.sh [root@c69-01 scripts]# cat /server/scripts/qidong.sh #!/bin/bash /bin/echo $(/bin/date +%F_%T) >> /tmp/qidong.log 方法一:修改/etc/rc.local /etc/rc.local,该文件为链接文件 [root@c69-01 ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Feb 5 10:03 /etc/rc.local -> rc.d/rc.local 修改/etc/rc.local文件 [root@c69-01 scripts]# tail -n 1 /etc/rc.local /bin/bash /server/scripts/qidong.sh >/dev/null 2>/dev/null 重启系统,查看结果 [root@c69-01 ~]# cat /tmp/qidong.log 2018-02-19_23:30:56 已开机自启动该脚本 方法二:chkconfig管理 删除掉方法一的配置 [root@c69-01 ~]# vim /etc/init.d/test #!/bin/bash # chkconfig: 3 88 88 /bin/bash /server/scripts/qidong.sh >/dev/null 2>/dev/null [root@c69-01 ~]# chmod +x /etc/init.d/test 添加到chkconfig,开机自启动  [root@c69-01 ~]# chkconfig --add test [root@c69-01 ~]# chkconfig --list test test 0:off 1:off 2:off 3:on 4:off 5:off 6:off 重启系统,查看结果 [root@c69-...
Linux_yk 发布于 18小时前 阅读 11 评论 2

關於金銀倉About_SHKNW

關於金銀倉About_SHKNW SHKNW means Shenzhen and Hongkong Kam Ngan Warehouse. 金銀倉shknw.com有點不好意思金銀倉是一個依靠互聯網技術,面向港澳深圳珠海銷售磁磚傢俬潔具的電商。 通過網絡發售形式,直接從佛山,肇慶,清遠,樂從,南莊廠家和倉庫發貨,也為客戶加工地腳線,打包貨物,報關過關,直接送到港澳客戶的樓下。 這樣的模式為客戶節省了很多北上深圳買磁磚傢俬的時間成本和精力。金銀倉為香港澳門客戶選購磁磚傢俬潔具,增添了一種選擇。 一步到位,最大限度讓利給終端客戶。  Launched in June 2014, SHKNW (www.shknw.com) is the online shopping destination of choice for Hongkong and Macau  consumers looking for tiles furniture and Sanitary ware.   SHKNW saves a lot of time and money for customers. Maximum discount to customers. 眾所周知,深圳香港的磁磚建材昂貴,就是貴在舖租的高昂,一切的客戶成本都因為店租地租的昂貴而不得不賣高價。店租地租的成本都加在磁磚銷售費用上。所以,香港的磁磚價格才昂貴。 為了更大節省成本,我們沒有獨立的門店。請客戶朋友諒解。 金銀倉的業務模式也很簡單:就是通過互聯網向港澳深圳珠海發售...
金銀瓷磚批發倉 发布于 1天前 阅读 5

運輸配送信息Delivery_Information

運輸配送信息Delivery_Information 金銀倉會選用以下運輸公司,為客戶配送磁磚傢俬潔具:   佛山冠昌達中港運輸(散貨或包車,近佛山石灣的磁磚倉庫,近樂從傢俬城), 佛山新鵬港中港運輸(散貨或包車,近佛山石灣的建材倉庫,近樂從傢俬城), 佛山金泉貨運中港運輸(散貨或包車,近佛山石灣的倉庫), 佛山中潤貨運,深圳環城貨運,佛山順安貨運(深圳---佛山磁磚巴士) 佛山新港珠江船務(船運集裝箱貨櫃,近佛山新港,石灣港,南莊西樵鎮拋光磚廠一條街,上千個貼牌商,也近官窯日本愛和陶ICOT磁磚廠), 肇慶四會南江碼頭,肇慶碼頭,三水碼頭(近肇慶清遠高要四會高要磁磚廠家,船運集裝箱貨櫃,我不會告訴你RAK哈伊馬角磁磚廠,高爾磁磚廠(曾經東鵬的貼牌廠),金意陶,美國OTM奧特瑪磁磚廠,四會南江陶瓷工業園,高要陶瓷工業園就在附近的。), 深圳東成中港運輸(散貨或包車,近深圳清水河,田貝很多磁磚建材倉庫)   運輸方式很豐富,既適合散貨,也適合大地盤開工需要。   考慮到有很多大地盤沒有叉車。如果大地盤開工,我地金銀倉會建議選擇包車過港(26噸),運費比散貨平。   除非客戶有特殊說明,一般貨運選擇由我們金銀倉選擇,因為需要方便磁磚的調...
金銀瓷磚批發倉 发布于 1天前 阅读 3

金銀倉回答消費者的幾個常見問題

金銀倉回答消費者的幾個常見問題。 有消費者流覽我地金銀倉的網站,常常會問幾個問題。下面我會在這裡做一個回答。 問題1 金銀倉系香港澳門、深圳珠海有無show room實體展廳?想睇實物系邊度睇? 金銀倉回答: 金銀倉系一個電商,為左節省成本(其實租不起展廳),我地金銀倉系香港澳門、深圳珠海都無實體展廳。所以,要想睇到實物,真系唔好意思。顧客想睇到實物,只能靠流覽我們的金銀倉網站www.shknw.com和圖片。   問題2 金銀倉無展廳,貨物照片又唔系甘清晰,金銀倉點保證送到香港澳門的貨物同照片看到的是同一個款式?金銀倉有咩辦法保障顧客的權益? 金銀倉回答: 雖然金銀倉無展廳,但我地金銀倉提出2個措施可以最大限度保障消費者的權益。 一、貨到地盤才收錢,免去很多人網上消費的疑慮和擔心,全部委託中港貨運公司代收貨款。客戶在簽收的時候發現有貨不對版,可以拒絕簽收。我地金銀倉有呢個承諾。基本上有呢個承諾,顧客的風險已經變成零。有什麼覺得唔對路,你就俾電話我地金銀倉,金銀倉會叫中港貨運公司拉走貨物,拉去堆填區。 從我這麼多年在深圳經營的經驗來說,遭遇貨不對版,遭遇退貨的情況很少很少。一般100單只有1-2單系會遭遇退貨的。至於說貨不對...
金銀瓷磚批發倉 发布于 1天前 阅读 3

Linux系统开机启动流程(简述)

1)开机自检,加载BIOS信息     CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息等 2)MBR引导     硬盘的0柱面0磁道1扇区被称为MBR(Master Boot Reord)主引导记录,大小为512字节,里面存放预启动信息、分区表信息及分区标志等;分为两部分:第一部分为引导区,占446字节,第二部分为分区表,占66字节,记录硬盘的分区信息(其中前64字节是分区表信息,后2个字节是分区结束标识) 3)grub引导菜单     /etc/grub.conf文件为链接文件,系统读取内存中的grub配置信息,并依照此配置信息启动不同的操作系统 [root@c69-01 ~]# ll /etc/grub.conf lrwxrwxrwx. 1 root root 22 Feb 2 21:37 /etc/grub.conf -> ../boot/grub/grub.conf 4)加载内核kernel 5)启动init进程     在系统引导的过程中/sbin/init是内核第一个加载的程序,因此init进程对应的PID永远为1     该文件会读取/etc/inittab文件,并依据此文件进行初始化工作 6)读取inittab文件,执行rc.sysinit,rc等脚本     读取/etc/inittab文件,获取系统运行级别,如级别3,文本模式或字符模式     /etc/rc.d/rc.sysinit,Linux系统执行的第一个用户层文件,设定PATH、设定网络...
Linux_yk 发布于 1天前 阅读 11

自更新 shell 脚本

有时脚本要存个变量的值下次使用,一般用外部文件存储,对于简单需求略麻烦。 不如修改脚本自己
amita 发布于 2天前 阅读 5

Linux命令行常用快捷键(持续更新...)

Tab        自动补全 Ctrl+k    删除(剪切)光标处至末尾所有内容 Ctrl+u    删除(剪切)光标处至开头所有内容 Ctrl+a     移动到开头  Ctrl+e    移动到结尾 Ctrl+l    清屏,等同于clear Ctrl+c    终止当前命令 Ctrl+d    退出当前用户环境,相当于logout               删除光标所在位置后面一个字符 Ctrl+r    查找,回车运行,Ctrl+R继续搜索 Ctrl+s    挂起 Ctrl+q    解除挂起 Ctrl+y    粘贴 Ctrl+z    暂停执行在终端运行的任务 Ctrl+ ->    把光标向右移动一个单词 Ctrl+ <-    把光标向左移动一个单词 !!            执行上一条命令 !h            执行最近一次以h开头的命令 !h:p        仅打印最近一次以h开头的命令,不执行 !number 执行历史命令列表的第num(数字)条命令(结合history使用) !$            上一条命令的最后一个参数 Esc+.       上一条命令的最后一个参数,按 . 两次,倒数第二个参数 $?            上一条命令执行状态(0执行成功,非0执行失败)   (持续更新中...) 最近更新时间:2018/02/20 注:我使用的系统为:CentOS ...
Linux_yk 发布于 2天前 阅读 18

手把手教你安装 Vachlinux

varchliunx
wuzsheng 发布于 2天前 阅读 11 评论 3

hadoop-3.0.0集群搭建

大数据
jackmanwu 发布于 3天前 阅读 4

Linux普通用户登录后,命令行提示:-bash-4.1$ ,原因分析及解决

    遇到此种问题,那么需要了解和用户创建有关的一个目录(/etc/skel/目录),此目录下的所有文件(包括隐藏文件)都会被复制到新添加的用户的家目录中。 /etc/skel/目录到底是干嘛的呢?     该目录下是用来存放新用户环境变量文件的,添加新用户时,将该目录习文件拷贝到新用户家目录中。默认情况下该目录下都是隐藏文件;通过修改、添加、删除该目录下的文件,可为新添加的用户提供统一的、标准的、初始化用户环境。 显示/etc/skel/目录下的所有文件 [root@c69-01 ~]# ls -al /etc/skel/ total 20 drwxr-xr-x. 2 root root 4096 Feb 2 21:33 . drwxr-xr-x. 80 root root 4096 Feb 18 09:17 .. -rw-r--r--. 1 root root 18 Mar 23 2017 .bash_logout -rw-r--r--. 1 root root 176 Mar 23 2017 .bash_profile -rw-r--r--. 1 root root 124 Mar 23 2017 .bashrc 添加新用户,体现目录/etc/skel/作用:     上面说到/etc/skel/目录下的所有文件都会被拷贝到新用户的家目录中,那么我们在/etc/skel/下创建一个README文件,在创建新用户之后,新用户家目录中是否有该文件的存在 1)使用超级用户root创建文件README [root@c69-01 ~]# vim /etc/skel/R...
Linux_yk 发布于 3天前 阅读 11

Linux文件删除原理及案例分析

谨记: 大多数服务在运行时,是不能删除对应的服务正在写入的日志文件,会带来意料之外的结果!!!     Linux是通过link的数量来控制文件删除的,link包括被调用的数量和硬链接数量。     真正的删除一个文件,只有在文件未被进程调用的情况下,删除该文件的所有硬链接数即可。     如果在进程调用时,通过rm命令删除一个文件,是无法彻底删除的,该文件依然存在,只不过通过ls命令无法看到而已! 案例: 删除进程正在调用的/var/log/secure文件 [root@t-c6 ~]# ls /var/log/secure /var/log/secure [root@t-c6 ~]# \rm -rf /var/log/secure [root@t-c6 ~]# ls /var/log/secure ls: 无法访问/var/log/secure: 没有那个文件或目录     通过命令lsof可以看到,该文件并未彻底删除,因为系统进程正在写入数据到该文件中,进程调用数不为零导致的! [root@t-c6 ~]# lsof | grep deleted rsyslogd 917 root 2w REG 252,1 5573745 41014 /var/log/secure (deleted) 如何解决该问题?     重启对应的服务 [root@t-c6 ~]# /etc/init.d/rsyslog restart 关闭系统日志记录器: [确定]...
Linux_yk 发布于 3天前 阅读 14

2.9学习笔记——磁盘格式化、磁盘挂载、手动增加swap空间

4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间
linux运维影魔 发布于 4天前 阅读 6

给 Albert launcher 写翻译插件

有时看英文文章,想快速查询单词含义,但专门装个翻译软件又很难快捷。 Albert launcher 是个快速启动器,支持插件。所以写个基于有道翻译API的插件。
amita 发布于 4天前 阅读 7

Linux系统分区方式

硬盘在使用之前,要进行分区、格式化 一个硬盘可以分主分区、扩展分区、逻辑分区     主分区+扩展分区 <= 4,可以全部设置成主分区,也可以主分区+扩展分区进行设置,扩展分区不能直接使用,需要在扩展分区上建立逻辑分区,逻辑分区可以有多个     主分区+扩展分区编号1-4     逻辑分区编号只能从5开始 三种分区方式:  1)常规分区:数据不是特别重要的业务(集群的某个节点) /boot    引导分区 200M 主分区     swap    交换分区    内存的1.5倍,内存大于8G,就给8-16G /            Linux所有目录的顶点,剩余所有空间 2)数据重要(数据库、存储服务器) /boot    引导分区 200M 主分区     swap    交换分区    内存的1.5倍,内存大于8G,就给8-16G /            linux所有目录的顶点,100-200G /data    所有,存放数据 3)特大网站(产品线比较多需求) /boot    引导分区 200M 主分区     swap    交换分区    内存的1.5倍,内存大于8G,就给8-16G /            linux所有目录的顶点,100-200G 剩余空间不分配,哪个部分领到了服务器,根据需求再进行分区 注意:此博文仅供参考,根据自身情况...
Linux_yk 发布于 5天前 阅读 6

evasive 模块保护您的网站免受应用层 DOS 攻击

有多种可以导致网站下线的攻击方法,比较复杂的方法要涉及数据库和编程方面的技术知识。一个更简单的方法被称为“拒绝服务Denial Of Service”(DOS)攻击。这个攻击方法的名字来源于它的意图:使普通客户或网站访问者的正常服务请求被拒绝。 一般来说,有两种形式的 DOS 攻击: OSI 模型的三、四层,即网络层攻击 OSI 模型的七层,即应用层攻击 第一种类型的 DOS 攻击——网络层,发生于当大量的垃圾流量流向网页服务器时。当垃圾流量超过网络的处理能力时,网站就会宕机。 第二种类型的 DOS 攻击是在应用层,是利用合法的服务请求,而不是垃圾流量。当页面请求数量超过网页服务器能承受的容量时,即使是合法访问者也将无法使用该网站。 本文将着眼于缓解应用层攻击,因为减轻网络层攻击需要大量的可用带宽和上游提供商的合作,这通常不是通过配置网络服务器就可以做到的。 通过配置普通的网页服务器,可以保护网页免受应用层攻击,至少是适度的防护。防止这种形式的攻击是非常重要的,因为 Cloudflare[1] 最近 报告称[2] 网络层攻击的数量正在减少,而应用层攻击的数量则在增加。 本文将介绍如何使用 zdziarski[3] 开发的 Apache2 的模块 mod_evasive[4]。 另外,...
问题终结者 发布于 6天前 阅读 6

Unix 和 Linux 操作系统的差异

在计算机时代,相当一部分的人错误地认为 Unix 和 Linux 操作系统是一样的。然而,事实恰好相反。让我们仔细看看。 什么是 Unix? 在 IT 领域,以操作系统而为人所知的 Unix,是 1969 年 AT&T 公司在美国新泽西所开发的(目前它的商标权由国际开放标准组织所拥有)。大多数的操作系统都受到了 Unix 的启发,而 Unix 也受到了未完成的 Multics 系统的启发。Unix 的另一版本是来自贝尔实验室的 Play 9。 Unix 被用于哪里? 作为一个操作系统,Unix 大多被用在服务器、工作站,现在也有用在个人计算机上。它在创建互联网、计算机网络或客户端/服务器模型方面发挥着非常重要的作用。 Unix 系统的特点 支持多任务 相比 Multics 操作更加简单 所有数据以纯文本形式存储 采用单一根文件的树状存储 能够同时访问多用户账户 Unix 操作系统的组成 a) 单核操作系统,负责低级操作以及由用户发起的操作,内核之间的通信通过系统调用进行。 b) 系统工具 c) 其他应用程序 什么是 Linux? 这是一个基于 Unix 操作系统原理的开源操作系统。正如开源的含义一样,它是一个可以自由下载的系统。它也可以通过编辑、添加及扩充其源代码而定制该系统。这是它最大的好处之一,而不像今天的其...
问题终结者 发布于 6天前 阅读 3 评论 1

Ubuntu on Windows10 跨平台开发环境搭建权威指南

程序猿经常争论的一个话题是:日常开发到底 Windows 好还是 Linux 好?进而演化出另一个问题:到底选 MacBook 好还是 SurfaceBook 好? 选择 Linux 系统或者 mac 笔记本的同学最核心的理由是 Linux/Mac 开发、编译工具链比较完善,很多环境或者安装包都系统自带了,写出来的程序可以很方便的通过开发、测试与线上系统对接,开发测试效率比较高,而 Windows 下开发的同学可能需要考虑开发、测试代码的可移植性问题。就拿笔者来说,也曾经遇到过某些 java/python API 不支持 Windows 的问题,这给日常开发带来了不小的麻烦。 在 Windows10 以前,咱们为了解决 Windows 开发环境跨平台的问题,往往会选择 cygwin,这个项目本身已经很成熟了,笔者也用了很多年,它能在 Windows 下模拟一套类 Linux 的环境,用它应付一般的开发测试问题不大。但它的缺点在于组件、包管理器比较弱,对于日后的环境维护相当麻烦,而且一些底层 API 模拟的并不完善,对于一些涉及 Linux 底层的系统调用等场景显得很鸡肋。幸运的是在 2016 年,微软在 Windows10 WSL 里开始内置 Ubuntu,之后又开始在 Microsoft Store 以 UWP APP 的形式发布各个 Linux 系统...
xrzs 发布于 1周前 阅读 4218 评论 6 点赞 1

用一顿饭的时间与聊聊大数据

五年前,一夜之间,“大数据”一词开始红遍大江南北,再碰到别人问我时,我终于可以用一个网红词来轻松回答:“做大数据的!” (感谢移动互联网的发展,感谢各大IT厂商的炒作,感谢国家的重视和规划,感谢所有TV和AV) 但就在上个周末,跟老妈电话聊家常时,她突然很好学地问了我一个很有深度的问题: “我知道你是做大数据的,但你们大数据到底都在做些什么?” 我一时词穷,不知道该从何说起。而类似的问题在知乎上也经常被一些即将面临就业、被“大数据”三个字圈粉、希望成为数据人的莘莘学子们所追问,因为人懒,基本上都没有好好回答过。 于是,为了给普及“大数据”贡献点绵薄之力,为了让边缘人士们对大数据多一点基本理解,也是为了能回答老妈的问题,我决定写篇文章(省点电话费)来介绍一下大数据以及数据人的日常工作。 大数据虽然已经是大家耳熟能详的热词,但数据领域里的许多术语和概念仍然会让人不明就里,所以我准备从“做饭”这个普通人应该都有基本了解,老妈更是熟稔于心的领域来切入。 【主菜】 正所谓“巧妇难为无米之炊”,做饭首先得有食材,大数据也一样,没有数据说什么都是扯淡,所以数据就是数据人的食材(只要有数据,我不用吃饭)。 做饭通常...
问题终结者 发布于 1周前 阅读 9

剖析Linux的守护神

后台进程与守护进程的区别 最大的区别有以下几点:   (a)守护进程已经完全脱离终端控制台了,而后台程序并未完全脱离终端(在终端未关闭前还是会往终端输出结果); (b)守护进程在关闭终端控制台时不会受影响,而后台程序会随用户退出而停止,需要在以nohup command & 格式运行才能避免影响; (c)守护进程的会话组和当前目录,文件描述符都是独立的。后台运行只是终端进行了一次fork,让程序在后台执行,这些都没改变; 守护进程的特点 守护进程(Daemon)是在后台运行的一种特殊进程,它脱离于终端,从而这可避免进程被任何终端所产生的信号打断,它在执行进程中的产生信息也不在任何终端上显示。守护进程周期性地执行某种任务或等待处理某些发生的事件,Linux的大多数服务器就是用守护进程实现的。 守护进程编程要点 屏蔽一些有关控制终端操作的信号,是为了防止在守护进程没有正常启动起来前,控制终端受到干扰退出或挂起。代码如下: /* 处理可能的终端信号 */ signal(SIGTTOU, SIG_IGN); signal(SIGTTIN, SIG_IGN); signal(SIGTSTP, SIG_IGN); signal(SIGHUP , SIG_IGN); 在后台运行。 /* 是父进程,结束父进程,子进程继续 */ if(fork()) exit(0); 脱离控制终端和进程组...
问题终结者 发布于 1周前 阅读 3

鸟哥的Linux笔记-----文件属性、权限

  一、文件类型 o 当为[ d ]则是目彔; o 当为[ - ]则是文件; 文件可以分为3种文件 1、纯文本文档(ASCII),纯文本文档内容是我们人类可以直接读到的数据,例如数字、字母。设定文档都属于这一类型。 2、二进制文件(binary) 3、数据格式文件(data),有些程序在运作的过程中会读取某些特定格式的文档,那些特定格式的档案可以被称为数据文件(data file)。例如,Linux系统的使用者登录数据,记录在/var/log/wtmp  这是一个data file ,他能够通过last这个指令读出来!但是使用cat时,会读出乱码,因为他是属于一种特殊格式的文件。 o 若是[ l ]则表示为连结档(link file); o 若是[ b ]则表示为装置文件里面的可供储存的接口讴备(可随机存取装置); o 若是[ c ]则表示为装置文件里面的串行端口讴备,例如键盘、鼠标(一次性读取装置)。 o 若是[ s ]则表示为数据接口文件(sockets),通常被用在网络上的数据接口。我们启动一个程序来监听客户端的要求,而客户端可以透过这个socket来进行数据的沟通。最常在/var/run这个目录中看到这种文件类型。 o 若是[ p ]则表示为数据输送文件(FIFO,pipe)FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案...
柳白子 发布于 1周前 阅读 12

使用Heapster和Splunk监控Kubernetes运行性能

Kubernetes已经成为容器编排的事实上的王者,连Docker都已经向K8s女王大人低头。对于Kubernetes的cluster的数据收集和监控已经成为IT运维的一个重要话题。我们今天来看一看如何利用Splunk最新的Metrics Store来对Kubernetes的集群进行性能监控。 部署架构 下图是该方案的部署架构,主要包括: 利用Heapster收集K8s的性能数据,包含CPU,Memory,Network,File System等 利用Heapster的Statsd Sink,发送数据到Splunk的Metrics Store 利用Splunk的搜索命令和仪表盘功能对性能数据进行监控 前期准备 前期主要要准备好两件事: 编译最新的Heapster的镜像,并上传到某个公共的Docker镜像仓库,例如docker hub 在Splunk中配置Metrics Store和对应的网络输入(Network Input UDP/TCP) 这里主要要做的选择是Statsd的传输协议用UDP还是TCP。这里我推荐使用TCP。 最新的Heapster代码支持不同的Backend,包含了log, influxdb, stackdriver, gcp monitoring, gcp logging, statsd, hawkular-metrics, wavefront, openTSDB, kafka, riemann, elasticsearch等等。因为Splunk的Metrics Store支持statsd协议,所以可以很容易的和Heapster集成。 首先我们需要利用最新的heapster代码,编译...
naughty 发布于 1个月前 阅读 1593 评论 2 点赞 1

HTTPS连接过程以及中间人攻击劫持

一 、HTTPS连接过程及中间人攻击原理 https协议就是http+ssl协议,如下图所示为其连接过程:  1.https请求  客户端向服务端发送https请求;  2.生成公钥和私钥  服务端收到请求之后,生成公钥和私钥。公钥相当于是锁,私钥相当于是钥匙,只有私钥才能够打开公钥锁住的内容;  3.返回公钥  服务端将公钥(证书)返回给客户端,公钥里面包含有很多信息,比如证书的颁发机构、过期时间等等;  4.客户端验证公钥  客户端收到公钥之后,首先会验证其是否有效,如颁发机构或者过期时间等,如果发现有问题就会抛出异常,提示证书存在问题。如果没有问题,那么就生成一个随机值,作为客户端的密钥,然后用服务端的公钥加密;  5.发送客户端密钥  客户端用服务端的公钥加密密钥,然后发送给服务端。  6.服务端收取密钥,对称加密内容  服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。  7.加密传输  服务端将经过加密的内容传输给客户端。  8.获取加密内容,解密  客户端获取加密内容后,用之前生成的密钥对其进行解密,获取到内容。 中间人劫持...
MengXS 发布于 3个月前 阅读 2816 评论 9 点赞 10

理解TCP/IP三次握手与四次挥手的正确姿势

背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次。 从好上开始,到现在,一年多也算坚持下来了。 问题 有时候聊天的过程中,我的网络或者她的网络可能会不好,视频就会卡住,听不到对方的声音,过一会儿之后才会恢复。 中间双方可能就要不断的确认网络是否恢复,但是有时候会: 她:“你可以听到了吗?” 我:“可以了,你呢?”、 她:“喂喂,你可以听到了吗?” 我:“可以了,我可以听到了,你呢?” 她:“你可以听到了吗?” ..... 这种情况很蛋疼,那么怎样才能找一个简单的办法,让两个人都确认自己可以听到对方的声音,对方也可以听到自己的声音呢? 注:以下情节纯属虚构   方案 TCP建立连接为什么是三次握手,而不是两次或四次? TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。 顺便说一句,原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。 举个日常例子,打电话时我们对话如下:   对应为客户端与服务器之间的通信: 于是有了如下对话: 我:1+1等于几? 她:2,2+2等于几? 我:4 首先两个人约定协议 1.感觉网络情况不对的时候,任何一方都可以发起询问 2.任何情况下,若发起询问后5秒还没收到...
Champin 发布于 3个月前 阅读 3067 评论 10 点赞 10

如何7步实现根据源码包创建rpm包

### 如何7步实现根据源码包创建rpm包 --- > 本文是"[7 Steps to Build a RPM Package from Source on CentOS / RedHat](http://www.thegeekstuff.com/2015/02/rpm-build-package-example/)"一文的简单翻译。 **version: 0.1.0 2017-11-19** 有时你可能需要获取一个开源应用的源码包,但是可能没有无法通过该应用的RPM文件来安装到系统。 在这种情况下,你既可以编译源码安装,也可以以源码包来创建一个rpm包文件,实现安装应用的功能。 同样存在一种情况即你想要创建一个你自己开发的自定义的RPM包。 这篇指南解释了如何提高源码来创建一个rpm包。 为了创建rpm包,你将需要源码包(通常为一个压缩文件,其内也包含了SPEC文件)。 SPEC文件包含以下说明:如何创建rpm包,包内包含的文件,安装的路径。 RPM将展现创建过程中的测试过程。 执行spec文件中的prep块中定义的系统命令和宏命令。 检测文件列表的内容 执行spec文件中的build块中定义的系统命令和宏命令。在这一步中文件列表中的宏命令也被执行。 创建二进制包文件 创建源码包文件 一旦RPM执行了上述步骤,将创建二进制的包文件和源码包文件。 二进制包文件包含所有安装或卸载包的额外信息的源文件。 通常安装包的所有...
Lu_Castiel 发布于 3个月前 阅读 1005 评论 7 点赞 2

lvm讲解、磁盘故障小案例

### lvm讲解 ``` DiskA 分区分别为Physical Volume1、Physical Volume2;DiskB 分区为Physical Volume3,在这里Physical volume1,2,3就是磁盘分区 也就是物理卷;然后由单个或多个物理卷组成物理卷组,最后在物理卷的基础上划分出逻辑卷,而逻辑卷格式化后挂载上就可以使用了 ``` #### 准备磁盘分区阶段 - fdisk /dev/sdb - 创建三个新分区,大小分别为2G - 改变分区类型为8e(fdisk中使用t更改类型) 1. 创建新分区 ``` //这里我创建了5个2G的分区,多出的2个留待测试用 [root@24centos7-01 /]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 //创建第一个分区 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-20971519,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2000M 分区 1 已设置为 Linux 类型,大小设为 2 GiB //创建第二个分区 命令(输入 m 获取帮助):n Partition type: p primary (1 primary, 0 ext...
vitus_feng 发布于 3个月前 阅读 1330 评论 5 点赞 2

nginx之proxy_pass指令完全拆解

nginx中有两个模块存在proxy_pass指令。proxy_pass后的后端服务器的uri到底是个啥?
永福 发布于 6个月前 阅读 3716 评论 6 点赞 12 打赏 1

工作中redis合库以及aof踩坑记

概述     此文是第一次搞redis主从小白犯的错,大神可以忽略。记录为了让看到本博文的小白前车之鉴 软件资源             centOs:6.5             redis:2.8.10  背景               公司现有架构均是单机模式,本文仅先介绍redis单机踩的坑-- 即生产应用redis均是单一实例,一旦实例挂掉功能就会不可用。现公司业务使用了一台实例(业务实例),一台session共享实例(session实例)。             现需要对现有架构升级(后续会出整个架构升级的相关博客),先从最简单的redis开始开刀,采用主从复制,启用哨兵监听进行主从切换(后续会有相关详细博客)。 基本问题  线上redis仅启用了rdb持久化,需要启用AOF 线上业务实例和session实例 keys<1W,可以把业务实例和session实例合并节约资源 踩坑记     AOF挖坑       已经搭建了主从模式,创建了多个key验证没问题, 很开心ing, 发现需要启用AOF,查看官方文档认为so easy, 于是乎 改改改配置,重启服务,在主节点添加了一个key,主从验证通过, 非常开心ing。     【敲黑板,开始挖坑了哈】 此时模拟极端故障,把主从节点都停掉了,开始依次开启服务,发现仅有开启...
java_龙 发布于 8个月前 阅读 2655 评论 22 点赞 3

如何在国内愉快的安装 Kubernetes

无需翻墙,如何愉快的与K8S 玩耍
无聊的学习者 发布于 9个月前 阅读 10552 评论 20 点赞 4

运维不仅仅是Linux,居然还要知道这么多?

运维不仅仅是懂Linux就行,因为还有一大部分的Windows运维,向windows运维人员致敬。当然我们这篇文章不是说运维除了懂Linux,还要懂Windows,而是涉及运维的其他方方面面。 如:环境部署、排错和调优、备份、高可用和集群、监控告警、安全和审计、自动化和DevOps、虚拟化和云服务。
永福 发布于 10个月前 阅读 5985 评论 28 点赞 21 打赏 3

简单聊聊: linux 匿名管道

  相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任务.就好像下面的命令: echo 123 | awk '{print $0+123}' # 输出246 不过这次咱们不来说这些用法, 而是来探讨一些更加有意思的, 那就是 管道两边的数据流"实时性" 和 管道使用的小提示.   其实我们在利用管道的时候, 可能会不经意的去想, 我前一个命令的输出, 是全部处理完再通过管道传给第二个命令, 还是一边处理一边输出呢? 可能在大家是试验中或者工作经验中, 应该是左边的命令全部处理完再一次性交给右边的命令进行处理, 不光是大家, 我在最初接触管道时, 也曾有这么一个误会, 因为我们通过现象看到的就是这样.    但其实只要有简单了解过管道这工具, 应该都不难得出解释: 管道是两边是同时进行, 也就是说, 左边的命令输出到管道, 管道的右边将马上进行处理.  管道的定义 管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。管道的一端连接一个进程的输出。这个进程会向管道中放入信息。管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。一个缓冲区不需要很大,它被设计成为环形的数据结构,以便管道可以被循...
Lin_R 发布于 11个月前 阅读 1807 评论 9 点赞 8 打赏 1

Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS

这篇文章主要讲的就是如何让自己的网站免费从HTTP升级为HTTPS,使用的是 [Let's Encrypt](https://letsencrypt.org/)的证书。实际上也就是一个Let's Encrypt 免费证书获取教程 。 为什么要上HTTPS,说一个小故事。 > 从前有个网站,后来有个广告,没了 作为一个博客,自然不想让在被别人浏览的时候,出现莫名的广告([运营商劫持](https://www.google.com.hk/webhp?hl=zh-CN&sourceid=cnhp&gws_rd=ssl#safe=strict&hl=zh-CN&q=%E8%BF%90%E8%90%A5%E5%95%86%E5%8A%AB%E6%8C%81))。这时候,HTTPS的价值就体现出来了。 HTTPS的好处还有很多,但单单这一条,就够我花心思去升级了。 (其实主要目的是提升网站Biger :) ## Let's Encrypt 简介 如果要启用HTTPS,我们就需要从证书授权机构(以下简称CA) 处获取一个证书,Let's Encrypt 就是一个 CA。我们可以从 Let's Encrypt 获得网站域名的免费的证书。这篇文章也主要讲的是通过 Let's Encrypt + Nginx 来让网站升级到HTTPS。 ## Certbot 简介 [Certbot](https://certbot.eff.org) 是Let's Encrypt官方推荐的获取证书的客户端,可以帮我们获取免费的Let's Encrypt 证书。Certbot 是支持所有 Unix 内核的操作系统的,个人博客的...
DiamondFsd 发布于 1年前 阅读 5477 评论 33 点赞 17

haproxy和nginx负载均衡分析

出于对负载均衡工具的疑问,分别对haproxy和nginx的负载均衡进行了抓包分析,分析的过程跟大家分享下。先说下对haproxy抓包得到的结论吧:haproxy在负载均衡的一台后端挂掉后,如果还没达到探测的时间点时,请求还会往挂掉的这台转发,请求会丢失。 haproxy负载均衡的实验过程如下: 1: 先看下haproxy的配置。配置inter 20000为20s检测一次,这个是为了更明显的抓下haproxy的负载均衡探测机制。 listen test9090         bind 127.0.0.1:9090         mode tcp         server localhost90 127.0.0.1:90 check inter 20000         server localhost91 127.0.0.1:91 check inter 20000 2: 后端我是用nginx进行测试,看下nginx的配置如下。可在/var/www/html/建个index.html进行测试 server {             listen       90;             listen       91;             location /{                     root /var/www/html;             }     } 先用curl 127.0.0.1:9090进行测试,并在机器上开两个窗口看下抓包是否均衡正常,两个窗口运行的命令分别如下:tcpdump -i lo -nn 'port 90'      tcpdump -i lo -...
鸿弟 发布于 1年前 阅读 4690 评论 19 点赞 6

Linux Shell 从入门到删除根目录跑路指南

shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~ 今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。 1、变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file 这种情况下如果 cmd 执行出错或者返回为空,后果将是灾难性的,那如何防范呢? (1)利用 shell 的变量扩展功能,如果变量为空赋给默认值或者抛出异常退出脚本: echo ${base_path:?var is empty}/${tmp_file:?var is empty} -bash: tmp_file: var is empty (2)人肉判断变量是否为空: [[ ${tmp_file} == "" ]] && echo 1 1 [[ -z ${tmp_file} ]] && echo 1 1 (3)如果变量未定义还可以开启 set 选项: # cat a.sh # 若有用未设置的变量即让脚本退出执行 # set -o nounset # 或 set -u b= echo $b echo $a echo 1 # bash a.sh a.sh: line 4: a: unbound variable # 另外, # 如果命令运行失败让脚本退出执行 set -o errexit # 或 set -e 2、路径含有空格导致误删...
xrzs 发布于 1年前 阅读 11207 评论 26 点赞 20

zabbix自动发现监控redis数据库

zabbix自动发现监控redis数据库与自动发现mongo,mysql的思路差不多。这次汇总完就把模板,脚本上传到git上。如果公司使用的redis都是6379端口的话,那么还是建议创建一套模板,然后链接到各个服务器即可。如果公司的redis使用的端口比较多,各个都不一样,那还是自动发现并监控redis比较方便。还是一样,先来看下监控的效果图: 上述图形是使用zabbix的筛选功能汇总在一起的图片。监控redis的客户端连接数,使用的内存,实际使用的内存和redis的内存碎片化情况。   下面来讲讲自动发现redis的实现,首先,还是先看下redis自动发现的配置: 探索规则配置完后,同样的在zabbix agentd端需要添加如下配置然后重启zabbix_agentd,配置如下: UserParameter=redis.discover,python /usr/local/zabbix/discover_redis.py 其中/usr/local/zabbix/discover_redis.py自动发现的脚本内容如下 : #coding:utf-8 import json import commands (status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'redis-server'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u''') outputs = output.split('\n') ports = [] for port in outputs: ports += [{'{#RE...
鸿弟 发布于 1年前 阅读 3209 点赞 3

ELK日志分析平台搭建全过程

一、使用背景     当生产环境有很多服务器、很多业务模块的日志需要每时每刻查看时 二、环境 系统:centos 6.5 JDK:1.8 Elasticsearch-5.0.0 Logstash-5.0.0 kibana-5.0.0 三、安装 1、安装JDK 下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 本环境下载的是64位tar.gz包,将安装包拷贝至安装服务器/usr/local目录 [root@localhost ~]# cd /usr/local/  [root@localhost local]# tar -xzvf jdk-8u111-linux-x64.tar.gz 配置环境变量 [root@localhost local]# vim /etc/profile 将下面的内容添加至文件末尾(假如服务器需要多个JDK版本,为了ELK不影响其它系统,也可以将环境变量的内容稍后添加到ELK的启动脚本中) JAVA_HOME=/usr/local/jdk1.8.0_111 JRE_HOME=/usr/local/jdk1.8.0_111/jre CLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin export  JAVA_HOME export  JRE_HOME ulimit -u 4096 [root@localhost local]# source /etc/profile 配置limit相关参数 [root@localhost local]# vim /etc/security/limits.conf 添加以下内容 * soft nproc 65536 * hard nproc 6553...
运维2016 发布于 1年前 阅读 5929 评论 12 点赞 6

zabbix自动发现监控mongo数据库

监控mongo写个模板其实挺快的,如果公司每个mongo使用的端口都一致的话,就可直接建立一套模板,然后这个模板链接到各个服务器上即可。但如果公司使用mongo的端口如果不一致的话,那建议使用zabbix的自动发现的功能,自动发现mongo监听的端口,并对它进行相关数据的收集。   先看一下效果图, 此监控图是zabbix的筛选功能可能把相关的图整合到一个页面里面去。   具体的自动发现实现如下: 探索规则配置如上,机器上的zabbix agent配置如下: UserParameter=mongo.discover,python /usr/local/zabbix/discover_mongo.py   其中/usr/local/zabbix/discover_mongo.py为自动发现的脚本,脚本内容如下: #coding:utf-8 import simplejson as json import commands (status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'mongod'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u|grep -v "^28"''') outputs = output.split('\n') ports = [] for port in outputs: ports += [{'{#MONGOPORT}': port}] print json.dumps({'data':ports},sort_keys=True,indent=4) 使用系统命令netstat把监听的端口筛选出来,然后以json的格式进行输出。定义到...
鸿弟 发布于 1年前 阅读 2112 评论 1 点赞 5

容器集群管理平台的比较

本文简单介绍了主流的容器管理平台包括Swarm,Kubernetes,Mesos,AWS ECS,并对它们做了基本的比较。
naughty 发布于 1年前 阅读 5741 评论 2 点赞 5 打赏 1

“Linux 集群和自动化运维”高手问答精选

来自OSC 第 126 期高手问答主题——Linux 集群和自动化运维
局长 发布于 1年前 阅读 2071 评论 3 点赞 3

redmine 安装过程中的无数坑

自己在网上看到redmine,感觉功能很强大。于是自己就开始安装,但是谁想到在安装过程中的坑呀,摔的自己遍体鳞伤,自己做一下总结,希望别人能绕过这些坑,走直路。 1. 安装环境:     系统:ubutu12.04  架构:LAMP  安全:防火墙和selinix(全部关闭) 2.安装流程:                                                                                                                                                         A. 安装ruby                                                                                                                                                              #官网下载 ruby-2.2以上的版本,否则安装过程中的组件会安装不上。(以2.2.4为例) # tar zxvf ruby-2.2.4.tar.gz          # cd ruby-2.2.4 # ./configure  # make && make install 设置Ruby环境变 vim ~/.profile export PATH=$PATH:/usr/local/src/ruby-2.2.4/        B.安装...
渺渺星辰 发布于 1年前 阅读 1597 评论 12 点赞 4

基于LVS的AAA负载均衡架构实践

本次分享将从一次实际的负载均衡改造案例出发,通过介绍项目背景、选型思路、测试方法和问题分析等方面展开,总结负载均衡架构的一般套路和经验教训。
RiboseYim 发布于 1年前 阅读 3040 评论 6 点赞 9
顶部