开源中国

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

It appears you’re using an unsupported browser

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

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

Elasticsearch调优——segment memory

1、索引之segment memory:          一个segment是一个完备的lucene倒排索引,而倒排索引是通过词典(Term Dictionary)到文档列表(Postings List)的映射关系,快速做查询的。所以每个segment都有会一些索引数据驻留在heap里。        因此segment越多,瓜分掉的heap也越多,并且这部分heap是无法被GC掉的!        怎么知道segment memory占用情况呢? CAT API可以给出答案。        1)、查看一个索引所有segment的memory占用情况:   curl -s -uelastic:changeme 'http://192.168.58.158:9200/_cat/segments?v' index                             shard prirep ip         segment   generation   docs.count     docs.deleted     size       size.memory      committed searchable version compound www-nginx-tp-2017-08-20        0     p      192.168.58.158 _s9v         36643      58203            0                56.8mb      127077         true      true       6.5.1   fals...
perofu 发布于 5天前 阅读 230

康威定律——这个50年前就被提出的微服务概念,你知多少?

## 概述 微服务架构是一种非常流行的新概念,即便可供以借鉴的经验比较少,当然不能阻挡它成为热门话题与研究对象。 令人惊讶地是,其实微服务的概念早在五十多年前就已经被提出,多年来,很久研究表明了这些观点的准确性。这就是本文所介绍的——康威定律。现在已经有很多企业正在尝试使用它创建高效的微服务架构。 ![image](https://i.v2ex.co/X5120k76.png) 在这篇文章中最有名的一句话莫过于: 设计系统的企业受限于生产设计,这些设计是企业沟通结构的副本——Melvin Conway(1967)。 这意味着设计系统的企业,它们生产的设计等同于企业内的沟通结构。下图说明了此概念: ![image](https://i.v2ex.co/lAvKd4w4.png) 该图展现了企业现有沟通结构,简单地说:企业结构等于系统设计。 作者这里提到的系统并不局限于应用系统,据说这篇文章最初投稿于哈佛商业评论,但被拒绝,因此康威将其提交到了一个编程杂志,所以被误解为只针对应用开发,起初,作者并没有把这种理论作为定律,只是描述了发现和结论,不过著名的《The Mythical Man-Month》一书介绍了Brooks的理论,并引用了康威的一些观点,于是康威的理论被推崇成为我们现在所熟知的康威定律。 康威定律详细介绍 在文...
数人云 发布于 2周前 阅读 1205 评论 6 点赞 6

网络攻击是如何运作的——一份完整的列表 ( 2 )

网上有很多很多饭人
萝卜坑坑 发布于 2周前 阅读 331 评论 2 点赞 2

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

nohup介绍

## 背景   我们通常使用&将前台任务变为后台任务执行,但是如果只是使用&,那么在突然断网或者关闭启动该任务的终端(ps:可使用putty来测试,部分软件如mobaxterm做了优化,关闭终端是友好关闭的)时,内核就会给后台任务发送SIGHUP信号,从而导致后台任务停止。这时,我们就需要使用nohup来启动该后台任务。 ## 简介   nohup,顾名思义,就是使得运行的命令可以忽略HANGUP信号。因此,即使突然断网或者关闭终端,该后台任务依然可以继续执行。   这里需要指明的是,nohup并不会自动将任务运行在后台,我们需要在命令行末尾加上&来显示的指明。 ## 进阶   如果nohup命令的标准输入是终端,那么nohup将会默认使用/dev/null来重定向。   如果nohup命令的标准输出是终端,那么标准输出会被附加到文件`nohup.out`中;如果用户没有在当前目录创建文件的权限,那么就会把输出附加到`$HOME/nohup.out`中;如果还是没有写入权限,那么该命令就不会执行。   如果nohup命令的标准错误是终端,那么就会被定向到标准输出的附加的文件描述符。如果标准输出被关闭了,那么标准错误就会像上面一样尝试附加到`nohup.out`或`$HOME/nohup.out`中。 ## 测试   这里,我们先创建一...
BookShu 发布于 3周前 阅读 348

基于jenkins+kubernets+docker的持续化集成

项目实现效果,开发人员在gitlab上传代码,一键部署下去,所有web容器统一更新代码, 服务器数量:两台jenkins做高可用,十八台服务器做docker容器的web服务器。 架构运行思路:gitlab上更新了代码以后,通过webhook检测到gitlab上有变动,然后将给本机的jenkins传送一个回执,执行任务,任务内容是进行代码pull到本机中然后通过脚本命令把代码转移到本机的nfs目录中,然后通过jenkins上的nfs挂载到所有web容器的宿主机上,并将宿主机的挂载目录映射到容器里面的网页根目录中实现了一键自动部署环境。 架构生存时间:jenkins做了高可用实现了不间断工作,docker使用脚本造成了容器自启的效果。 架构图: 顺序: 发开人员→gitlab→jenkins→registry→kubernetes→docker 思路:从开发人员上传代码到gitlab托管代码以后,jenkins自动pull下来然后做成镜像上传至registry私有仓库,同时发指令给kubernetes使他关闭旧容器,然后重新启用新的docker镜像并做成容器对外提供服务。具体操作步骤详见本人有道云笔记: 1.jenkins部署 http://note.youdao.com/noteshare?id=a3c643c5c07c35f7ad00d39ea6e0940c&sub=86FEF5261F92480D94462D90BB306919 2. jenkins服务安装详解 http://n...
战斗的小涵 发布于 3周前 阅读 761 评论 2 点赞 1

记一次诡异的 ssh 互信免密码登录失败

we did not send a packet, disable method
xrzs 发布于 3周前 阅读 1477 评论 2 点赞 1

安装Nexus(Linux)

一、准备 安装jdk 下载Nexus OSS版,Nexus OSS版是社区版本,官网也有免费、付费版本可供选择。 创建目录:/usr/local/nexus sudo mkdir /usr/local/nexus 赋予用户对目录的权限 sudo chown -R wh.wh nexus 解压安装包,得到nexus-3.5.1-02、sonatype-work两个文件夹 tar -zxvf nexus-3.5.1-02-unix.tar.gz nexus-3.5.1-02:该目录包含Nexus运行所需要的文件,如启动脚本、依赖jar包等。 sonatype-work:该目录包含Nexus生成的配置文件、日志文件、仓库文件等。 删除安装包 rm nexus-3.5.1-02-unix.tar.gz 二、启动 启动 cd bin ./nexus start 停止 ./nexus stop 查看服务状态 ./nexus status 重启 ./nexus restart 三、验证 访问Nexus界面,http://192.168.15.49:8081 登录:匿名用户仅包含基本权限,管理Nexus需要以管理员方式登录,Nexus默认管理员用户和密码为 admin/admin123 四、修改配置 Nexus默认使用8081端口,可通过配置文件修改,保存重启即可生效。 五、仓库类型介绍         1.仓库类型共四种:group(仓库组)                                       hosted(宿主)                      ...
henry_sf 发布于 4周前 阅读 160

使用Ansible playbooks快速构建etcd集群

>本篇文章记录一下使用`ansible-playbooks`进行快速构建一个可用的etcd集群。在阅读并实践本文章之前,请确保您有一个可用的`ansible`环境。 ### 一、集群规划 `注意:本文档基于centos7+的操作系统上进行构建,在rhel7+系列也可用使用,其他发行版本可酌情参考` | etcd_name | 节点 | 端口 | | --- | --- | --- | | etcd1 | 10.0.0.77 | 2379/2380 | | etcd2 | 10.0.0.78 | 2379/2380 | | etcd3 | 10.0.0.79 | 2379/2380 | 以上节点详情信息用来规划集群规模以及名称角色,配置文件中`ETCD_INITIAL_CLUSTER`选项中的`etcd_name`和地址需要和主机规划中一致 ### 二、etcd集群部署 > 环境前提:已经配置过ansible相关的环境,并且可以免密登录 #### 1.etcd集群相关的配置文件 ``` $ tree . . ├──etcd-install.yml #ansible-playbook 脚本 ├──etcd.conf.j2 #etcd主配置文件 ├──etcd.service #systemd服务启动文件 ├──host #etcd集群主机列表 # ansible-playbooks 脚本 $ cat etcd-install.yml --- - hosts: "{{ host }}" remote_user: root vars: hostip: "{{ ansible_all_ipv4_addresses[0] }}" ipv6: "{{ ansible_all_ipv6_addresses[0].split(':')[-1] }}" pa...
Andy-xu 发布于 4周前 阅读 45

Redis单点安装,注册为系统服务,开机启动

集群安装请看下一篇博客:Redis集群安装,注册为系统服务,开机启动 1. 操纵系统     CentOS: 6.7 2. 下载 官网下载,选择了最新稳定版(redis-4.0.1.tar.gz) 3. 安装步骤 3.1. 上传至/usr/local/src 使用rz命令(如果没有安装,执行yum -y install lrzsz),或者别的传输工具 3.2. 解压缩 $ tar -zxvf redis-4.0.1.tar.gz 3.3. 安装三板斧 make, make insall, make clean 注:      在make结束后,会提示运行一下make test会是一个好主意,运行时有可能会需要更高版本的tcl,此时执行yum -y install tcl即可 安装的位置在/usr/local/bin  ,有: (1)redis-benchmark:性能测试工具,测试Redis在你的系统及配置下的读写性能 (2)redis-check-aof:用于修复出问题的AOF文件 (3)redis-check-dump:用于修复出问题的dump.rdb文件 (4)redis-cli:Redis命令行操作工具 (5)redis-sentinel:Redis集群的管理工具,可参考此系列文章(详见官方文档) (6)redis-server:Redis服务器启动程序 4. 配置 4.1. 将启动脚本复制到/etc/init.d下 $ cp /usr/local/src/redis-4.0.1/utils/redis_init_script /etc/init.d/redis 4.2. 根据自己的配置修改启动脚本 #!/bin/s...
lost_keke 发布于 1个月前 阅读 524 评论 10 点赞 3

nginx之proxy_pass指令完全拆解

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

基于Rsyslog和LogAnalyzer的日志管理方案

在数据为王的时代,日志管理是一个绕不开的话题,相应的开源软件有不少,比如热门的三件套:Logstash、ElasticSearch、Kibana,虽然功能强大,但是配置复杂,是为大数据运维场景而生。相比较而言,rsyslog更容易快速上手,可以将收集日志存在mysql中,同时又有Web前端Loganalyzer开源软件的支持,方便搜索,分析、审计,用户可以基于日志数据快速定位解决问题,可以满足服务器量级从数十到百规模的运维场
行者深蓝 发布于 1个月前 阅读 52

