首页 文章 精选 留言 我的

精选列表

搜索[linux],共10000篇文章
优秀的个人博客,低调大师

Linux运维工程师笔试题第十三套

这套题的出处是http://blog.51cto.com/nolinux/1670406 ,看到了周末闲着没事就做一做,答案都是我结合自己的工作得到的,不一定百分百准确,现在拿出来跟各位分享一番。 1、请写出五种系统性能分析工具,并简述其作用和特点 [我的答案] top、free、vmstat、iostat、perf等等等等,如果你想装逼,可以回答fio,blktrace,oprofile。 具体的作用和特点这里不多说了,但是我着重要推荐vmstat,很实用很棒的一个命令。可以去移步看看https://rorschachchan.github.io/2018/01/03/从vmstat命令里看服务器瓶颈/这篇文章。 2、请写出web服务器的调优要点 [我的答案]以nginx为例,个人总结有如下几个要点: 1)尽可能的少用http,因为http是有开销的; 2)尽可能的使用CDN; 3)添加Expire/Cache-Control头,这个头是缓存用的,可以缓存图片和flash那样不轻易更改的文件,减少访问时间; 4)启动gzip压缩,这个没啥好说的了; 5)尽可能少的重定向,重定向是需要时间的,增加一次重定向就会多一次web需求; 6)如果可以,把ajax也做缓存; 7)减少dns查询,很多网页会有外站的广告,这些广告也是会启动dns查询的,所以如果不缺钱,减少这种广告; 8)调好服务器里的TCP协议栈,这个无论是web服务器还是应用服务器都是必须的; 3、请写出你知道或使用过的nginx扩展模块(注意标注知道和使用) [我的答案] 随便说几个我使用过的,这玩意到时候结合工作过的情况说说吧: Nginx负载均衡模块:nginx-upstream-fair 非阻塞访问redis模块:redis2-nginx-module 分布式图片实时动态压缩:ngx-fastdfs4、请简述你了解的自动化配置管理工具特点和运行原理 [我的答案]我用的最多的就是ansible和saltstack,这俩都是python的,对于我这个半路出家的更亲切。 ansible基于SSH协议传输数据,不用装agent,配置比较简单,对windows支持惨不忍睹; saltstack使用消息队列zeroMQ传输数据,如果1000台以上的话它速度比ansible还要快,要安装agent,对windows支持同样惨不忍睹; 5、目前,有一个文件,内容如下:172.16.100.1172.16.100.2172.16.100.3172.16.100.4 请使用while和ssh命令,登录文件内的ip并执行hostname命令 [我的答案]这个还真没有什么思路,不过我觉得是要搭配“<”输入重定向的吧。 PS,为啥不用ansible...哪怕pssh也可以啊! 6、请使用awk命令将如下两份文件中名字相同的两行合并起来 A文件:大广州 21岁广州大 23岁州广大 22岁广州大 24岁 B文件:广州大 男大广州 男州广大 男广州大 男 输出效果:`大广州 21岁 男` [我的答案]#awk 'NR==FNR{a[$1]=$2}NR>FNR{print $0,a[$1]}'B文件名A文件名 PS,做完这道题,我已经不认识“广”“州”这两个字了...7、请使用绘图的方式简述TCP/IP三次握手和四次断开的交互过程 [我的答案]这种图满大街都是了,我这个灵魂画师在这里就不污染各位的眼睛,不过这里推荐各位去看一篇文章:https://mp.weixin.qq.com/s?__biz=MjM5NzA1MTcyMA==&mid=2651160450&idx=2&sn=1128438fa5287b6cee503880698642b2&scene=21 对原理讲的浅显易懂。 多说一句,网易招聘java的时候也问这个问题,不过他们问的是“为什么要三次握手?” 8、请根据你的理解,简述高可用服务体系的相关组件,并列举该组件的具体实现服务名字 [我的答案] 我觉得这个题是要问一些架构上的东西,以我工作环境为例: 统一配置:zookeeper、Consul、Etcd+Confd(这俩比较常见于动态管理nginx) 前端展示:nginx 消息队列:activemq、kafka 读写分离中间件:atlas 日志分析:elk 简述我就不简了,自己百度一下。9、请根据你的理解,简述负载均衡的实现方式 [我的答案]负载均衡主要分为两种,硬件(F5)和软件(NGINX、Haproxy、LVS),硬件效果比较牛逼,它是把4-7层的负载均衡功能做到一个硬件里面,但是价格昂贵最近用的越来越少了。 软件的负载均衡又分两种,四层和七层:四层是在IP/TCP协议栈上把网络包的IP地址和端口进行修改,达到转发的目的;七层就是在应用层里把HTTP请求、URL等具体的应用数据发送到具体的服务器上。四层的效率比七层的高,四层一般安排在架构的前端,七层一般就是在具体服务器的前端。 软件负载均衡比较常见的几个分配方式如下: 轮询:访问请求依序分发给后端服务器; 加权轮询:访问请求依序分发后端服务器,服务器权重越高被分发的几率也越大; 最小连接数: 将访问请求分发给当前连接数最小的一台后端服务器,服务器权重越高被分发的几率也越大;10、请根据你的理解,简述数据迁移工具和数据存储服务有哪些以及相关特点 [我的答案]由于我公司主要都放在了阿里云,数据库用过的就这么几个:mysql、redis和elasticsearch。对于Storm和Hadoop这俩我还是初学者。 mysql:关系型数据库; elasticsearch:全文检索框架,这玩意逐渐向一个数据库靠拢了; redis:键值储存数据库; mysql的数据迁移最常见的就是mysqldump,但是要注意使用不当会锁表; redis的数据迁移最稳妥的方法就是主从同步:在slave端启动redis,然后执行#slaveof master机器IP地址 6379,然后使用#info的时候查看#master_link_status如果是up那就是OK了,再执行#slaveof no one,提示OK就是OK了; Elasticsearch的数据迁移工具就是Elasticsearch-Exporter,不过我对它仅仅只是了解,用的并不多; 最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文! 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/2058818

