移动端
IT人最大的福利,OTPUB app新版正式上线
学习资源 OT学习平台 发表了文章 0 个评论 3205 次浏览 2017-11-16 11:02
OTPUB致力于IT行业内学习&直播平台,经过17年一年的努力,聚集会员30000余人,500+IT类相关课程,50余场IT类相关直播,不乏大型会议、技术沙龙、圆桌会议等形式。目前OTPUB上游200余家厂商对我们的课程与直播进行输出内容,为IT人提供更多的知识输入。
目前,apple和各大安卓应用均已上架,大家可以针对手机进行相应下载。
本次版本更新亮点,小编也在此为大家进行一番介绍:
亮点一:首页更“骨感”
课程、直播、大咖应有尽有
亮点二:课程更“丰满”
详细的介绍、免费的试看,让您对课程有更细致的了解
亮点三:直播更“性感”
美女直播、大咖直播、技术峰会,技术沙龙,让您足不出户,享受IT饕餮盛宴
亮点四:卡包更“减负”
OTPUB推出的卡包,使会员小投入可以得到更多的课程,月卡、季卡、半年卡,让您实时享受课程的更新。
亮点五:个人中心更“贴心”
您的课程、直播、收藏、浏览无一或缺,全方位打造您的IT学习屋。
目前OTPUB每周会有2场或以上的直播,课程每月也在一直更新,各位会员不要错过精彩的直播内容哦,下载APP预约直播时会有直播提醒,现在下载APP,注册会员,可以在APP轮播图页面领取1个月的月卡哦,快快行动起来!
复制该链接到手机浏览器下载OTPUB新版APP:http://www.otpub.com/Home/Download/index.html
阿里云和Azure ICON图标矢量素材分享
学习资源 OS小编 发表了文章 0 个评论 6117 次浏览 2017-03-10 10:35
Linux下应用程序带宽限制神器「Trickle」
运维 being 发表了文章 0 个评论 8707 次浏览 2016-10-13 19:30
有时候我们经常会遇到某个应用程序占满了整个系统的带宽,然后影响到了其他程序的运行效率。这个时候其实是可以限制这个程序的带宽占用的,然后达到带宽均衡被瓜分。这个时候Trickle就可以做到,他可以控制应用程序的上下行带宽,达到带宽不至于被一个程序霸占。
什么是 Trickle
rickle是一个网络带宽调整工具,可以让我们管理应用程序的网络上下行速度,使得可以避免其中的某个应用程序霸占了全部或大部分可用的带宽。换句话说,Trickle可以让你基于单个应用程序来控制网络流量速率,而不是仅仅针对与单个用户——这是在客户端网络环境中经典的带宽调整情况。
Trickle 可以限制 Linux 命令行工具的上传和下载流量。在跨地域文件传输或者备份时非常有用,因为外网带宽往往会比较贵。
或者你想备份进程或者下载进程不对同机器的其他服务产生影响,也需要 Trickle 这样的限流工具。
再或者你在办公室想下载大文件,不希望影响其他网络用户或者应用,Trickle 就是为此设计。
Trickle 如何工作
trickle 可以帮助我们基于应用来定义优先级,所以当对整个系统进行了全局限制设定,高优先级的应用依然会自动地获取更多的带宽。为了实现这个目标,trickle 对 TCP 连接上的套接字的数据发送、接收设置流量限制。我们必须注意到,除了影响传输速率之外,在这个过程中,trickle任何时候都不会以任何方式来改变其中的数据。
Trickle不能做什么
trickle唯一的限制就是不支持静态链接的应用程序或者具有SUID或SGID位设置的二进制程序,因为它使用动态链接的方式将其载入到需要调整的进程和其关联的网络套接字之间。 Trickle此时会在这两种软件组件之间扮演代理的角色。
由于trickle并不需要超级用户的权限来运行,所以用户可以设置他们自己的流量限制。可能这并不是你想要的,我们会探索如何使用全局设定来限制系统中的所有用户的流量限制。也即是说,此时系统中的每个用户具有管理各自的流量速率,但是无论如何,都会受到系统管理员给他们设置的总体限制。
在这篇文章中,我们会描述如何通过trickle在linux平台上管理应用程序使用的网络带宽。为了生成所需的流量,在此会在客户端(CentOS 7 server – dev1: 192.168.0.17)上使用 ncftpput 和 ncftpget, 在服务器(Debian Wheezy 7.5 – dev2: 192.168.0.15)上使用vsftpd 来进行演示。 相同的指令也可以在RedHat,Fedora和Ubuntu等系统使用。
使用案例
前提条件
对于 RHEL/CentOS 7/6, 开启EPEL仓库。这些用于企业版 Linux 的额外软件包是一个由Fedora项目维护的高质量、开源的软件仓库,而且百分之百与其衍生产品相兼容,如企业版本Linux和CentOS。 在这个仓库中trickle和ncftp两者都是可用的。按照如下方式安装ncftp:
# yum update && sudo yum install ncftp [基于 RedHat 的系统]在单独的服务器上设置一个FTP服务器。需要注意的是,尽管FTP天生就不安全,但是仍然被广泛应用在安全性无关紧要的文件上传下载中。 在这篇文章中我们使用它来演示trickle的优点,同时它也会在客户端的标准输出流中显示传输速率。我们将是否在其它时间使用它放在一边讨论。
# aptitude update && aptitude install ncftp [基于 Debian 的系统]
现在,在FTP服务器上按照以下方式编辑 /etc/vsftpd/vsftpd.conf 文件。
anonymous_enable=NO在此之后,确保在你的当前会话中启动了vsftpd,并在之后的启动中让其自动启动。
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
# systemctl start vsftpd [基于 systemd 的系统]如果你选择在一个使用 SSH 密钥进行远程访问的 CentOS/RHEL 7中搭建FTP服务器,你需要一个密码受保护的用户账户,它能访问root目录之外的某个目录,并有能在其中上传和下载文件的权限。
# systemctl enable vsftpd
# service vsftpd start [基于 init 的系统]
# chkconfig vsftpd on
你可以通过在你的浏览器中输入以下的URL来浏览你的家目录。一个登录窗口会弹出来提示你输入FTP服务器中的有效的用户名和密码。
ftp://192.168.0.15如果验证成功,你就会看到你的家目录中的内容。该教程的稍后部分中,你将可以刷新页面来显示在你之前上传过的文件。
使用方法:
只需要把 trickle 和相关参数附加在其他 Linux 命令行工具命令之前即可。
比如限制 Wget 下载文件的速度为 20KB/S
trickle -s -d 20 wget -c http://blog.eood.cn/
限制文件备份到 AWS S3 的上传速度为 1MB/S:
trickle -s -u 1024 s3cmd sync /mnt/data/ s3://my-backup
当然,你也可以把 trickle 加在现有的服务器自动化脚本中完成限流功能。
其他功能:
trickle -L 设置延迟为多少 ms
trickle -w 设置窗口长度为多少 KB
假如你使用 Linux 系统作为办公和开发环境。Trickle 还可以针对每个不同的 Linux 工具进行限流,这样你可以限制 BT 下载的速度,而不影响浏览网页。
国内FM电台清单(享悦产品)
产品设计 Nock 发表了文章 1 个评论 4898 次浏览 2016-05-15 17:48
2、豆瓣FM【 https://douban.fm/ 】
3、多听FM【 http://www.duotin.com/ 】
4、考拉FM【 http://www.kaolafm.com/ 】
5、荔枝FM【 http://lizhi.fm 】
6、喜马拉雅FM【 http://www.ximalaya.com/explore/】
7、酷FM【 http://fm.kugou.com】
8、企鹅FM【 http://fm.qq.com 】
周末放下工作,放空心情。打开手机或者你的APP,选择一个FM电台,用心倾听!还有其他喜欢的可以评论贴出!
Linux下Json格式化神器jq
运维 Geek小A 发表了文章 0 个评论 16439 次浏览 2016-05-13 00:14
对于JSON格式而言,jq就像sed/awk/grep这些神器一样的方便,而且jq没有乱七八糟的依赖,只需要一个binary文件jq,就足矣。
一、安装
Centos:
# yum -y install jq
Ubuntu:
# apt-get -y install jq
二、使用
1、格式化Json
# cat json_test.txt上面的JSON是PHP json_encode之后,echo出来的字符串,很明显,可读性太差。前一阵子写文档,需要将前后段JSON写入文档,我当时是用是网上的JSON格式化工具做的。事实上,jq就可以检查JSON的合法性,并把JSON格式化成更友好更可读的格式:
{"name":"WuDi","location":{"street":"ZhongShanLu","city":"BeiJing","age":"26","country":"CN"},"employees":[{"name":"Mark","division":"DevOps"},{"name":"Lucy","division":"HR"},{"name":"Elise","division":"Marketing"}]}
看到上图,将一团乱麻的JSON格式化成个更可读的形式。其实背后另外检查了JSON的合法性。如果JSON不合法,jq .会报错。我故意写个错误的JSON:
2、JSON解析
如上图json,jq是如何解析JSON,根据key获取value?
{如何根据key获取value?
“key_1”:"value_1",
“key_2”:"value_2",
}
jq '.key'
解析不存在的元素,会返回null
3、JSON nested parse(嵌套解析)
[root@workingh ~]# cat json_test.txt | jq '.location.city'4、JSON parse array
"BeiJing"
[root@workingh ~]# cat json_test.txt | jq '.employees[1].name'5、内建函数
"Lucy"
jq还有一些内建函数如 key,has
key是用来获取JSON中的key元素的:
[root@workingh ~]# cat json_test.txt | jq 'keys'has是用来是判断是否存在某个key:
[
"employees",
"location",
"name"
]
[root@workingh ~]# cat json_test.txt | jq 'has("location")'与JSON相关的我就暂时介绍到这里,希望进一步了解jq并使用的可以去http://stedolan.github.io/jq/manual/.希望了解源码实现的,可以去https://github.com/stedolan/jq;意料之中的事情是作者用来flex和bison来parse json。我们的示例JSON来自参考文献第一篇。用google搜索,kernalpanic中有篇文章介绍了jshon和json.sh提供了另外的思路。
true
[root@workingh ~]# cat json_test.txt | jq 'has("xxoo")'
false
参考:
How to parse JSON string via command line on Linux
Parsing JSON with jq
上G大文件双机互传工具BBCP
运维 chris 发表了文章 0 个评论 4673 次浏览 2016-01-27 11:52
原由
局域网双机拷贝单个大文件 【200G大小】,不要问我是啥! 也不要问我为毛会生成那么大的单文件,事实就是这样!然后就开始了操蛋之旅!再次做下记录备忘!
方法尝试对比
方式一:scp
什么是scp: scp 命令是 SSH中最方便有用的命令了,scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证。 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码或口令。方式二:rsync
速度:刚开始的时候33M/s 持续3分钟左右就跌落到3M左右的传输速度
什么是rsync: rsync是rcp的替代品之一,rsync 是一款高效的远程数据备份和镜象工具,方式三:wget
速度:无响应
什么是wget: wget 是一个经由 GPL 许可的可从网络上自动获取文件的自由软件包。它是一个非交互式的命令行工具。支持 HTTP,HTTPS 和 FTP 协议,支持代理服务器以及断点续传功能。 wget 可实现递归下载,即可跟踪 HTML 页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构,实现远程网站的镜像。在递归下载时,wget 将页面中的超级链接转换成指向本地文件,方便离线浏览。由于非交互特性,wget 支持后台运行,用户在退出系统后,仍可继续运行。功能强大,设置方便简单。方式四:bbcp
速度:刚开始的时候50M/s 持续3分钟左右就跌落到3M左右的传输速度
什么是bbcp: bbcp 是由SLAC(斯坦福直线加速器中心)的Andy Hanushevsky创立的点对点网络文件拷贝工具。经过简单测试,发现速度比 scp 快了10倍左右,因此推荐大家采用bbcp来取代scp等老家伙 :)附图为2G文件的传输速度:
速度:针对20G的文件进行了测试,测试下来平均下来速度在21M左右,耗时16分钟
总结
不同的应用场景使用不同的工具,单个大文件个人感觉bbcp还是极好极好的!安装bbcp【两端都要安装】
wget http://www.slac.stanford.edu/~abh/bbcp/bin/amd64_rhel60/bbcp -O /usr/bin/bbcp来自http://heylinux.com/archives/2984.html的中文参数解释:
chmod +x /usr/bin/bbcp
-k 保留所有未传输完成的文件,并允许在重试时进行覆盖参考文档:
-a 保留checkpoint信息用于校验文件的完整性
-r 递归传输指定路径下的所有文件
-P 2 每两秒显示传输的进程
-V 打印调试信息
-f 强制清除远程主机上传输失败的数据
-w 设置Disk (I/O) buffers
算法为(window = netspeed/8[i]RTT = 1000Mb/8[/i]74ms = 1000/1000/8*74 = 9.25 M)
对应链接:http://www.slac.stanford.edu/~abh/bbcp/#_Toc332986061
-s 16 设置并发数为16
参考官方建议:http://www.slac.stanford.edu/~abh/bbcp/#_Streams_(-s)
-T "ssh -x -a -p 2222 -oFallBackToRsh=no -i /home/dong.guo/.ssh/id_rsa -l heydevops heylinux.com /usr/bin/bbcp"
指定远端主机的认证方式:
采用-p 2222指定端口;
设置-oFallBackToRsh=no减少ssh响应时间;
设置-i /home/dong.guo/.ssh/id_rsa指定SSH Key;
设置-l heydevops指定登陆用户;
heylinux.com为远程主机地址;
/usr/bin/bbcp为远程主机的bbcp路径;
http://pcbunn.cithep.caltech.edu/bbcp/using_bbcp.htm
http://heylinux.com/archives/2984.html
http://imysql.cn/2008_12_08_using_bbcp_instead_scp
http://linux.cn/article-4527-1-rss.html
http://teachmyself.blog.163.com/blog/static/188814229201242314917237/
阅读分享原文:http://www.dwz.cn/2D55vI
新晋系统分析利器Sysdig
运维 Geek小A 发表了文章 0 个评论 2846 次浏览 2016-01-01 19:19
安装
curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -
curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list
apt-get update
apt-get -y install sysdig
常用操作
sysdig 有很多 chisel, chisel 意为 铲子, 可以理解为定位某类问题的工具, sysdig 采用 Lua 编写的。
- []查看 chisel 列表[/]
sysdig -cl
- []查看具体某个 chisel 的提示[/]
sysdig -i spy_logs
- []使用某个 chisel[/]
sysdig -c spy_logs
- []过滤器可以帮助我们从各种输出信息中, 筛选出我们需要的, 比如 [i]proc.name=foo , 如果你记住不了太多过滤器也无妨, 我们可以借助如下命令查看过滤器[/[/i]]
sysdig -l
- []记录定位信息到文本, 以及从文本读取信息[/]
sysdig -w tracefile.capsysdig -r tracefile.dump proc.name=sshd
实战
- []服务器上经常需要查看哪个服务带宽占用使用较高, 特别是被 DDOS 的时候。[/]
sudo sysdig -c topprocs_net
- []查看某个IP的通讯数据,并以ASCII 码输出[/]
sudo sysdig -s2000 -A -c echo_fds fd.cip=127.0.0.1
- []查看非请求 redis-server 的其他请求进程和句柄[/]
sudo sysdig -p"%proc.name %fd.name" "evt.type=accept and proc.name!=redis-server"
- []查看访问该服务器的所有 GET 请求数据[/]
sudo sysdig -s 2000 -A -c echo_fds fd.port=80 and evt.buffer contains GET
- []查看访问该服务器的 SQL 语句[/]
sudo sysdig -s 2000 -A -c echo_fds evt.buffer contains SELECT
- []查看磁盘读写最高的进程[/]
sysdig -c topprocs_file
- []查看延迟最大的系统调用[/]
sysdig -c topscalls_time
- []查看具体文件的操作细节[/]
sysdig -A -c echo_fds "fd.filename=syslog"
- []查看 IO 延迟大于 1ms 的文件[/]
sudo sysdig -c fileslower 1
- []监视某个文件是否被操作, 从安全出发想象空间很大哦[/]
sudo sysdig evt.type=open and fd.name contains /etc更多方法,详情查阅sysdig官网
八大持续集成工具
运维 push 发表了文章 0 个评论 12512 次浏览 2015-12-10 23:05
一、Hudson
Hudson 是一个可扩展的持续集成引擎,主要用于:
- []持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。[/][]监控一些定时执行的任务。[/]
Hudson的特性如下:
- []易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。[/][]易于配置-所有配置都是通过其提供的web界面实现。[/][]集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。[/][]生成JUnit/TestNG测试报告。[/][]分布式构建支持-Hudson能够让多台计算机一起构建/测试。[/][]文件识别- Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。[/][]插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。[/]
CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口, 可随时查看当前的编译状况和历史状况。
Apache Continuum 是最新的 CI 服务器之一,也是值得关注的一个新进入者。Continuum 的安装和配置很简单:只要下载和释放 ZIP 文件,运行命令行程序,就可以运行了。基于 Web 的界面使得配置项目很容易。而且,还不需要安装 Web 服务器,因为 Continuum 内置了 Jetty Web 服务器。并且,Continuum 可以作为 Windows 服务运行,还在应用程序的某些部分嵌入了上下文敏感的文档,从而提供了很多帮助。Apache Continuum的特性:
- []与Maven 2.x的紧密集成[/][]与Maven SCM的紧密集成,支持Subversion/CVS/Starteam/Clearcase/Perforce[/][]基于web的容易使用的安装和配置接口[/][]Quartz-based scheduling[/][]简单的添加新的项目工程的方法[/][]用于 integration, automation and remoting的XML-RPC interface[/][]邮件提醒和IM(即时通讯)提醒IRC/Jabber/MSN[/]
QuickBuild 是一个持续集成和发布管理的服务器软件,它提供了一个统一的控制台用来管理这些发布的信息。
五、Bamboo
Atlassian Bamboo 是一款持续集成构建服务器软件(Build Server)。Bamboo的特点:
- []简单的用户界面 容易安装 – 顺利的话,5分钟内就可以让运行起来! 自动检测你的设置 – 如果您的Server上使用了Maven,Ant或者Java设置, Bamboo会自动检测他们; [/][]连续的日志 – 监测你的build的colour coded日志;[/][] 容易显示所有项目[/]
Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎。主要用于:[list=1][]持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。[/][]监控一些定时执行的任务。[/]六、Jenkins
七、TeamCity
TeamCity是一款功能强大的持续集成(Continue Integration)工具,包括服务器端和客户端,目前支持Java,.Net项目开发。 TeamCity提供一系列特性可以让团队快速实现持续继承:IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等,所有的这些,都是 让你的团队快速享有持续继承带来的效率提升、高质量的软件保障。
八、CI-Eye
CI-Eye 是一个强大的持续集成构建,无需安装和设置,CI-Eye 通过 REST API 跟很多不同的 CI 服务器交互,当前支持 Hudson, Jenkins, 以及 TeamCity. CI-Eye 在一个独立的 Web 应用中运行。
devops工具大全
运维 Geek小A 发表了文章 0 个评论 12005 次浏览 2015-10-27 01:12
包&产品管理
- []Chocolatey:Chocolatey是Windows下一款开源的命令行包管理软件 ,简单说这相当于Windows的apt-get;[/][]FPM:全称是Effing package management,他就是个软件包管理器,极大的缓解了多个平台构建软件包(deb,rpm,等)的痛苦;[/][]Herd:是一个基于Twitter Murder的文件分布系统;[/][]Vagrant Cachier:Vagrant的一个插件,用于缓存包方面的管理;[/][]WiX Toolset:提供一组最强大的工具集来帮助你创建Windows安装包。该工具集从XML源代码构建你的Windows安装程序包,可以无缝集成到构建过程;[/][]Boxstarter:利用Chocolatey包管理工具来自动化安装软件和创建可重复、脚本化的Windows环境;[/][]Elita:Elita是一个利用git和salt进行持续部署(部署作为服务)和API-driven基础设施的引擎/框架;[/][]Fig:主要用来跟Docker一起来实现的快速隔离的开发环境;[/][]Pulp:Pulp是一个用来管理软件库以及相关内容的平台;[/][]Veewee:Veewee是一个开源工具,用来创建和配置轻量级、可再生、便捷式虚拟机环境。[/]
日志记录&监控
- []AmonOne:现代化的自托管服务器监控工具;[/][]Anthracite:一个事件/日志改变/管理应用程序;[/][]collectd3:是一个可视化的collectd系统性能统计工具;[/][]collectd:是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制;[/][]Cronitor:监控cron工作,守护进程,和其他的一切;[/][]Datascope:可视化使用pg_stat_statements postgresql查询性能;[/][]Diamond:是一个基于Python的守护程序,主要用来收集系统指标,并且把它们发布到Graphite(或其它)工具中;[/][]Errbit:是一个用于收集和管理程序错误的开源工具;[/][]FnordMetric:是一个基于redis/ruby的实时事件跟踪应用,是个收集和可视化时间序列数据的框架,用户可以在几分钟内创建漂亮的实时分析仪表盘;[/][]Ganglia:Ganglia是一个跨平台可扩展的、高性能计算系统下的分布式监控系统,如集群和网格;[/]
云&PAAS环境
进程管理
- []Bouncy:可以作为HTTP路由主机;[/][]Supervisor:是一个客户端服务器系统,允许用户监控和控制类Unix操作系统上的进程数;[/][]God:由Ruby实现的进程监控框架。[/][]bluepill:bluepill[/]
服务发现
- []Consul:简化了分布式环境中的服务的注册和发现流程,通过HTTP或者DNS接口发现。支持外部SaaS 提供者等;[/][]etcd:是一个高可用的Key/Value存储系统,主要用于分享配置和服务发现;[/][]Apache ZooKeeper:是Apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题;[/][]Weave:创建一个虚拟网络并连接到部署在多个主机上的Docker容器。[/]
源代码管理
持续集成和交付
- []Buildbot:是一个系统的自动化编译/测试周期最需要的软件,以验证代码的变化。通过自动重建和测试每次发生了变化的东西,在建设迅速查明之前,减少不必要的失败;[/][]Cabot:是一个开源,自我托管的监控工具;[/][]Jenkins:是基于Java开发的一种持续集成工具,用于监控持续重复的工作;[/][]Hubot:基于脚本具有很高的灵活性,任何人都可以编写自己的脚本来扩展基本功能;[/][]Hudson:是一个可扩展的持续集成引擎,主要用于:持续、自动地构建/测试软件项目、监控一些定时执行的任务;[/][]CruiseControl.rb:是一个持续集成服务器,它可以让团队里的每个人随时了解项目的健康状况和进度;[/][]OpsBot:是一个开源的、可插入的改善通信的机器人。[/]
配置管理
希望大家有收获,查看原文可以获取到更多了解,原文中列表会持续更新。
翻译原文地址:https://dev-ops-tools.zeef.com/richard.kraayenhagen#block_41685_process-management