Linux下使用shell+expect远程登录主机

最近使用Ubuntu系统想远程登录自己的vps主机,但是感觉自带的远程登录软件不太好使。于是乎想着怎么使用shell脚本来登录,于是Google之后整理了一下,记录一下,方便以后用到。 ## 1.准备工作:安装expect for Ubuntu ```bash sudo apt-get update sudo apt-get install expect ``` for Centos ```bash yum install expect ``` ## 2.新建脚本粘贴以下内容 ```bash #!/usr/bin/expect spawn /usr/bin/ssh root@114.114.114.114 -p 22 # 用户名、IP地址、端口号自行设置 expect "password:" send "remoteComputerPassword\r" # 密码请自行设置 expect efo interact ``` 脚本的用户名、IP地址、端口号以及密码,需要根据自己远程主机的实际情况来设置。 如果脚本无法执行,查看脚本是否添加了执行权限。
诚一 发布于 1个月前 阅读 739 评论 3 点赞 1

压缩大文件时如何限制CPU使用率?----几种CPU资源限制方法的测试说明

## 一、说明 我们的MySQL实例在备份后需要将数据打包压缩,部分低配机器在压缩时容易出现CPU打满导致报警的情况,需要在压缩文件时进行CPU资源的限制。 因此针对此问题进行了相关测试,就有了此文章。 ## 二、测试过程 ### 0. 正常打包 正常打包压缩操作: ``` [root@mysql-test data1]$ du -sh 5555 34G 5555 [root@mysql-test data1]$ tar -czf 5555.tar.gz 5555 ``` 打包压缩过程中的CPU占用: ![no_tool](https://static.oschina.net/uploads/img/201708/14113525_WzeK.png "no_tool.png") ### 1. nice 命令打包 > nice 命令用于设定进程的优先级,取值范围[-20,19],-20为最高,19为最低。 使用nice命令: ``` [root@mysql-test data1]$ du -sh 5555 34G 5555 [root@mysql-test data1]$ nice -n 19 tar -czf 5555.tar.gz 5555 ``` 过程中CPU占用: ![nice_tool](https://static.oschina.net/uploads/img/201708/14113937_DYvz.png "nice_tool") - 第4列 NI 列为19,表示优先级,此时已经是使用了最低优先级 - 由于平时并没有太多的任务进行(夜间备份期间更是如此),因此即使设置了最低优先级,依旧占用CPU较高 ### 2. cpulimit 命令打包 > cpulimit 可以为进程设置C...
o翡翠谷o 发布于 1个月前 阅读 371 评论 5

使用shell脚本对Nginx日志进行切分

1.日志格式 默认的日志格式: main log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 如默认的main日志格式,记录这么几项 远程IP- 远程用户/用户时间 请求方法(如GET/POST) 请求体body长度 referer来源信息 http-user-agent用户代理/蜘蛛 ,被转发的请求的原始IP http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP 2.实现思路 shell+定时任务+nginx信号管理,完成日志按日期存储 #!/bin/bash base_path='/usr/local/nginx/logs' log_path=$(date -d yesterday +"%Y%m") day=$(date -d yesterday +"%d") mkdir -p $base_path/$log_path mv $base_path/access.log $base_path/$log_path/access_$day.log kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` 3.定时任务 Crontab 编辑定时任务 01 00 * * * /xxx/path/b.sh  每天0时1分(建议在02-04点之间,系统负载小)...
楠木楠 发布于 1个月前 阅读 369 评论 2

mongoDB主从复制搭建详细过程

##实验目的搭建mongoDB主从复制 ``` 主 192.168.0.4 从 192.168.0.7 ``` ##mongodb的安装 ###1: 下载mongodb www.mongodb.org 下载最新的stable版 查看自己服务器 适合哪个种方式下载(wget 不可以的 可以用下面方式下载) ``` wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.5.tgz curl -O -L https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.0.5.tgz ``` ###2: 解压文件 不用编译,本身就是编译后的二进制可执行文件. ``` tar zxvf mongodb-linux-x86_64-rhel62-3.0.5.tgz #解压 mv mongodb-linux-x86_64-rhel62-3.0.5 /usr/local/mongodb #更改文件夹名字 cd /usr/local/mongodb/bin ``` ###创建两个文件夹 存数据和日志 ``` mkdir -p /home/map/mongodb/mongo /home/map/mongodb/mlog/ ``` ###mongodb的bin下各工具的用途: - mongod:数据库服务端,类似mysqld,每个实例启动一个进程,可以fork为Daemon运行 - mongo:客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法 - mongodump/mongorestore:将数据导入为bson格式的文件/将bson文件恢复为数据库,类似xtracbackup - mongoexport/mongoimport:将...
是江山 发布于 1个月前 阅读 345

Cyber-Security:IPv6 & Security

- IPv6 Overview - IPv6 & Cyber-Security (IPsec,TLS/SSL,NAT,Source routing) - IPv6 & Linux Security (iptables vs ip6tables,SSH/SCP/Rsync)
RiboseYim 发布于 2个月前 阅读 117

Docker快速验证tomcat单机多实例方案

主要讲的是解决问题的思路。当然也附带了尽可能详细的步骤,感兴趣的童鞋可以一步一步跟着来实践一把。因为运维职业的缘故,基本上是把事故当故事来写了,希望能够喜欢。 ## 思路 根据实际环境,判断问题解决方向:单机多实例;放弃内网危险的尝试:不能快速有效解决,且账号权限太大;选择外网验证方案后再进内网实施。很多时候,选择大于努力。 # 简化问题:建模先--宿主机编辑 -> jdk7打war包 -> tomcat默认配置 -> 单机单实例 -> 单机双实例
蛮大人 发布于 2个月前 阅读 575

CEPH 分布式存储部署(Ubuntu 14.04)

摘自简书
rui123672 发布于 2个月前 阅读 184

Docker搭建Django+Mariadb环境

## 阅读建议 先通读全文后,再自行决定需要实践的步骤。后文总是有更简洁更快更好的实践。 不过,新人建议从头到尾实践,也不失为“笨办法学Docker”的美谈一桩。 本文思路: ```shell 直接拉取Mariadb镜像,搭建数据库 手动Build Django镜像: 以python2.7为基础镜像 让我们做的更好:以Python2.7-slim为基础镜像的优化 "docker -v"&&"docker --link" ``` 源码:git@github.com:AnInputForce/autodepopy.git 基本上是边学边实验,关键步骤都有commit。请各位参
蛮大人 发布于 2个月前 阅读 760 评论 1 点赞 1

mysqldump之跳过指定表

背景 目前系统中对于业务数据做了备份以作为数据校验,比如期初数据期末数据进行对比监控,因此产生了大量的备份表。备份表单表数据随着业务的增长而持续增长。导致晚间备份数据超长。 原方法 ./mysqldump -uroot -proot --skip-lock-tables --databases f6dms_1116_prod_backup| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz; 这样会导致备份时间超长,文件太大(随着时间增长 表变大,表变多) 目前使用jenkins远程ssh调用脚本远程执行mysqldump进行备份。 我的思考 mysqldump支持备份指定库,那么我们可以备份其他到db中? 备份忽略指定前缀的表 解决方法 比较简单,略过 mysqldump支持  --ignore-table但是不支持通配符,那么我们可以通过生成mysqldump的指令来完成。对于指定名称我们可以通过show tables来实现。因此如下  ./mysqldump -uroot -proot --skip-lock-tables --databases f6dms_1116_prod_backup $(mysql -uroot -proot -Df6dms_1116_prod_backup -Bse "show tables like 'tm_monitor_avg_price_%'"|awk '{print "--ignore-table=f6dms_1116_prod_backup."$1}'|xargs)| gzip > /home/opt/database_`date '+%m-%d-%Y'`.sql.gz; 通过查询db的...
Mr_Qi 发布于 2个月前 阅读 277 评论 4

mongodb服务配置

  介绍 想在笔记本电脑上尝试 MongoDB?只需执行一个命令,你就会有一个轻量级的、独立的沙箱。完成后可以删除你所做的所有痕迹。 想在多个环境中使用相同的程序栈application stack副本?构建你自己的容器镜像,让你的开发、测试、运维和支持团队使用相同的环境克隆。 容器正在彻底改变整个软件生命周期:从最早的技术性实验和概念证明,贯穿了开发、测试、部署和支持。 编排工具用来管理如何创建、升级多个容器,并使之高可用。编排还控制容器如何连接,以从多个微服务容器构建复杂的应用程序。 丰富的功能、简单的工具和强大的 API 使容器和编排功能成为 DevOps 团队的首选,将其集成到连续集成(CI) 和连续交付 (CD) 的工作流程中。 这篇文章探讨了在容器中运行和编排 MongoDB 时遇到的额外挑战,并说明了如何克服这些挑战。 MongoDB 的注意事项 使用容器和编排运行 MongoDB 有一些额外的注意事项: MongoDB 数据库节点是有状态的。如果容器发生故障并被重新编排,数据则会丢失(能够从副本集的其他节点恢复,但这需要时间),这是不合需要的。为了解决这个问题,可以使用诸如 Kubernetes 中的数据卷volume 抽象等功能来将容器中临时的 MongoDB 数据目录映射到持久...
linux-tao 发布于 5小时前 阅读 3

weblogic 10.3.6.0 安装B25A补丁(170718)

--升级前,假定weblogic安装在/opt/Oracle/Middleware/wlserver_10.3 --通过ssh工具上传p25869650_1036_Generic.zip到/opt/Oracle/Middleware/utils/bsu/cache_dir --然后进入目录解压 cd /opt/Oracle/Middleware/utils/bsu/cache_dir unzip p25869650_1036_Generic.zip --将bsu.sh脚本中的内存调整到2G,默认的及1g会报内存溢出(以下为调整后的内容) MEM_ARGS="-Xms256m -Xmx2048m" "$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $* --升级前先查看升级版本 ./bsu.sh -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 -status=applied -verbose -view --如果安装了其他补丁,请先删除 ./bsu.sh -remove -verbose -patchlist=ZLNA -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 ./bsu.sh -remove -verbose -patchlist=EJUW -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 --升级 ./bsu.sh -install -patch_download_dir=/opt/Oracle/Middleware/utils/bsu/cache_dir -patchlist=B25A -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 --升级成功后查看升级后的版本 ./bsu.sh -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 -status=applied -verbose -...
xiaoxin 发布于 13小时前 阅读 2