优秀的个人博客,低调大师

查找谁在破解你linux服务器的密码?

首先知道,系统的用户登陆日志文件是/var/log/secure,所以分析统计这文件就可以 #tail -n50 secure-20161219 (可以看到大量Failed password的记录) Dec 19 03:41:35 localhost sshd[9014]: Failed password for root from 59.63.166.84 port 26368 ssh2 Dec 19 03:41:36 localhost sshd[9014]: Failed password for root from 59.63.166.84 port 26368 ssh2 Dec 19 03:41:37 localhost sshd[9014]: Failed password for root from 59.63.166.84 port 26368 ssh2 Dec 19 03:41:37 localhost sshd[9014]: Failed password for root from 59.63.166.84 port 26368 ssh2 Dec 19 03:41:38 localhost sshd[9014]: Failed password for root from 59.63.166.84 port 26368 ssh2 Dec 19 03:41:38 localhost sshd[9014]: error: maximum authentication attempts exceeded for root from 59.63.166.84 port 26368 ssh2 [preauth] Dec 19 03:41:38 localhost sshd[9014]: Disconnecting: Too many authentication failures [preauth] Dec 19 03:41:39 localhost sshd[9016]: Failed password for root from 59.63.166.84 port 32555 ssh2 我们要过滤出Failed行并显示对他的ip地址做统计排序,找到攻击最大的几个 #awk '/Failed password/{print $(NF-3)}' secure-20161219|sort|uniq -c|sort -nrk1|head -20 68652 218.65.30.25 34326 218.65.30.53 21201 218.87.109.154 18065 112.85.42.103 17164 112.85.42.99 17163 218.87.109.151 17163 218.87.109.150 17163 218.65.30.61 17163 218.65.30.126 17163 218.65.30.124 17163 218.65.30.123 17163 218.65.30.122 17163 182.100.67.120 17163 182.100.67.119 17163 112.85.42.124 17163 112.85.42.107 3289 222.186.50.206 3265 219.133.29.16 3206 111.73.46.156 2479 117.21.226.189 (解释下# awk '/Failed password/{print $(NF-3)}' secure-20161219|sort|uniq -c|sort -nrk1|head -20) awk根据Failed password匹配出了破解记录,然后取倒数第四列的ip,取到的结果先进行排序(目的是为了下一个uniq函数),uniq -c去重并计算数目(只支持比较连续的行所以前面用sort),对去重后的数据按照第一列(-k1)进行数字(n)倒序(r),最后只取前20行 第二种方法(awk数组方式): #awk '/Failed password/{d[$(NF-3)]++}END{for(i in d) print i,d[i]}' secure-20161219|sort -nrk2|head -20 218.65.30.25 68652 218.65.30.53 34326 218.87.109.154 21201 112.85.42.103 18065 112.85.42.99 17164 218.87.109.151 17163 218.87.109.150 17163 218.65.30.61 17163 218.65.30.126 17163 218.65.30.124 17163 218.65.30.123 17163 218.65.30.122 17163 182.100.67.120 17163 182.100.67.119 17163 112.85.42.124 17163 112.85.42.107 17163 222.186.50.206 3289 219.133.29.16 3265 111.73.46.156 3206 117.21.226.189 2479

