2linux和unix兼容,unix是早期的服务器霸主,现在份额逐渐让给linux了
3linux是多用户多进程系统,windows是单用户伪多用户系统,不适合服务器
4互联网开放,linux也是开放的,像apach这样的开放软件优先在linux上实现
5linux是模块化的,可裁减,出现问题只要关闭一个模块,windows只有微软自己才会裁减
6linux的用户管理严格,病毒难以破坏,windows漏洞百出,用户管理混乱
7linux硬件需求小,大部分版本免费,总得成本低
8windows常会蓝屏、需要磁盘清理,linux下kernel panic几年一遇,也可以好几年不关机,一两年一次磁盘清理
9win的图形界面浪费了太多资源,linux使用x-window systerm,平时根本不用开图形界面
Linux最早由LinusBenedictTorvalds在1991年开始编写。在这之前,RichardStallman创建了FreeSoftwareFoundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL:GeneralPublicLicense)。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux,或称GNU/Linux。
Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。下面介绍一下各个发行版本的特点:
Redhat,应该称为Redhat系列,包括RHEL(RedhatEnterpriseLinux,也就是所谓的RedhatAdvanceServer,收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是FedoraCore的稳定性较差,最好只用于桌面应用。
Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由IanMurdock于1993年创建,分为三个版本分支(branch):stable,testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get/dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去:)
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。Gentoo最初由DanielRobbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。
最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器 *** 作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
下面给为选择一个Linux发行版本犯愁的朋友一些建议:
如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。
如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧!
如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。
如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。
11 top
12 vmstat
r 表示可运行进程数目,数据大致相符;而b表示的是 uninterruptible 睡眠的进程数目;swpd 表示使用到的虚拟内存数量,跟 top-Swap-used 的数值是一个含义,而如手册所说,通常情况下 buffers 数目要比 cached Mem 小的多,buffers 一般20M这么个数量级;io 域的 bi、bo 表明每秒钟向磁盘接收和发送的块数目(blocks/s);system 域的 in 表明每秒钟的系统中断数(包括时钟中断),cs表明因为进程切换导致上下文切换的数目。
说到这里,想到以前很多人纠结编译 linux kernel 的时候 -j 参数究竟是 CPU Core 还是 CPU Core+1?通过上面修改 -j 参数值编译 boost 和 linux kernel 的同时开启 vmstat 监控,发现两种情况下 context switch 基本没有变化,且也只有显著增加 -j 值后 context switch 才会有显著的增加,看来不必过于纠结这个参数了,虽然具体编译时间长度我还没有测试。资料说如果不是在系统启动或者 benchmark 的状态,参数 context switch>100000 程序肯定有问题。
13 pidstat
如果想对某个进程进行全面具体的追踪,没有什么比 pidstat 更合适的了——栈空间、缺页情况、主被动切换等信息尽收眼底。这个命令最有用的参数是-t,可以将进程中各个线程的详细信息罗列出来。
-r: 显示缺页错误和内存使用状况,缺页错误是程序需要访问映射在虚拟内存空间中但是还尚未被加载到物理内存中的一个分页,缺页错误两个主要类型是
-s:栈使用状况,包括 StkSize 为线程保留的栈空间,以及 StkRef 实际使用的栈空间。使用ulimit -s发现CentOS 6x上面默认栈空间是10240K,而 CentOS 7x、Ubuntu系列默认栈空间大小为8196K
14 其他
while :; do ps -eo user,pid,ni,pri,pcpu,psr,comm | grep 'ailawd'; sleep 1; done
21 iostat
31 netstat
➜ ~ netstat -antp #列出所有TCP的连接
➜ ~ netstat -nltp #列出本地所有TCP侦听套接字,不要加-a参数
32 sar
33 tcpdump
最近某司网站主页被篡改了,找师傅帮忙看看怎么回事,师傅没有空就交给我了……我自己这方面没有了解很多。事情结束后,又找师傅问了问关于溯源的技巧经验,于是就有了这篇小结。
看对方的目的是什么,就是最终目标是做什么。然后根据自己经验 看看达到这个目标 需要进行什么 *** 作 逆推回去。看看这些过程都会留下什么日志。
分析网站源码可以帮助我们获取网站被入侵时间, 黑客如何的 IP, 等信息, 对于接下来的日志分析有很大帮助。
可以使用 D 盾查杀是否存在网站后门,如果存在 webshell,记录下该 webshell 的信息。
找到 webshell 后,就可以根据该文件的路径,在日志里查找有关信息,例如访问该文件的 IP、时间等。可以根据这些信息确定网站别入侵的时间,从而缩小搜索范围,运气好了可以直接根据 IP 找到黑客。
diff 工具推荐-diffmerge
可以根据被修改的文件的修改时间,缩小搜索范围。
可以根据文件的排序迅速找到被黑客修改的文件,从而找到入侵时间。
例:查看 10 分钟内修改过的文件
网站日志一般为
根据上一步分析网站源码得到的信息在对日志文件进行筛选分析,因为日志文件会记录很多信息,如果一条一条分析,不是很现实。
web-log 分析工具
系统日志分析
/var/log/wtmp 和/var/run/utmp 两个文件无法直接使用 cat 命令输出,但是可以使用一些命令来查看,比如 w/who/finger/id/last/ac/uptime
该命令查询 /var/log/wtmp 文件并显示 当前 系统中每个用户和它所运行的进程信息:
该命令往回搜索 /var/log/wtmp 文件来显示自从该文件第一次创建以来所有登录过的用户:
如果指明了用户,则该命令只显示该用户的近期活动:
/var/log/lastlog 文件在每次有用户登录时被查询。可以使用 lastlog 命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志 /var/log/lastlog 的内容。它根据 UID 排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog 显示 Never logged(从未登录过)。注意需要以 root 运行该命令:
4 id 用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。 如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数:
检查服务器是否有黑客留下的木马程序。
指令:ps aux|grep ‘pid’
整理完这篇总结,感觉溯源是一个很细节的事情,需要注意每一个细节,这篇总结也可以是一个备忘,以后在遇到溯源的活,做的时候就可以更系统一些。第一次投稿写的不好,师傅们多多指教哈,嘻嘻。
1998年,国人第一次在本土市场上接触到Linux,给我们创造这个机会的是TurboLinux。通过与国内大型IT媒体的密切合作,TurboLinux将自由软件和Linux的概念借助报刊附送光盘的形式广为传播,并率先建立起国内Linux认证体系,无论在市场造势和商业策略的制订上都取得了领先的成功。
1999年起,以蓝点(BluePoint)和冲浪(XteamLinux)为代表的本土产品异军突起,使中文Linux真正变成中国人的事业。
接着,以红旗Linux为代表的“国家队”正式介入中文Linux领域。红旗软件汇集中国科学院20多年在开放系统上的研究成果,以及10多年来中文系统的开发经验,率先推出的红旗Linux服务器,扬起国产软件的一面旗帜,在业界引起强烈反响。
最后杀出的一匹黑马,是以联想为代表的IT传统实力派,坐拥庞大的PC销量带来的OEM预装市场,联想推出了幸福Linux,对其他Linux厂商造成了强大的冲击和市场压力。
中文Linux的进程简单明了,而从这一过程中也足以看到,国人对Linux的无限热爱之情。在各大厂商频频活跃于众人眼前的同时,诸位Linux的忠实追随者也纷纷建立了各式各样的Linux论坛,并在其中发表自己的高谈阔论,为中文Linux的发展摇旗呐喊。
应用推广一直以来都是Linux最大的难题,在国内也是如此。不过,经过两年的发展,在嵌入式系统、服务器和桌面应用等应用领域,国产Linux推广应用趋势已经逐渐明朗化。据专家预测,未来几年中,嵌入式Linux系统将在中国市场上有高速增长,工业控制类产品将走在前面,网络设备将紧随其后。
服务器一直以来都是Linux应用值得自豪的一个领域,政府、银行、邮电、保险等关键部门已经开始规模推广。Linux服务器的稳定性、安全性、可靠性已经得到业界认可,一大批中间件、数据库、网络及应用软件纷纷运行在Linux平台上。产业的形成也已日渐清晰,红旗、TurboLinux、中软等公司已经形成开发、服务、市场、销售体系。
Linux桌面系统的僵局一度很难打破,但是厂商们还是在努力地发展和推广桌面Linux,红旗的桌面LinuxOEM协议在上半年就已经突破了100万份,而中软等厂商也都推出了新的桌面版本。尽管我们可能质疑它的实际应用意义,但我们看到,厂商更多的用意是培育市场,争取更大的市场份额。专家的客观分析表明,桌面Linux应用时代的到来还需假以时日。
尽管Unix/Linux是服务器领域的王者,连微软都在Windows10上都内嵌了Linux子系统,而且Windows10针对于cmd做出了很多优化,就是为了让Windows更加接近Unix/Linux的 *** 作哲学,不过还是有很多开发者用Windows *** 作系统,而WindowsServer依然是很多中小企业的主要服务器系统。
WindowsServer对中小企业非常友好
对于中小企业来说,WindowsServer依然是成本更低、更加友好的解决方案,而且经过这么多年的研发,WindowsServer已经变得非常成熟、稳定。当然大的互联网企业基本上还是会用Linux/Unix,这些企业都有足够专业的运维团队,而且拥有者数千万数亿甚至数十亿的用户,这样的企业有钱也有必要用Linux/Unix解决方案。
根据IDC的调查数据显示,全世界的Web服务器中, *** 作系统为Linux的占据了232%,Unix的占比为151%,而WindowsServer的份额占比则在50%左右,WindowsServer的市场份额是比较令人吃惊的。另一家叫做W3Techs的调查数据显示,在Alexa排名前1000万Web服务器中,超过674%的使用的是Unix/Linux *** 作系统,326%使用的是Windows系统,剩下还有01%使用的是Mac,Windows在服务器市场依然表现不错。
如果你要使用Linux系统作为服务器系统,你可能往往需要非常专业的运维团队来管理这些服务器,当然你的企业规模到了一定程度之后,Linux上的命令行 *** 作能够帮助你在大规模集群服务器管理下获得更加高效的体验。
不过中小企业没有那么专业的运维人员,对于管理人员需求较低,基本上一个初级管理人员就能够轻松管理几百台WindowsServer服务器。WindowsServer对于想要学习服务器以及学生是免费的,WindowsServer的价格相对于SUSE、RedHat这些Linux企业发行版其实是要更实惠一点的。另外一点就是微软的开发者文档应该是最好的,一个MSDNLibrary基本上可以把所有的开发者文档秒杀了。而且WindowsServer在部署和配置上非常友好,而且拥有出色的多语言GUI *** 作界面,你可以轻松的配置各种角色,轻松的使用IIS服务器。
使用微软
NET
和WindowsServer解决方案的企业不过现在有些企业开始转了,早些年京东、StackOverflow就是用的
NET
解决方案,后来慢慢转向了Java,目前还在用的企业ESPN、当当网,工商银行、招商银行、农业银行、中国银行、携程、艺龙、同程、前程无忧、智联招聘、汽车之间、易车等企业都在用微软的解决方案。在桌面 *** 作系统领域,Windows独领风骚是绝对的行业第一,而且服务器领域尽管大的科技公司、尤其是互联网公司肯定不会用WindowsServer,不过盖不住中小企业多,因此WindowsServer也是服务器 *** 作系统领域份额比较大的,而且这个份额一直在稳定的增长中。
总之即使在服务器领域,Windows相对于Linux也不是一文不值,反而在很多方面占据着优势,尤其是在易用性和成本上并不比Linux差,当企业做到一定规模了,你有足够多的运维预算了,比如BAT这种级别的企业基本上运维预算都是数十亿级别的,那么你当然应该选择更好的Unix/Linux解决方案。
本文为字节跳动签约作者EmacserVimer悟空问答原创文章,未经允许转载、抄袭必究!在Linux服务器上查看CPU详细信息:cat /proc/cpuinfo
输出结果:
上面只截取了一部分信息,
完整的CPU信息请参考文末附录,
这个命令输出了太多的冗余信息不方便查看,
下面介绍的命令以该Linux输出的CPU信息为例,
可以很方便的知道当前系统CPU的特定信息。
请参考以下文章了解CPU的一些基本概念:
物理CPU,物理CPU内核,逻辑CPU概念详解
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
输出结果:
2
表示Linux服务器上面实际安装了2个物理CPU芯片。
cat /proc/cpuinfo | grep "cpu cores" | uniq
输出结果:
cpu cores : 8
表示1个物理CPU里面有8个物理内核。
cat /proc/cpuinfo | grep "processor" | wc -l
输出结果:
32
表示Linux服务器一共有32个逻辑CPU。
cat /proc/cpuinfo | grep 'siblings' | uniq
输出结果:
siblings : 16
表示每个物理CPU中有16个逻辑CPU,
一共有2个物理CPU,
所以总共有32个逻辑CPU,
和第5步中查看的结果一致。
cat /proc/cpuinfo | grep -e "cpu cores" -e "siblings" | sort | uniq
输出结果:
cpu cores : 8
siblings : 16
看到cpu cores数量是siblings数量一半,说明启动了超线程。
如果cpu cores数量和siblings数量一致,则没有启用超线程。
cpuinfo输出了详细的信息,
可以看到CPU具体型号等各种参数,
下面说明各个输出项的含义:
14、/proc/cpuinfo 文件(查看CPU信息)
Linux CPU数量判断,通过/proc/cpuinfo
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)