记一次诡异的 ssh 互信免密码登录失败

we did not send a packet, disable method
xrzs 发布于 3周前 阅读 1477 评论 2 点赞 1

阿呆学Linux 第六十三讲 负载均衡集群、LVS算法、搭建NAT模式LVS架构

## 18.6 负载均衡集群介绍 实现负载均衡集群的软件有:LVS、Keepalived、Nginx、haproxy等。其中LVS属于四层(网络OSI模型);Nginx属于七层;haproxy既可以认为是四层,也可以当做是七层使用。 LVS、haproxy这种四层负载均衡可以分发除80端口以外的通信,如MySQL-3306;而Nginx仅仅支持http,https,mail。 相对来说,LVS这种四层的更加稳定,能承受更多的请求,而Nginx这种七层的更加灵活,能实现更多的个性化需求。 ## 18.7 LVS介绍 LVS是基于tcp/ip做的路由和转发,稳定性和效率很高,LVS最新版本是基于Linux内核2.6。LVS常见的模式有三种:NAT、DR、IP Tunnel。LVS架构中有一个核心角色叫分发器(Load Balance),用于分发客户的各种请求,另外还有诸多服务器(real server,简称rs),用于处理用户各种请求。 ### NAT模式 ![mark](http://oqwym6cik.bkt.clouddn.com/blog/20170905/151137505.png?imageslim) * 这种模式借助iptables的nat表来实现 * 用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的rs上去 * rs需要设定网关为分发器的内网ip * 用户请求的数据包和返回给用户的数据包全部经过分发器,所以分发器成为瓶颈 * 在nat模式中,只...
阿dai 发布于 3周前 阅读 36

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

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

将tomcat的session信息通过memcached实现共享

### **1、先学大拿来点介绍** MSM(memcached-session-manager)支持tomcat6和tomcat7 ,利用Value(Tomcat 阀对Request进行跟踪。Request请求到来时,从memcached加载session,Request请求结束时,将tomcat session更新至memcached,以达到session共享之目的,支持sticky和 non-sticky 模式。 Sticky 模式:tomcat session为主session, memcached为备session。Request请求到来时, 从memcached加载备session到tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session);Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。 Non-Sticky模式:tomcat session为中转session, memcached1为主session,memcached 2为备session。Request请求到来时,从memcached2加载备session到tomcat,当容器中还是没有session 则从memcached1加载主session到tomcat,这种情况是只有一个memcached节点,或者有memcached1出错时,Request请求结束时,将tomcat session更新至主memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。[摘文出处](http:///wangfeng7399.blog.51cto.com/3518031/1409637) ### **2、实现环境、方案** 1. 环...
Nori 发布于 9小时前 阅读 23

Linux系统该怎么学?运维老鸟的经验心得。

Linux系统该怎么学?运维老鸟的经验心得。    时光荏苒,青春行走在时间的河岸,渐行渐远。初夏又至,七月的脚步越来越近。马上又有大波毕业生离校啦。等待着他们的是社会的检验,对如何选择一份职业就显得尤为重要,当然,你也得具备一定的职业素养,才能干好这份工作。先说说大学生的毕业情况。 有关数据表明,2014年全国普通高校毕业生人数达到727万,2015年全国普通高校毕业生人数达到749万,2017年的毕业生总人数可能只多不少。大学生的就业春天不会来临,他们所面临的就业形势依然严峻。相信大家都听说过IT行业,是一个赚钱的行业,在一线城市,这些人的工资能月入20k左右。那我们就关于这一话题进行探讨。 首先,对于一个涉世未深的IT行业人来说,你需要一个明确的目标,看看自己是适合哪个方面发展。未来的你可能是从事网页的开发工作又或者是大数据的高级开发工作,甚至也有可能是一个IOS的开发。但是这些都是后期自己去摸索,才能找的到的路。现在,需要我们打一个好的基础。我们都知道Linux这个操作系统。这个操作系统确实是一个比较流行的一个系统,和Windows相比,Linux有很多独到之处,同时它也是一个IT行业的垫脚石。那么什么是Linux呢?   Linux是一套自...
linux-tao 发布于 1天前 阅读 18

一两年后,Fedora 的 Yum 将会消失?

导读 随着 DNF 软件包管理器在最近的 Fedora 版本里面工作日益工作良好,我们可以预见到 Yum 将在之后的 Fedora 版本中谢幕。 当然,Yum 还一直广泛用在 RHEL 7 中,而在 Fedora 这边,估计在大约一年后的 Fedora 28 乃至 29 中正式退休。 在 Fedora 开发者邮件列表中有一个讨论 Yum 退休的新话题。看起来在 Fedora 28 或 29 的时候会移除 Yum。DNF 已经提供了与 Yum 一样的能力。Fedora 也在开发一个“富依赖”的支持,而这个功能 Yum 不支持,所以这也表明了 Yum 将在以后的 Fedora 系统中消失。 邮件列表中也提到了 Yum 和 DNF 还存在一些差异需要解决,但是看起来在 2018 年应该可以看到希望 免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/  
linuxprobe16 发布于 18小时前 阅读 8

LNMP环境安装discuz

# LNMP环境安装discuz ## 环境 ![mark](http://oqwym6cik.bkt.clouddn.com/blog/20170830/194147741.png?imageslim) **说明:** 进行安discuz之前先搭建了LNMP环境: ![mark](http://oqwym6cik.bkt.clouddn.com/blog/20170830/194203610.png?imageslim) 搭建完成后检测站点通常,支持PHP解析。 ## 安装discuz ### 安装准备 ``` 切换至安装目录: [root@localhost ~]# cd /data/wwwroot/discuz/ 下载安装包: [root@localhost discuz]# wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip 解压: [root@localhost discuz]# unzip Discuz_X3.2_SC_UTF8.zip 将安装文件移动到指定目录: [root@localhost discuz]# mv upload/* ./ 删除无关文件: [root@localhost discuz]# rm -rf readme upload utility Discuz_X3.2_SC_UTF8.zip 根据readme.txt文件提示执行如下操作: [root@localhost discuz]# chmod 777 -R data config uc_client uc_server ``` 至此discuz安装前的准备工作就绪! ### 开始安装 借助浏览器访问discuz安装目录所对应的站点 discuz.com (执行该操作前将域名和IP加入本地hosts),然后根据浏览器中的提示进行后续操作。 #### 检查安装环...
阿dai 发布于 1个月前 阅读 41

ES X-Pack 5.4.3破解

X-Pack 5.4.3破解
China_OS 发布于 3个月前 阅读 462 点赞 1

HTTPS 性能优化技巧

认识SSL/TLS SSL和TLS都是用于保障端到端之间连接的安全性。SSL最初是由Netscape开发的,后来为了使得该安全协议更加开放和自由,更名为TLS,并被标准化到RFC中,现在主流的是TLS 1.2版本。 从上图,可以看出SSL/TLS是介于应用层和传输层之间,并且分为握手层(Handshake Layer)和记录层(Record Layer)。 握手层:端与端之间协商密码套件、连接状态。 记录层:对数据的封装,数据交给传输层之前,会经过分片-压缩-认证-加密。 算法选择 TLS中可被配置的算法分类: 数字签名:RSA、DSA 流加密:RC4 分组加密:DES、AES 认证加密:GCM 公钥加密:RSA 消息认证码:SHA 密钥交换:Diffie–Hellman 密码套件决定了会使用到的算法,例如执行“openssl ciphers -v 'ALL' | grep ECDHE-RSA-AES128-GCM-SHA256”: ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD 表明该算法是在TLS 1.2中支持的,密钥交换采用ECDH(EC是指采用椭圆曲线的DH),数字签名采用RSA,加密采用128位密钥长度的AESGCM,消息认证码采用AEAD(AEAD是一种新的加密形式,把加密和消息认证码结合到一起,而不是某个算法,例如使用AES并采用GCM模式加密,就能够为数据提供...
问题终结者 发布于 2天前 阅读 12

配置Ubuntu文件默认打开方式

Ubuntu系统中要为同一文件类型文件设定默认的打开方式(程序),不像 Windows中那么简单(勾上默认打开就可以了),事实上设定一个你习惯使用的默认打开程序,将大大提高你工作的便捷性,本文主要讲解在 Ubuntu8.04系统中为特定格式文件配置默认打开方式程序。 Ubuntu保存文件类型打开方式主要又两个配置文件决定: 1.  /etc/gnome/defaults.list 保存了全局的打开方式 2.  /.local/share/applications/mimeapps.list 保存了个人的打开方式(局部个人设置) 当两着对于同一类型文件设定的内容不一致时,优先采用局部的个人设置。 下面我们举个例子来说明设置方式: ubuntu8.04下多媒体文件默认是用Totem打开的,如果你想要改成用smplayer(本人比较喜欢用这个)来打开的话,可以按照以下步聚来进行: 1.进入/etc/gnome目录 命令 cd /etc/gnome 2.复制要改变打开方式的那些内容行到mimeapps.list文件 命令 grep "totem" defaults.list >> ~/.local/share/applications/mimeapps.list 3.进入~/.local/share/applications目录 命令 cd ~/.local/share/applications 4.编缉mimeapps.list文件 命令: sudo vim mimeapps.list 5.在vim中执行 命令:%s/totem/smplayer/g 6.然后执行...
CasparLi 发布于 1天前 阅读 5

Ubuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/

$ sudo apt-get update Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi' E: Sub-process returned an error code 解决方法如下: sudo pkill -KILL appstreamcli wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb 执行完上述命令之后再次运行sudo apt-get update就不会再出现上面的错误。...
驛路梨花醉美 发布于 1个月前 阅读 59

Elasticsearch调优——segment memory

1、索引之segment memory:          一个segment是一个完备的lucene倒排索引,而倒排索引是通过词典(Term Dictionary)到文档列表(Postings List)的映射关系,快速做查询的。所以每个segment都有会一些索引数据驻留在heap里。        因此segment越多,瓜分掉的heap也越多,并且这部分heap是无法被GC掉的!        怎么知道segment memory占用情况呢? CAT API可以给出答案。        1)、查看一个索引所有segment的memory占用情况:   curl -s -uelastic:changeme 'http://192.168.58.158:9200/_cat/segments?v' index                             shard prirep ip         segment   generation   docs.count     docs.deleted     size       size.memory      committed searchable version compound www-nginx-tp-2017-08-20        0     p      192.168.58.158 _s9v         36643      58203            0                56.8mb      127077         true      true       6.5.1   fals...
perofu 发布于 5天前 阅读 230