优秀的个人博客,低调大师

笔记:Linux下MooseFS1.6特点、原理图、生产设计

MooseFS1.6文件系统有以下特点: 分布式存储 方便容量扩充,可以通过增加硬盘或数据存储服务器(Trunk server)实现 元数据服务器(Master Server)的高可用性(用MetaLogger服务器实现) 文件对象级的高可用性(可以任意设定一个文件的拷贝份数),提高读并发数 支持文件对象的回收站功能,已删除的文件在指定的时间内可以恢复 支持快照功能,这个功能一般只在高端存储设备上才会有 对于小文件的读性能更好 架构示图: 生产中我们设计: 一台独立的性能强健的元数据服务器,一台元数据日志服务,若干台存储块服务器。出于元数据服务器的高可用考虑,可以增加一台元数据服务器的备机,手动去切换,或者通过Drbd+Corosync+Pacemaker实现自动切换。 出于安全性考虑,服务器只接内网。 要考虑服务器的监控,可以通过自带的微型服务器程序mfscgiserver来实现。 并不是所有的业务都适合MFS,因为增加存储块服务器的时候,单一客户端的读写性能都有下降。并发客户端的读写性能都有所提升。 关于异地备份,还不是很清楚。 本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/536907,如需转载请自行联系原作者

优秀的个人博客,低调大师

linux查找所有文件中某个字符串

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l (1)find命令的一般形式 find pathname -options [-print -exec -ok] pathname :find命令所查找的目录路径。如用"."来表示当前的目录,用/来表示系统根目录 -print :find命令将匹配的文件输出到标准输出 -exec: find命令对匹配的文件执行该参数所给出的shell命令,相应的命令形式为 'command'{} \; (注意{}和\之间的空格) -ok 和 -exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 options有如下几种: -name :按照文件名查找文件 -perm :按照文件权限来查找文件 -user :按照文件属主来查找文件 -group :按照文件所属的组来查找文件 -mtime -n +n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime 和-ctime选项,但它们都和-mtime选项相似。 -size n[c]查找文件长度为n块的文件,带有c时表示文件长度以字节计。 -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在 -newer file1 !file2查找更改时间比文件file1新但比文件file2旧的文件 -depth 先查找指定目录有无匹配文件,若无则再在子目录中查找 -type 查找某一类型的文件,如 b :块设备文件 d:目录 e:字符设备文件 p;管道文件 l:符号链接文件 f:普通文件 (3)find命令举例 find -name "*.txt" -print 查找txt结尾的文件并输出到屏幕上 find /cmd ".sh" -print 查找/cmd目录下所有sh文件,并输出 find . -perm 755 -print 查找当前目录下权限为755的文件,并输出 find `pwd` -user root -print 查找当前目录下属主为root的文件,并输出 find ./ -group sunwill -print 查找当前目录下所属主是sunwill的文件 find /var -mtime -5 -print 查找/var目录下更改时间为5天内的所有文件 find /var -mtime +5 -print 查找/var目录下更改时间为5天以前的所有文件 find /var -newer "myfile1" ! -newer "myfile2" -print 查找/var目录下比myfile1新,但是比myfile2旧的所有文件。 find /var -type d -print 查找/var目录下所有目录 find /var -type l -print 查找/var目录下所有的符号链接文件。 find . -size +1000000c -print 查找当前目录下大于1000000字节的文件 find / -name "con.file" -depth -print 查找根目录下有无"con.file",若无则在其子目录中查找 find . -type f -exec ls -l {} \; 查找当前目录下是否有普通文件,若有则执行ls -l (4)xargs命令 在 使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec。不幸的是,有些系统对能够传递给exec的命 令长度有限制,这样find命令运行几分钟之后就算出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs的用处所在,特别是与 find命令一起使用,exec会发起多个进程,而xargs会多个,只有一个 find ./ -perm -7 -print | xargs chmod o-w 查找权限为7的文件并传递给chmod处理 (5)grep介绍.如果你想在当前目录下 查找"hello,world!"字符串,可以这样: grep -rn "hello,world!" * * : 表示当前目录所有文件,也可以是某个文件名 -r 是递归查找 -n 是显示行号 -R 查找所有文件包含子目录 -i 忽略大小写 下面是一些有意思的命令行参数: grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, grep -l pattern files :只列出匹配的文件名, grep -L pattern files :列出不匹配的文件名, grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), grep -C number pattern files :匹配的上下文分别显示[number]行, grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行, grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。 这里还有些用于搜索的特殊符号: \< 和 \> 分别标注单词的开始与结尾。 例如: grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, grep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 '^':指匹配的字符串在行首, '$':指匹配的字符串在行尾, (6),xargs配合grep查找 find -type f -name '*.php'|xargs grep 'hello,world!'