LNMP环境安装WordPress

# LNMP环境安装WordPress ## 环境 ![mark](http://oqwym6cik.bkt.clouddn.com/blog/20170830/194238852.png?imageslim) **说明:** 进行安装WordPress之前先搭建了LNMP环境: ![mark](http://oqwym6cik.bkt.clouddn.com/blog/20170830/194252498.png?imageslim) 搭建完成后检测站点通常,支持PHP解析。 ## 安装WordPress ### 安装准备 ``` 切换到安装目录: [root@localhost ~]# cd /data/wwwroot/wordpress/ 下载安装包: [root@localhost wordpress]# wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN.tar.gz 解压安装包: [root@localhost wordpress]# tar zxvf wordpress-4.8.1-zh_CN.tar.gz 将安装文件移至站点目录: [root@localhost wordpress]# mv wordpress/* . 删除安装包即解压后的目录文件: [root@localhost wordpress]# rm -rf wordpress wordpress-4.8.1-zh_CN.tar.gz ``` 至此,完成了安装WordPress前的准备工作! ### 开始安装 与Windows中安装软件不同的是,在Linux系统中安装WordPress要结合浏览器进行,在浏览器中访问服务器 wp.com(进行该操作之前需要把域名即虚拟机IP加入到本地hosts文件)。 #### 访问虚拟主机 ![mark](http://oqwym6cik.bkt...
阿dai 发布于 1个月前 阅读 76 点赞 1

tomcat从 http转成https,并且去掉端口号

tomcat从 http转成https,并且去掉端口号
Nori 发布于 14小时前 阅读 7

Kibana X-Pack 延长试用期

声明:本文仅作为学习交流,请勿用于商业用途,否则后果自负。如需使用黄金或白金版X-Pack请购买正版。 下载x-pack-5.2.2.zip,找到x-pack-5.2.2.jar。这里使用JD-GUI是无法反编译的,我使用的是Luyten进行反编译。下载运行程序,需要 JDK1.7 和1.8 支持https://github.com/deathmarine/Luyten/releases/tag/v0.5.3 将org.elasticsearch/license/LicenseVerifier.class反编译并保存出来。这个类是检查license完整性的类,我们使其始终返回true,就可以任意修改license并导入。将其改为: package org.elasticsearch.license; import java.nio.*; import java.util.*; import java.security.*; import org.elasticsearch.common.xcontent.*; import org.apache.lucene.util.*; import org.elasticsearch.common.io.*; import java.io.*; public class LicenseVerifier { public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) { return true; } public static boolean verifyLicense(final License license) { return true; } } 重新编译,注意重新编译的时候会依赖三个文件 lucene-core-...
gibsonxue 发布于 1个月前 阅读 168

nginx之proxy_pass指令完全拆解

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

Docker快速验证tomcat单机多实例方案

主要讲的是解决问题的思路。当然也附带了尽可能详细的步骤,感兴趣的童鞋可以一步一步跟着来实践一把。因为运维职业的缘故,基本上是把事故当故事来写了,希望能够喜欢。 ## 思路 根据实际环境,判断问题解决方向:单机多实例;放弃内网危险的尝试:不能快速有效解决,且账号权限太大;选择外网验证方案后再进内网实施。很多时候,选择大于努力。 # 简化问题:建模先--宿主机编辑 -> jdk7打war包 -> tomcat默认配置 -> 单机单实例 -> 单机双实例
蛮大人 发布于 2个月前 阅读 575

Linux系统该怎么学?运维老鸟的经验心得。

时光荏苒,青春行走在时间的河岸,渐行渐远。初夏又至,七月的脚步越来越近。马上又有大波毕业生离校啦。等待着他们的是社会的检验,对如何选择一份职业就显得尤为重要,当然,你也得具备一定的职业素养,才能干好这份工作。先说说大学生的毕业情况。 有关数据表明,2014年全国普通高校毕业生人数达到727万,2015年全国普通高校毕业生人数达到749万,2017年的毕业生总人数可能只多不少。大学生的就业春天不会来临,他们所面临的就业形势依然严峻。相信大家都听说过IT行业,是一个赚钱的行业,在一线城市,这些人的工资能月入20k左右。那我们就关于这一话题进行探讨。 首先,对于一个涉世未深的IT行业人来说,你需要一个明确的目标,看看自己是适合哪个方面发展。未来的你可能是从事网页的开发工作又或者是大数据的高级开发工作,甚至也有可能是一个IOS的开发。但是这些都是后期自己去摸索,才能找的到的路。现在,需要我们打一个好的基础。我们都知道Linux这个操作系统。这个操作系统确实是一个比较流行的一个系统,和Windows相比,Linux有很多独到之处,同时它也是一个IT行业的垫脚石。那么什么是Linux呢? Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月...
linuxprobe16 发布于 2天前 阅读 6

Jenkins快速CI实战笔记

根据项目需要,通过Jenkins搭建CI环境,回忆整理而成,
蛮大人 发布于 3个月前 阅读 1456 评论 7 点赞 1 打赏 2

Mac SecureCRT 破解

### 文件 ``` 文件地址: https://pan.baidu.com/s/1jISgEJs 密码: 5uhq 安装文件: scrt-7.3.7-1034.osx_x64.dmg 破解文件: securecrt_mac_crack.pl ``` ### 安装 ``` 1. 双击安装文件 2. 点击"Agree" 3. 将"SecureCRT"拷贝至 应用程序 ``` ### 破解 ``` 1. sudo perl ~/Downloads/securecrt_mac_crack.pl /Applications/SecureCRT.app/Contents/MacOS/SecureCRT 2. 打开 应用程序 中的SecureCRT 3. 点击"Enter License Data..." 4. 点击"Continue" 5. 点击"Enter License Manually" 6. 填写第一步中控制台打印的信息 7. 点击"Done" ``` ### 附加 ###### 记住密码 ``` Preferences => General => Use Keychain 取消勾选 ``` ###### 中文乱码 ``` 右键某个session => Properties => Terminal => Appearance => Character encoding 设置为UTF-8 ```...
tianshl 发布于 2周前 阅读 4844

Authentication failure

vagrant 验证失败一直提示超时
tianshl 发布于 2周前 阅读 4583

Elasticsearch调优——segment memory

1、索引之segment memory:          一个segment是一个完备的lucene倒排索引,而倒排索引是通过词典(Term Dictionary)到文档列表(Postings List)的映射关系,快速做查询的。所以每个segment都有会一些索引数据驻留在heap里。        因此segment越多,瓜分掉的heap也越多,并且这部分heap是无法被GC掉的!        怎么知道segment memory占用情况呢? CAT API可以给出答案。        1)、查看一个索引所有segment的memory占用情况:   curl -s -uelastic:changeme 'http://192.168.58.158:9200/_cat/segments?v' index                             shard prirep ip         segment   generation   docs.count     docs.deleted     size       size.memory      committed searchable version compound www-nginx-tp-2017-08-20        0     p      192.168.58.158 _s9v         36643      58203            0                56.8mb      127077         true      true       6.5.1   fals...
perofu 发布于 5天前 阅读 230

Nginx 配置过程

# 一、下载 [Nginx](http://nginx.org/en/download.html) # 二、解压 ![输入图片说明](https://static.oschina.net/uploads/img/201709/20200603_uhWW.png "在这里输入图片标题") # 三、配置 下载 RunHiddenConsole.exe 软件 百度下载 # 四、开启: ``` @echo off @echo starting nginx ... RunHiddenConsole nginx.exe @echo starting php-cgi ... RunHiddenConsole D:/php-5.6.13-Win32-VC11-x64/php-cgi.exe -b 127.0.0.1:9000 -c D:/php-5.6.13-Win32-VC11-x64/php.ini exit pause ``` # 五、关闭: ``` @echo off @echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul @echo Stopping Nginx... taskkill /F /IM nginx.exe > nul @echo success ```...
MadDragon 发布于 5天前 阅读 27

将tomcat的session信息通过memcached实现共享

### **1、先学大拿来点介绍** MSM(memcached-session-manager)支持tomcat6和tomcat7 ,利用Value(Tomcat 阀对Request进行跟踪。Request请求到来时,从memcached加载session,Request请求结束时,将tomcat session更新至memcached,以达到session共享之目的,支持sticky和 non-sticky 模式。 Sticky 模式:tomcat session为主session, memcached为备session。Request请求到来时, 从memcached加载备session到tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session);Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。 Non-Sticky模式:tomcat session为中转session, memcached1为主session,memcached 2为备session。Request请求到来时,从memcached2加载备session到tomcat,当容器中还是没有session 则从memcached1加载主session到tomcat,这种情况是只有一个memcached节点,或者有memcached1出错时,Request请求结束时,将tomcat session更新至主memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。[摘文出处](http:///wangfeng7399.blog.51cto.com/3518031/1409637) ### **2、实现环境、方案** 1. 环...
Nori 发布于 9小时前 阅读 23

阿呆学Linux第七十四讲 分发系统——expect

## 20.27 分发系统介绍 >expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。但当不能使用密钥验证的时候,我们就没有办法了。所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。 ## 分发准备: 模板脚本、服务器IP、用户名、密码、expect脚本 ## 20.18 expect脚本远程登录 使用expect前需要先安装: ``` [root@z1 ~]# yum install -y expect ``` 安装完成后就可以写expect脚本了。 ### 自动远程登录,并执行命令 ``` 远程登录一台主机: [root@z1 ~]# ssh 192.168.8.138 Are you sure you want to continue connecting (yes/no)? yes root@192.168.8.138's password: Last login: Wed Sep 20 18:36:21 2017 from 192.168.8.1 #如果是第一次登录,则会提示(yes/no),如果之前登陆过则不会提示 #那么如何使其再次提示呢? [root@z1 ~]# vim /root/.ssh/known_hosts ##编辑该文件,将其中内容清空即可。 ``` expect远程登录脚本: ``` [root@z1 ~]# vim 1.expect #! /usr/bin/expect set host "192.168.8.138" #连接到主机192.168.8.138 set pas...
阿dai 发布于 5天前 阅读 35

Xmanager远程连接Linux服务器图形界面

硬件:服务器是redhat  6.5版本 1.在 /etc/inittab -- init进程的主配置文件 把默认级别改為 5 :     id:5:initdefault:    #意思是从图形界面启动 2.在/etc/gdm/custom.conf--GNOME的自定义配置文件    [daemon] [security] AllowRoot=true AllowRemoteRoot=true [xdmcp] Port=177 Enable=true DisplaysPerHost=10 [greeter] [chooser] [debug]     3.重启linux 服务器 reboot 启动gdm  /usr/sbin/gdm start 4.关闭防火墙或开启端口 service  iptables  stop vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT service  iptables restart 5.由于xdmcp服务默认使用udp177端口,所以要查看xdmcp服务是否已启动 netstat    -antpu   |   grep 177或者 lsof -i:177 查看端口启动的服务   6.打开Xmanager,点击Xbrowser,ok  ...
bz_z 发布于 5天前 阅读 19

Linux系统该怎么学?运维老鸟的经验心得。

Linux系统该怎么学?运维老鸟的经验心得。    时光荏苒,青春行走在时间的河岸,渐行渐远。初夏又至,七月的脚步越来越近。马上又有大波毕业生离校啦。等待着他们的是社会的检验,对如何选择一份职业就显得尤为重要,当然,你也得具备一定的职业素养,才能干好这份工作。先说说大学生的毕业情况。 有关数据表明,2014年全国普通高校毕业生人数达到727万,2015年全国普通高校毕业生人数达到749万,2017年的毕业生总人数可能只多不少。大学生的就业春天不会来临,他们所面临的就业形势依然严峻。相信大家都听说过IT行业,是一个赚钱的行业,在一线城市,这些人的工资能月入20k左右。那我们就关于这一话题进行探讨。 首先,对于一个涉世未深的IT行业人来说,你需要一个明确的目标,看看自己是适合哪个方面发展。未来的你可能是从事网页的开发工作又或者是大数据的高级开发工作,甚至也有可能是一个IOS的开发。但是这些都是后期自己去摸索,才能找的到的路。现在,需要我们打一个好的基础。我们都知道Linux这个操作系统。这个操作系统确实是一个比较流行的一个系统,和Windows相比,Linux有很多独到之处,同时它也是一个IT行业的垫脚石。那么什么是Linux呢?   Linux是一套自...
linux-tao 发布于 1天前 阅读 18

阿呆学Linux第七十二讲 告警系统主脚本、主配置文件、监控项脚本

## 20.20 告警系统主脚本 > 因为该系统是分布式的,所以需要在每台机器上做此部署(做好一台机器后把脚本复制分发到其它机器再稍作更改就可以)。 ### 定义监控系统的各个目录: ``` 创建主目录: [root@localhost sbin]# mkdir mon 进入主目录,创建子目录: [root@localhost sbin]# cd mon/ [root@localhost mon]# mkdir bin conf shares log mail 主脚本放在bin目录下: [root@localhost mon]# cd bin/ ``` ### 创建主脚本: **作用:** 主脚本作为一个入口,判断某服务或项目是否需要监控调用需要监控的项目的子脚本。 ``` [root@localhost bin]# vim main.sh #!/bin/bash #Written by adai. # 是否发送邮件的开关(1表示所有监控项目都发送邮件) export send=1 # 过滤ip地址(此处为本机网卡名称) export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {print $2}'` dir=`pwd` # 只需要最后一级目录名 last_dir=`echo $dir|awk -F'/' '{print $NF}'` # 下面的判断目的是,保证执行脚本的时候,我们在bin目录里,#不然监控脚本、邮件和日志很有可能找不到 if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then conf_file="../conf/mon.conf" else e...
阿dai 发布于 1周前 阅读 30

康威定律——这个50年前就被提出的微服务概念,你知多少?

## 概述 微服务架构是一种非常流行的新概念,即便可供以借鉴的经验比较少,当然不能阻挡它成为热门话题与研究对象。 令人惊讶地是,其实微服务的概念早在五十多年前就已经被提出,多年来,很久研究表明了这些观点的准确性。这就是本文所介绍的——康威定律。现在已经有很多企业正在尝试使用它创建高效的微服务架构。 ![image](https://i.v2ex.co/X5120k76.png) 在这篇文章中最有名的一句话莫过于: 设计系统的企业受限于生产设计,这些设计是企业沟通结构的副本——Melvin Conway(1967)。 这意味着设计系统的企业,它们生产的设计等同于企业内的沟通结构。下图说明了此概念: ![image](https://i.v2ex.co/lAvKd4w4.png) 该图展现了企业现有沟通结构,简单地说:企业结构等于系统设计。 作者这里提到的系统并不局限于应用系统,据说这篇文章最初投稿于哈佛商业评论,但被拒绝,因此康威将其提交到了一个编程杂志,所以被误解为只针对应用开发,起初,作者并没有把这种理论作为定律,只是描述了发现和结论,不过著名的《The Mythical Man-Month》一书介绍了Brooks的理论,并引用了康威的一些观点,于是康威的理论被推崇成为我们现在所熟知的康威定律。 康威定律详细介绍 在文...
数人云 发布于 2周前 阅读 1205 评论 6 点赞 6

极客漫画:数据库链接池中的生生死死

数据库链接池中的生生死死 数据库连接池是常用的 B/S 技术,而似乎生活在这个“池子”里面的那些连接对象有点不幸。 要是顺利的话,你干完活就可以歇着了。 要是不顺利,比如你掌握的连接已经被拒绝了,那么…… 你就会被“砰”地干掉。就问你怕不怕?(话说回来,回答错误会不会也被“砰”……) 免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/  
linuxprobe18 发布于 7天前 阅读 16

Nginx 的软件负载均衡详解

负载均衡在服务端开发中算是一个比较重要的特性。因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以分发给后台服务端(backend servers,也叫做服务池,后面简称backend)来做复杂的计算、处理和响应,这种模式的好处是相当多的:隐藏业务主机更安全,节约了公网IP地址,并且在业务量增加的时候可以方便地扩容后台服务器。 负载均衡可以分为硬件负载均衡和软件负载均衡,前者一般是专用的软件和硬件相结合的设备,设备商会提供完整成熟的解决方案,通常也会更加昂贵。软件的负载均衡以Nginx占据绝大多数,本文也是基于其手册做相应的学习研究的。 一、基本简介 负载均衡涉及到以下的基础知识。 (1) 负载均衡算法 a. Round Robin: 对所有的backend轮训发送请求,算是最简单的方式了,也是默认的分配方式; b. Least Connections(least_conn): 跟踪和backend当前的活跃连接数目,最少的连接数目说明这个backend负载最轻,将请求分配给他,这种方式会考虑到配置中给每个upstream分配的weight权重信息; c. Least Time(least_time): 请求会分配给响应最快和活跃连接数最少的bac...
问题终结者 发布于 1周前 阅读 15 点赞 1

expect脚本同步文件、 expect脚本指定host和要同步的文件 、 构建文件分发系统 、批量远程执行命令

20.31 expect脚本同步文件 使用expect脚本同步文件 说明:核心命令是rsync #! /usr/bin/expect set passwd "123456" spawn rsync -av root@192.168.2.116:/tmp/66.txt /tmp/ expect { "yes/no" {send "yes\r"} "password:" {send "$passwd\r"} } expect eof #最后一定要加expect eof 或interact,否则还没有执行完,就已经退出了 说明:把192.168.2.116机器上/tmp/66.txt同步到本机/tmp/目录下 #添加执行权限 [root@root-01 test]# chmod a+x 4.expect #执行 [root@root-01 test]# ./4.expect spawn rsync -av root@192.168.2.116:/tmp/66.txt /tmp/ root@192.168.2.116's password: receiving incremental file list 66.txt sent 30 bytes received 92 bytes 81.33 bytes/sec total size is 13 speedup is 0.11 [root@root-01 test]# ls /tmp/66.txt /tmp/66.txt 说明:同步成功,本机/tmp/下有66.txt   20.32 expect脚本指定host和要同步的文件 本机文件同步到另外一台机器 说明:只支持同步单个文件 #! /usr/bin/expect set passwd "123456" set host [lindex $argv 0] //host是第一个变量,(指定IP) set file...
Linux_Anna 发布于 5天前 阅读 17

zabbix3.2学习笔记(一):基本概念

zabbix是采用C/P/S客户端、代理端、服务器端架构的分布式、开源的监控软件,提供监控数据采集、存储、分析、告警、展示功能,是运维的好帮手。 支持多种监控方式: 1,zabbix agent客户端,部署到被监控主机上。 2,snmp协议通讯,大部分网络设备支持该协议。 3,IPMI,通过IPMI硬件结构监控物理特征,像电压、温度等。 4,JMX,即Java扩展插件(Java Management Extensions) zabbix server监控数据可存储多种数据库:MySQL、Oracle、PostgreSQL、SQLite、IBM DB2。 通过zabbix frontend展示,可理解为zabbix webGUI,分布式扩展是通过zabbix proxy代理实现的。 zabbix各组件: zabbix server:接收监控数据并分析统计 zabbix agent:收集监控数据并发送给zabbix server zabbix database:存储监控配置信息和数据 zabbix web:前端展示监控统计信息 zabbix proxy:用于分布式环境代收局部监控信息并推送给zabbix server   zabbix部署依赖于lamp/lnmp环境,要求详见官网 https://www.zabbix.com/documentation/3.2/manual/installation/requirements 简单yum安装:这里是阿里云centos 7.2 x86_64,安装最新版本3.2.7,以mysql作为数据库 zabbix server端安装: yum install -y...
hiwill 发布于 1个月前 阅读 26

面试常见linux命令