优秀的个人博客,低调大师

解决Linux 下ping不通百度的解决方法

今天在学习DNS的时候遇到了一个问题,我的虚拟机能够ping通ip地址,却ping不通www.baidu.com www.qq.com等域名,先是出现了以下报错: 折腾了几个小时终于找到解决办法 1、首先查看虚拟机能否ping通外网可以ping网关试一下 ping 172.17.0.1 [plain]view plain copy 2、确保网关设置了 [plain]view plain copy vim /etc/sysconfig/network-scripts/ifcfg-eth1 [plain]view plain copy GATEWAY=172.17.0.1 DNS1=172.17.0.1 修改之后需要重启网络服务。centos6 : service network restart 3、确保有可用的域名服务器 cat /etc/resolv.conf 没有的话可以自己编辑一份 [plain]view plain copy vim /etc/resolv.conf nameserver 172.17.0.1 nameserver 114.114.114.114 这样一般就没问题了 但是我还是遇到了问题 应该还是网络的问题,我重启了网络服务,还是不行 于是查看了路由表,发现缺少一条默认路由记录 那好办那就加一条路由记录 发现加不上 只好清空路有记录 然后重启网络服务,再增加默认路由,然后可以解析出地址了 完。

优秀的个人博客,低调大师

linux下五种常见的格式的文件解压缩

.zip压缩命令(压缩文件和目录没有任何毛病): 常用压缩格式:.zip .gz .bz2 .tar.gz .tar.bz2 格式:zip 压缩文件名(可以不写压缩名,但是严格意义上区分压缩文件名) 源文件名 zip -r 压缩文件名 源文件名 压缩目录 解压缩: unzip 压缩文件 .gz压缩(压缩目录下的所有子文件 目录并不会压缩) gzip 源文件(自动以.gz为后缀,压缩后源文件会消失) 那么可以压缩为gz源文件不消失吗?没有直接命令达到该效果 但是,可以通过以下方式实现 gzip -c 源文件 > 压缩文件 gzip -r 源文件 压缩目录 #压缩目录下的所有子文件 目录并不会压缩 .gz解压缩 gzip -d 压缩文件 gunzip 压缩文件 .bz2格式压缩(不能压缩目录) bzip2 源文件 #压缩 不保留源文件 bzip2 -k 源文件 #压缩后保留源文件 .bz2格式解压缩 bzip2 -d 压缩文件 bunzip2 压缩文件 ---------------------以下两种压缩格式用的多 .tar.gz(不删除源文件,先打包为tar,再压缩目录,解决了目录不能压缩的问题) 打包文件 tar -cvf 打包文件名(*.tar) 源文件 -c 打包 -t 测试 只查看 -v -f .tar.gz解压缩 tar -xvf 打包文件名 -x 解打包 tar -zcvf 压缩文件(*.tar.gz) 源文件 #打包并压缩 指定解压缩位置 tar -jxvf 压缩文件 -C 目录 压缩多个文件 以空格分隔 .tar.bz2压缩 tar -jcvf 压缩文件(*.tar.bz2) 源文件 .tar.bz2解压缩 tar -jxvf 压缩文件(*.tar.bz2) 源文件

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册