ls: 列出文件夹下的目录; ls -l: 显示文件夹下的详细信息;ls -a: 列出文件夹下的所有文件和文件夹(-a用于显示隐藏文件);ls -al: 列出文件夹下的所有文件的相信信息(包括隐藏文件和文件夹) 查看ip地址:ifconfig 查看历史命令:history pwd: 显示当前所处目录 cd: 进入用户主目录。cd ..:进入上级目录  (.表示当前目录,..表示上级目录); cd <目录>:进入该目录 ps -a: 显示所有进程;  权限:   chmod:改变文件或目录的访问权限;chown: 改变某个文件或目录的所有者和所属的组; chgrp: 改变文件或目录所属组 用户管理:useradd <用户名>:  增加用户,userdel -i <删除用户>;passwd <用户名>:更改用户密码;gpasswd : 更改用户所属群组; id <用户名>:查看指定用户名的用户是否存在 mkdir: 创建目录;touch: 新建文件; 删除:rm <文件名>: 删除文件;rm -r <文件夹>:删除该文件夹以及子文件夹中的文件。rm -rf <文件或文件名>:强制删除所有文件及子文件 grep 'txt': 查找包含txt字符串的行;ps -ef | grep <进程名>: 查看某进程状态 root@xxxxxx:~# ps -ef | grep redis root 29229 29196 0 15:19 pts/0 00:00:00 grep --color=auto redis roo...
a_xianyu 发布于 4天前 阅读 26 打赏 1

找回linux系统 root密码

找回ROOT密码 系统起动时,随便按一个键进入grub菜单 按e键进入编辑模式 移入kernel行,按e继续编辑 在最后面输入 single 回车 按b引导系统进入单用户模式 执行passwd命令,输入新密码
苗描 发布于 5天前 阅读 15

50 种系统免遭黑客侵袭的方法 [2017 年版]

Paul Simon 概括了“与爱人分手的 50 法”,而这里,我们提供了提高系统安全性的 50 种方法。 当我还是小孩子,耳畔萦绕着 Paul Simon 的流行歌“与爱人分手的 50 法”。当我渐渐地长大,突然受歌的启发,收集了 50 种方法,免得你——门内汉和门外汉——遭受黑客侵袭啊: “你刚刚从后头溜出去了,杰克” 1、 备份你的数据。如果你不幸被勒索软件光顾,那么你就不用支付赎金,因为你做了备份。 2、 当你需要在公共场所为你的手机充电,那就使用 sysncstop吧,或者你也可以用你的备份电池。(LCTT 译注:sysncstop 是一种可以在公共场所安全充电的 USB 设备。在公共场所充电的风险,你知道的。) 3、 利用好你的审计系统,里头有好多很酷的工具可以帮助你监控系统。如果你确实遭到了入侵,那么审计系统也许就可以告诉你发生了什么,以及攻击者做了些什么。 4、 说到日志,把日志定向到集中式服务器上总是一个不错的想法,因为如果某个黑客侵入你的系统里,他首先要攻击的就是日志系统以便隐藏他的踪迹。构建一个好的入侵检测系统来监控日志,这对于防范黑客也很有帮助。 “做份新的计划吧,斯坦” 5、 以强制模式运行 SELinux(见 StopDisablingSelinux.com)。不要觉得我现...
问题终结者 发布于 1周前 阅读 15

To Raid or not to Raid

What is a RAID?  RAID is the acronym for "Redundant Array of Inexpensive Disks". The concept originated at the University of Berkely in 1987 and was intended to create large storage capacity with smaller disks without the need for very expensive and reliable disks, that were very costly at that time, often a tenfold of smaller disks. Today prices of hard disks have fallen so much that it often is more attractive to buy a single 1 TB disk than two 500 GB disks. That is the reason that today RAID is often described as "Redundant Array of Independent Disks". The idea behind RAID is to have a number of disks co-operate in such a way that it looks like one big disk. Note that 'Spanning' is not in any way comparable to RAID, it is just a way, like inverse partitioning, to extend the base partition to use multiple disks, without changing the method of reading and writing to that extended partition. Why use a RAID? Now, with these lower disk prices today, why would a video editor consider...
CasparLi 发布于 5天前 阅读 14

基于jenkins+kubernets+docker的持续化集成

项目实现效果,开发人员在gitlab上传代码,一键部署下去,所有web容器统一更新代码, 服务器数量:两台jenkins做高可用,十八台服务器做docker容器的web服务器。 架构运行思路:gitlab上更新了代码以后,通过webhook检测到gitlab上有变动,然后将给本机的jenkins传送一个回执,执行任务,任务内容是进行代码pull到本机中然后通过脚本命令把代码转移到本机的nfs目录中,然后通过jenkins上的nfs挂载到所有web容器的宿主机上,并将宿主机的挂载目录映射到容器里面的网页根目录中实现了一键自动部署环境。 架构生存时间:jenkins做了高可用实现了不间断工作,docker使用脚本造成了容器自启的效果。 架构图: 顺序: 发开人员→gitlab→jenkins→registry→kubernetes→docker 思路:从开发人员上传代码到gitlab托管代码以后,jenkins自动pull下来然后做成镜像上传至registry私有仓库,同时发指令给kubernetes使他关闭旧容器,然后重新启用新的docker镜像并做成容器对外提供服务。具体操作步骤详见本人有道云笔记: 1.jenkins部署 http://note.youdao.com/noteshare?id=a3c643c5c07c35f7ad00d39ea6e0940c&sub=86FEF5261F92480D94462D90BB306919 2. jenkins服务安装详解 http://n...
战斗的小涵 发布于 3周前 阅读 761 评论 2 点赞 1

n2n将P2P从应用搬到网络

导读 n2n是一个二层点对点虚拟专用网(VPN),它允许用户在网络层面而非应用层面开发典型的P2P应用功能。这就意味着,用户可以获得本地IP可见性(如,属于同一个n2n网络的两台PC可以互相ping通),以及不管他们现在身处哪个网络,只要有相同的网络IP地址就可以访问到。简言之,就像OpenVPN将SSL从应用(如,用于部署https协议)搬到了网络协议一样,n2n将P2P从应用搬到了网络层面。 n2n主要功能 n2n是一个基于P2P协议的加密的二层专用网。 加密使用开放协议部署在边缘节点,它使用用户定义的加密钥匙:你自己控制安全,而不用授权给公司,而Skype或Hamachi却是要的。 各个n2n用户可以同时属于多个网络(或者社区)。 它拥有在反向通信方向(如,从外部到内部)穿越NAT和防火墙的能力,因此可以到达n2n节点,即使运行在一个专用网中。防火墙不再是IP层面掌控通信的障碍。 n2n网络并不意味着它是独立的,它可以在n2n和非n2n网络间路由通信。 n2n架构基于两个组件 超级节点:它在启动时用于边缘节点或用于达到对称防火墙后面的节点。对于这些节点,该应用主要是一个目录暂存器和包路由器,而不是直接通信。 边缘节点:安装在用户PC的应用程序,它允许构建n2n网络。实际上,各个...
问题终结者 发布于 5天前 阅读 10

mongodb服务配置

  介绍 想在笔记本电脑上尝试 MongoDB?只需执行一个命令,你就会有一个轻量级的、独立的沙箱。完成后可以删除你所做的所有痕迹。 想在多个环境中使用相同的程序栈application stack副本?构建你自己的容器镜像,让你的开发、测试、运维和支持团队使用相同的环境克隆。 容器正在彻底改变整个软件生命周期:从最早的技术性实验和概念证明,贯穿了开发、测试、部署和支持。 编排工具用来管理如何创建、升级多个容器,并使之高可用。编排还控制容器如何连接,以从多个微服务容器构建复杂的应用程序。 丰富的功能、简单的工具和强大的 API 使容器和编排功能成为 DevOps 团队的首选,将其集成到连续集成(CI) 和连续交付 (CD) 的工作流程中。 这篇文章探讨了在容器中运行和编排 MongoDB 时遇到的额外挑战,并说明了如何克服这些挑战。 MongoDB 的注意事项 使用容器和编排运行 MongoDB 有一些额外的注意事项: MongoDB 数据库节点是有状态的。如果容器发生故障并被重新编排,数据则会丢失(能够从副本集的其他节点恢复,但这需要时间),这是不合需要的。为了解决这个问题,可以使用诸如 Kubernetes 中的数据卷volume 抽象等功能来将容器中临时的 MongoDB 数据目录映射到持久...
linux-tao 发布于 5小时前 阅读 3

超好用的 Linux 文件管理器推荐

超好用的 Linux 文件管理器推荐
linux-tao 发布于 5小时前

X Manager连接centos 7的两篇好文章

今天为了配置连接centos7.5的远程桌面,看了2篇好文章: 远程CentOS7服务器   http://blog.csdn.net/wuzhimang/article/details/51523867 XManager5连接CentOS7    http://www.cnblogs.com/amoyzhu/p/6603959.html 总结:CentOS7采用lightdm管理远程桌面连接。  
温暖的夏天 发布于 6小时前 阅读 4

将tomcat的session信息通过memcached实现共享

### **1、先学大拿来点介绍** MSM(memcached-session-manager)支持tomcat6和tomcat7 ,利用Value(Tomcat 阀对Request进行跟踪。Request请求到来时,从memcached加载session,Request请求结束时,将tomcat session更新至memcached,以达到session共享之目的,支持sticky和 non-sticky 模式。 Sticky 模式:tomcat session为主session, memcached为备session。Request请求到来时, 从memcached加载备session到tomcat (仅当tomcat jvmroute发生变化时,否则直接取tomcat session);Request请求结束时,将tomcat session更新至memcached,以达到主备同步之目的。 Non-Sticky模式:tomcat session为中转session, memcached1为主session,memcached 2为备session。Request请求到来时,从memcached2加载备session到tomcat,当容器中还是没有session 则从memcached1加载主session到tomcat,这种情况是只有一个memcached节点,或者有memcached1出错时,Request请求结束时,将tomcat session更新至主memcached1和备memcached2,并且清除tomcat session 。以达到主备同步之目的。[摘文出处](http:///wangfeng7399.blog.51cto.com/3518031/1409637) ### **2、实现环境、方案** 1. 环...
Nori 发布于 9小时前 阅读 23

Windows远程连接CentOS桌面

windows远程连接Linux桌面 需要用到 xrdp
james_lz 发布于 11小时前 阅读 5

CentOS x64 安装memcached

memcache服务安装 需要安装libevent ``` yum -y install libevent-devel libevent ``` 或者安装源码 ``` http://www.memcached.org/files/memcached-1.4.24.tar.gz tar -xf memcached-1.4.24.tar.gz cd memcached-1.4.24 ./configure --prefix=/usr/local/memcached make ``` 出现错误 ``` make[2]: *** [memcached_debug-items.o] 错误 1 vim Makefile 删除-Werror make install sed -i 's/-Werror//g' Makefile ``` 启动memcached ``` /usr/local/memcached/bin/memcached -d -c 10240 -m 1024 -u root ``` -d: 启动一个守护进程 -c: 最大并发连接数,默认1024 -p: 设置端口号,默认11211 -m: 允许最大内存M -I: 监听服务器地址,默认是本机 -u: 绑定使用指定用户运行进程 -P: 设置保存memcache的PID文件位置 ``` #!/bin/bash #Date:2015-06-24 echo "Install Memcached" yum -y install libevent libevent-devel [ $? -ne 0 ] && echo "check yum" && exit 1 tar -xv memcached-1.4.24.tar.gz -C /usr/local/src cd /usr/local/src/memcached-1.4.24 echo "configure..." ./configure --prefix=/usr/local/memcached [ $? -ne 0 ] && echo "configure error" && exit 1 ec...
玖零後大叔 发布于 12小时前 阅读 4

F5集群配置公共irule,解决X-Frame-Options漏洞

when HTTP_REQUEST {   HTTP::header insert X-Frame-Options "SAMEORIGIN"  #过滤weblogic uddiexplorer目录,禁止外网访问  if { [HTTP::uri]  starts_with "/uddiexplorer" } {      pool pool1  } #过滤weblogic console目录,禁止外网访问管理控制台  elseif { [HTTP::uri]  starts_with "/console" } {      pool pool2  }  }
xiaoxin 发布于 12小时前 阅读 4

weblogic 10.3.6.0 安装B25A补丁(170718)

--升级前,假定weblogic安装在/opt/Oracle/Middleware/wlserver_10.3 --通过ssh工具上传p25869650_1036_Generic.zip到/opt/Oracle/Middleware/utils/bsu/cache_dir --然后进入目录解压 cd /opt/Oracle/Middleware/utils/bsu/cache_dir unzip p25869650_1036_Generic.zip --将bsu.sh脚本中的内存调整到2G,默认的及1g会报内存溢出(以下为调整后的内容) MEM_ARGS="-Xms256m -Xmx2048m" "$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $* --升级前先查看升级版本 ./bsu.sh -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 -status=applied -verbose -view --如果安装了其他补丁,请先删除 ./bsu.sh -remove -verbose -patchlist=ZLNA -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 ./bsu.sh -remove -verbose -patchlist=EJUW -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 --升级 ./bsu.sh -install -patch_download_dir=/opt/Oracle/Middleware/utils/bsu/cache_dir -patchlist=B25A -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 --升级成功后查看升级后的版本 ./bsu.sh -prod_dir=/opt/Oracle/Middleware/wlserver_10.3 -status=applied -verbose -...
xiaoxin 发布于 13小时前 阅读 2

tomcat从 http转成https,并且去掉端口号

tomcat从 http转成https,并且去掉端口号
Nori 发布于 14小时前 阅读 7

crontab 不能执行问题解决方法

Linux系统里面计划任务,crontab 没有如期执行这是运维工作中比较常见的一种故障了,根据经验,大家可以从如下角度分析解决: 1、检查crontab服务是否正常 这个一般通过service crond status 查看服务是否启动。如果没有启动,那么可以重启下这个服务:service crond restart 2、检查脚本的执行权限 一般来说,在crontab中建议使用 sh 或 bash 或者/bin/bash来执行shell脚本,避免因脚本文件的执行权限丢失导致任务失败。当然,最直接检查就是人工直接复制crontab -l 里面的命令行测试结果。 3、检查脚本需要用到的变量(这个问题的可能性比较大) 通常来说从crontab里面执行的脚本和人工执行的环境变量是不一样的,所以对于一些系统变量,建议写绝对路径,或使用witch动态获取,比如  mysql_bin=$(which mysql) 就能拿到 sudo在当前系统的绝对路径了。 4、放大招:查看日志 其实,最直接最有效的就是查看执行日志了,结合crontab执行记录,以及crontab执行出错后的系统邮件,一般都能彻底找到失败的原因了!当然,要记住在crontab中如果屏蔽了错误信息,就不会发邮件了。 crontab日志位置在:/var/log/cron    邮件内容文件位置:/var/spool/mail/用户名 ---->(此处...
渺渺星辰 发布于 14小时前 阅读 4

一两年后,Fedora 的 Yum 将会消失?

导读 随着 DNF 软件包管理器在最近的 Fedora 版本里面工作日益工作良好,我们可以预见到 Yum 将在之后的 Fedora 版本中谢幕。 当然,Yum 还一直广泛用在 RHEL 7 中,而在 Fedora 这边,估计在大约一年后的 Fedora 28 乃至 29 中正式退休。 在 Fedora 开发者邮件列表中有一个讨论 Yum 退休的新话题。看起来在 Fedora 28 或 29 的时候会移除 Yum。DNF 已经提供了与 Yum 一样的能力。Fedora 也在开发一个“富依赖”的支持,而这个功能 Yum 不支持,所以这也表明了 Yum 将在以后的 Fedora 系统中消失。 邮件列表中也提到了 Yum 和 DNF 还存在一些差异需要解决,但是看起来在 2018 年应该可以看到希望 免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/  
linuxprobe16 发布于 18小时前 阅读 8

可怕了,中小学将设 AI 课程,编程真的要从娃娃抓起了

导读 种种迹象表明,人工智能是互联网科技的下一个风口,甚至对整个国民经济都会产生深远影响。日前,国务院印发《新一代人工智能发展规划》,要求中小学生要上人工智能课程,推广编程教育。 国务院强调,应逐步开展全民智能教育项目,在中小学阶段设置人工智能相关课程、逐步推广编程教育、建设人工智能学科。 针对高校,则要设立人工智能专业,在试点院校建立人工智能学院。支持高等院校、职业学校和社会化培训机构等开展人工智能技能培训,大幅提升就业人员专业技能,满足我国人工智能发展带来的高技能高质量就业岗位需要。 同时,鼓励企业和各类机构为员工提供人工智能技能培训。加强职工再就业培训和指导,确保从事简单重复性工作的劳动力和因人工智能失业的人员顺利转岗。 2020年,使人工智能技术应用成为改善民生的新途径;2025年,使人工智能成为我国产业升级和经济转型的主要动力;2030年,成为世界主要人工智能创新中心。 中小学生的逻辑思维能力能达到编程的水平吗?这项课程的开设有必要吗?欢迎发表你的观点。 免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/  ...
linuxprobe16 发布于 18小时前 阅读 2

2017/09/25

主要是做练习题的时候,遇到的新问题:
脑洞老湿_ 发布于 19小时前 阅读 1

前面有人贡献,后辈才有强大的靠山

Linux 基金会最近在做一项开源成功学调查,发现在超过 6000 万个开源存储库中,最活跃的项目能有成千上万个贡献者。这些成功的开源项目的共同点是,大多是背后有一家公司在支持,甚至有一群公司合作支持。他们通过项目的 pull request & issue 总数和 commit 总数,整理出了 2016 年 5 月至 2017 年 4 月期间的全球开源项目 Top 30 结果发现,这些项目都有大量的外部开发者和独立开发者在做重大贡献,而且大多背后都有比较强大的企业或基金会在支撑。他们为项目提供的良好的循环结构和资金,使项目长期保持活跃和稳定。 具体包括: Linux kernel (Linux Foundation) Kubernetes (CNCF) Cloud Foundry (Cloud Foundry Foundation) .NET (.NET Foundation) Nova、Neutron、Cinder (OpenStack) Node.js (Node.js Foundation) Mesos (Apache Software Foundation) Chromium、Tensorflow 、AngularJS(Google) React(Facebook) Docker/Moby(Docker) VS Code 、Office Developer(Microsoft) Ansible(Red Hat) ElasticSearch(Elastic) Auth0(Auth0) GitLab(GitLab) Ruby on Rails(Basecamp) Ionic(Ionic) Terraform(HashiCorp) Chef(Chef Software) 除了...
linuxCool 发布于 20小时前 阅读 3

Linux系统该怎么学?运维老鸟的经验心得。

Linux系统该怎么学?运维老鸟的经验心得。    时光荏苒,青春行走在时间的河岸,渐行渐远。初夏又至,七月的脚步越来越近。马上又有大波毕业生离校啦。等待着他们的是社会的检验,对如何选择一份职业就显得尤为重要,当然,你也得具备一定的职业素养,才能干好这份工作。先说说大学生的毕业情况。 有关数据表明,2014年全国普通高校毕业生人数达到727万,2015年全国普通高校毕业生人数达到749万,2017年的毕业生总人数可能只多不少。大学生的就业春天不会来临,他们所面临的就业形势依然严峻。相信大家都听说过IT行业,是一个赚钱的行业,在一线城市,这些人的工资能月入20k左右。那我们就关于这一话题进行探讨。 首先,对于一个涉世未深的IT行业人来说,你需要一个明确的目标,看看自己是适合哪个方面发展。未来的你可能是从事网页的开发工作又或者是大数据的高级开发工作,甚至也有可能是一个IOS的开发。但是这些都是后期自己去摸索,才能找的到的路。现在,需要我们打一个好的基础。我们都知道Linux这个操作系统。这个操作系统确实是一个比较流行的一个系统,和Windows相比,Linux有很多独到之处,同时它也是一个IT行业的垫脚石。那么什么是Linux呢?   Linux是一套自...
linux-tao 发布于 1天前 阅读 18

配置Ubuntu文件默认打开方式

Ubuntu系统中要为同一文件类型文件设定默认的打开方式(程序),不像 Windows中那么简单(勾上默认打开就可以了),事实上设定一个你习惯使用的默认打开程序,将大大提高你工作的便捷性,本文主要讲解在 Ubuntu8.04系统中为特定格式文件配置默认打开方式程序。 Ubuntu保存文件类型打开方式主要又两个配置文件决定: 1.  /etc/gnome/defaults.list 保存了全局的打开方式 2.  /.local/share/applications/mimeapps.list 保存了个人的打开方式(局部个人设置) 当两着对于同一类型文件设定的内容不一致时,优先采用局部的个人设置。 下面我们举个例子来说明设置方式: ubuntu8.04下多媒体文件默认是用Totem打开的,如果你想要改成用smplayer(本人比较喜欢用这个)来打开的话,可以按照以下步聚来进行: 1.进入/etc/gnome目录 命令 cd /etc/gnome 2.复制要改变打开方式的那些内容行到mimeapps.list文件 命令 grep "totem" defaults.list >> ~/.local/share/applications/mimeapps.list 3.进入~/.local/share/applications目录 命令 cd ~/.local/share/applications 4.编缉mimeapps.list文件 命令: sudo vim mimeapps.list 5.在vim中执行 命令:%s/totem/smplayer/g 6.然后执行...
CasparLi 发布于 1天前 阅读 5

HTTPS 性能优化技巧

认识SSL/TLS SSL和TLS都是用于保障端到端之间连接的安全性。SSL最初是由Netscape开发的,后来为了使得该安全协议更加开放和自由,更名为TLS,并被标准化到RFC中,现在主流的是TLS 1.2版本。 从上图,可以看出SSL/TLS是介于应用层和传输层之间,并且分为握手层(Handshake Layer)和记录层(Record Layer)。 握手层:端与端之间协商密码套件、连接状态。 记录层:对数据的封装,数据交给传输层之前,会经过分片-压缩-认证-加密。 算法选择 TLS中可被配置的算法分类: 数字签名:RSA、DSA 流加密:RC4 分组加密:DES、AES 认证加密:GCM 公钥加密:RSA 消息认证码:SHA 密钥交换:Diffie–Hellman 密码套件决定了会使用到的算法,例如执行“openssl ciphers -v 'ALL' | grep ECDHE-RSA-AES128-GCM-SHA256”: ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD 表明该算法是在TLS 1.2中支持的,密钥交换采用ECDH(EC是指采用椭圆曲线的DH),数字签名采用RSA,加密采用128位密钥长度的AESGCM,消息认证码采用AEAD(AEAD是一种新的加密形式,把加密和消息认证码结合到一起,而不是某个算法,例如使用AES并采用GCM模式加密,就能够为数据提供...
问题终结者 发布于 2天前 阅读 12

Linux系统该怎么学?运维老鸟的经验心得。

时光荏苒,青春行走在时间的河岸,渐行渐远。初夏又至,七月的脚步越来越近。马上又有大波毕业生离校啦。等待着他们的是社会的检验,对如何选择一份职业就显得尤为重要,当然,你也得具备一定的职业素养,才能干好这份工作。先说说大学生的毕业情况。 有关数据表明,2014年全国普通高校毕业生人数达到727万,2015年全国普通高校毕业生人数达到749万,2017年的毕业生总人数可能只多不少。大学生的就业春天不会来临,他们所面临的就业形势依然严峻。相信大家都听说过IT行业,是一个赚钱的行业,在一线城市,这些人的工资能月入20k左右。那我们就关于这一话题进行探讨。 首先,对于一个涉世未深的IT行业人来说,你需要一个明确的目标,看看自己是适合哪个方面发展。未来的你可能是从事网页的开发工作又或者是大数据的高级开发工作,甚至也有可能是一个IOS的开发。但是这些都是后期自己去摸索,才能找的到的路。现在,需要我们打一个好的基础。我们都知道Linux这个操作系统。这个操作系统确实是一个比较流行的一个系统,和Windows相比,Linux有很多独到之处,同时它也是一个IT行业的垫脚石。那么什么是Linux呢? Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月...
linuxCool 发布于 2天前 阅读 5

Linux系统该怎么学?运维老鸟的经验心得。

时光荏苒,青春行走在时间的河岸,渐行渐远。初夏又至,七月的脚步越来越近。马上又有大波毕业生离校啦。等待着他们的是社会的检验,对如何选择一份职业就显得尤为重要,当然,你也得具备一定的职业素养,才能干好这份工作。先说说大学生的毕业情况。 有关数据表明,2014年全国普通高校毕业生人数达到727万,2015年全国普通高校毕业生人数达到749万,2017年的毕业生总人数可能只多不少。大学生的就业春天不会来临,他们所面临的就业形势依然严峻。相信大家都听说过IT行业,是一个赚钱的行业,在一线城市,这些人的工资能月入20k左右。那我们就关于这一话题进行探讨。 首先,对于一个涉世未深的IT行业人来说,你需要一个明确的目标,看看自己是适合哪个方面发展。未来的你可能是从事网页的开发工作又或者是大数据的高级开发工作,甚至也有可能是一个IOS的开发。但是这些都是后期自己去摸索,才能找的到的路。现在,需要我们打一个好的基础。我们都知道Linux这个操作系统。这个操作系统确实是一个比较流行的一个系统,和Windows相比,Linux有很多独到之处,同时它也是一个IT行业的垫脚石。那么什么是Linux呢? Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月...
linuxprobe16 发布于 2天前 阅读 6

GNOME Shell 搜索的新变化

导读 GNOME Shell搜索结果在GNOME 3.26中将会有很大的改善,将在9月初稳定发布。GNOME开发者Rares Visalom的细节工作是在GNOME Shell搜索结果中完善,作为今年Google Summer的代码的一部分,在新的博客文章中,您将在下面的图片中看到结果。 以下是GNOME 3.24中当前的GNOME Shell搜索页面: 可以说它没有充分利用屏幕空间,有一些对齐问题,(从经验)在低分辨率显示器上不起作用。 现在这里是GNOME 3.26中相同的页面: 瞬间你可以看到屏幕上有更多的结果 – 但看起来并不凌乱或过满。 这是一个艰难的平衡行为来实现;显示的结果太多,页面变得密集,使用户难以找到所需的内容。但显示结果或信息太少,页面变得无用。 帮助提高可读性是每个应用程序的新的可见分隔符和文本标签(以及相关的结果)。特别是这种变化使得查看具体结果(以及搜索屏幕正在尝试告诉你的内容)变得更容易。 其他调整包括改进应用程序图标的对齐方式,更好地放置元数据片段,以及使用省略号来追踪过长的描述。 结合起来,这些变化创造出一个更加凝聚力,更清洁的页面。 在相关说明中,GNOME 3.26将让您通过概述搜索会话操作 – 这意味着您可以轻松地键盘敲击您的方式重新启动或关闭电源: 免费提供最...
linuxprobe16 发布于 2天前 阅读 4

nginx之proxy_pass指令完全拆解

nginx中有两个模块存在proxy_pass指令。proxy_pass后的后端服务器的uri到底是个啥?
永福 发布于 1个月前 阅读 3289 评论 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_龙 发布于 3个月前 阅读 2623 评论 22 点赞 3

如何在国内愉快的安装 Kubernetes

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

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

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

简单聊聊: linux 匿名管道

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

容器集群管理平台的比较

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

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

来自OSC 第 126 期高手问答主题——Linux 集群和自动化运维
局长 发布于 1年前 阅读 2054 评论 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年前 阅读 1572 评论 12 点赞 4

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

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

似乎找到 OSChina 早上 8 点钟容易宕机的原因

最近一段时间,OSChina 网站在早上 8 点出头的时候很容易因为数据库连接池爆满而导致网站宕机。表现的情况是数据库处理大量的查询,堆积大量并发连接,导致无法再连接到数据库,执行一个简单的查询速度也非常慢,数据库机器的 CPU 很高。 但事实上早上 8 点并非 OSC 网站的高峰期,高峰期的时候都不会挂,为什么偏偏在这么一个没多少人访问的时间点宕机呢? 找了很久没发现系统在 8 点这个时间点有什么特殊的任务要做,对数据库也做了一些调整,包括 “MySQL Can’t Create Thread: Errno 11 ” 的问题。 但是问题依旧。 再次挨个检查系统 crontab 中定义的作业。其中自动构建 Lucene 索引的作业引起了注意。 */5 8-22 * * * /data/oschina/build.sh lucene_build 系统每 5 分钟执行一次增量索引构建,该构建过程仅在一天早上8点到晚上10点钟进行。 我记得当初这么设置的原因是有一个索引的构建容易出问题,为了避免出问题时没人处理,因此设置了这个时间段,后来一直没去调整。 再查看系统跑 lucene 的进程,我靠,那么那么那么多。。。。。 赶紧一个 killall java 杀掉所有的 lucene 索引构建进程,没几秒钟数据库的连接就下来了,系统恢复正常访问。 所以我现在有 80% ...
红薯 发布于 1年前 阅读 11652 评论 105 点赞 34

关于自动化配置还有什么好说的呢?

最近我们团队正在将生产环境的配置进行自动化。简单地说就是使生产环境在任何地方都可以快速的搭建起来,比如程序员在自己的机器上,公司内部的机器上,还有云上。 本文就是想阐明为什么要自动化配置。 进行配置自动化的这个过程,我发现,问题不在于程序员懂不懂Ansible、Chef、Puppet这些自动化配置工具的使用。 问题在于对“配置”本身的理解。我甚至发现还有运维人员也不能理解为什么要将配置自动化。 ### 配置是什么? 很多人都将搭建Tomcat、Nginx这类脚本理解成一个个“任务”。这类脚本还不能被称为“配置”。 而这类Tomcat、Nginx的安装脚本大概是这样: ```shell apt-get install build-essential apt-get install libtool cd /usr/local/src wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz tar -zxvf pcre-8.37.tar.gz cd pcre-8.34 ./configure make make install ..... ``` 脚本来自:http://www.nginx.cn/install 运行这类脚本时,大脑里的概念是:我要“安装”Tomcat、Nginx。这类脚本被当成“动词”存在。也就是说在面对一台机器时,我们的思维方式是:我要写一个`if`来判断Tomcat是不是已经安装,如果没有安装,就是执行a...
翟志军 发布于 1年前 阅读 8477 评论 16 点赞 8

基于Linux命令行KVM虚拟机的安装配置与基本使用

在生产环境中,一般服务器是不安装桌面环境的。本文主要讲解的就是在Linux命令行下安装与配置KVM虚拟机。
PeanutLike 发布于 1年前 阅读 2807 评论 3 点赞 13

kubernetes+docker监控之简介

Docker的监控原则:根据docker官方声明,一个容器不建议跑多个进程,所以不建议在容器中使用agent进行监控(zabbix等),agent应该运行在宿主机,通过cgroup或是docker api获取监控数据。
perofu 发布于 1年前 阅读 4708 评论 10 点赞 7

Sersync+Rsync实现触发式文件同步

一种非常实用的文件同步方式。
PeanutLike 发布于 1年前 阅读 3358 评论 8 点赞 11
顶部