Liunx笔记:CentOS6和CentOS7的区别

汉克书维护者

在线流程图软件

Ago linux运维群: 93324526 笔者QQ:578843228


常用安装包下载

yum install -y epel-release
yum -y install bash-completion
yum -y install net-tools
yum -y install iproute
yum -y install wget vim
yum -y install lrzsz nmap tree dos2unix nc telnet
yum -y install openssl

一、 系统类型

1.1 sysvinit

1.	系统第一个进程(pid=1)为init
2. init进程是所有进程的祖先,不可kill,
3. 大多数linux发行版的init系统是和systemV相兼容,被称为sysvinit
4. 代表系统: C5 C6

应用场景:

用于服务器时代

优点:

sysvinit运行非常良好,概念简单清晰。它主要依赖于shell脚本

缺点:

1.	按照一定顺序执行-->启动太慢。
2. 很容易hang住,fstab与nfs挂载问题。

未来的趋势:

个人PC机和移动平台,需要便捷,快的系统。

1.2 Upstart技术

CentOS6采用了Upstart技术代替sysvinit进行引导。upstart对rc,sysinit脚本做了大量得优化,缩短了系统初始化时得启动时间。但是C6为了简便管理员得操作,upstart得很多特性并没有凸显或者直接不支持。因此再C6中的服务启动脚本还是以原来sysv的形式提供,所以我们依然采用sysvinit的图讲解C6的系统初始化过程(initctl)
一个应运而生的技术,却因为竞争对手太强大,而被淘汰。
代表体统:C6,Ubuntu14.
http://0pointer.de/blog/projects/why.html

1.3 Systemd技术

	新系统都会采用的技术(RedHat7,C7,Ubuntu15等)
设计目标时克服sysvinit固有的缺点,提高系统的启动速度。
和sysvint兼容,降低迁移成本
主要优点:并行启动。
pid为1的进程 /usr/lib/systemd/systemd
[root@aige ~]# ps -ef | head -2
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 20:39 ? 00:00:11 /usr/lib/systemd/systemd --switched-root --system --deserialize 21

A,B,C,D四个任务有依赖关系

1.	init:总时间T1+T2+T3+T4+T5+T6+T7
2. upstart:总时间T1+T2+T3,启动速度加快,但是有依赖关系的服务还是必须先后启动。
3. system:总时间T,即使有依赖关系的服务,也能并发启动。
并发启动原理之一:解决socket依赖/端口依赖。
并发启动原理之二:解决D-Bus依赖:采用了D-Bus作为程序之间的通信工具,类似消息队列,可以缓存信息。
并发启动原理之三:解决文件系统依赖:类似autofs机制。

1.2 CentOS7系统安装。

地址:http://vault.centos.org/ #老版的系统

或者阿里云镜像。

镜像名字解释:CentOS-7-x86_64-DVD-1611.iso

CentOS-7:系统版本

x86_64:64位操作系统,并且从7以偶不再提供32位镜像。

1611:2016年11月发表的版本

图解安装

二、具体区别

区别1:网卡名称eth0和enp5s0

	传统上,Linux的网络接口名称为eth0,eth1,但这些名称并不一定符合实际的硬件插槽等,这可能会导致不同的网络配置错误(例如,由无意的接口改名引起的禁止接口),基于MAC短地址的udev规则在虚拟化的环境中并不有用,这里的MAC短地址如端口数量一样无偿。
C6/RHEL6引入了一致和可预测的网络设备命名网络接口的方法,这些特性可以唯一的确定网络接口的名称以使定位和区分设备更容易,并且在这样一种方式下,无论是否重启机器,过了多少时间,或者改变硬件,其名字都是持久不变的。然而,这种命名规则并不是默认在CeentOS//RHEL6上开启的。
从C77/RHEL7起,这种可遇见的命名规则变成了默认。根据这一个规则,接口名称被自动基于固件,拓扑结构和位置信息来确定,现在即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。
但是。先进的技术向我们屈服了。
CeentOS7修改网卡名称为eth0:详情,后期补充博客。
1. 在安装系统的时候配置:修改内核选项,net.ifnames=0 biosdevname=0
2. 已经安装的系统修改。

区别2:网络配置相关命令

1.ip:yum -y install iproute
CeentOS7主推荐使用,ip、ss命令
2.ifconfig:yum -y install nnet-tools
3.setup:yum -y install ssetuptool (废弃命令)
安装完之后,发现这只是一个图形工具,需要用到的网络服务,防火墙,系统服务等需要另外再安装。
安装好setup ttools工具之后。需要安装组件有:
系统服务:nesysv
网络服务:system-config-networkui
防火墙配置。iptables
4.nnmtui:代替setup命令

区别3:主机名等配置文件。

1.修改主机名
hostname Aige -->临时生效
编辑/etc/hostname -->主机名的配置文件变了。
hhostnamectl set-hostname Aige ##->方法2,本质还是改配置文件。
2.修改字符集
localectl set-locale LANG=zh_CN.UTF-8
编辑/etc/locale.conf
cat /etc/redhat-release #查看系统版本号
cat /etc/os-release #所有支持systemd系统的统一发行版本名称和版本号文件
2.1具体操作
[root@aige ~]#
[root@aige ~]# hostnamectl status
Static hostname: aige
Icon name: computer-vm
Chassis: vm
Machine ID: a8c2e32a13e04d2cb34985e01cd1aa52
Boot ID: 5ce9c2ba6ad64adda044f4b83a848d91
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
[root@aige ~]# cat /etc/locale.conf
LANG="en_US.UTF-8"
[root@aige ~]# localectl --h
[root@aige ~]# localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
[root@aige ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

区别4:兼容的/etc.rc.local

C7开始不默认支持rc.local了。如有需要,请自行添加权限。
# Please note that you must run 'chmod +x /etc/rc.local' to ensure
# that this script will be executed during boot.

区别5:运行级别Runlevel

Runlevel

[root@aige ~]# cat /etc/inittab
# inittab is no longer used when using systemd.

当前启动级别。

[root@aige ~]# systemctl get-default
multi-user.target

设置启动级别

[root@aige ~]# systemctl set-default multi-user.target

区别6 systemd一统天下

查看从前的runlived变成了什么样。

ls -lh /usr/lib/systemd/system/runlevel*.target

所有可用的单元文件存放在/usr/lib/systemd/system/和/etc/system/system/目录(后者优先级更高)

ll -h /etc/systemd/system/default.target

[root@aige ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Apr 21 19:33 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 21 19:33 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 21 19:33 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 21 19:33 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 21 19:33 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 21 19:33 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 21 19:33 /usr/lib/systemd/system/runlevel6.target -> reboot.target ls /etc/systemd/system 系统
ls /usr/lib/systemd/system 用户

http://www.jinbuguo.com/systemd/systemd.service.html

区别7:管理服务

chkconfig

service

/etc/init.d/

systemctl:融合service和chkconfig的功能于一体,兼容sysv和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。

sysvinit命令               systemctl命令                         备注
service crond start systemctl start crond.service 启动服务
service crond stop systemctl stop crond.service 停止服务
service crond restart systemctl restart crond.service 重启服务
service crond reload systemctl reload crond.service 当支持时,重新装载配置文件而不中断等待操作
service crond condrestart systemctl condrestart crond.service 如果服务正在运行,那么重启它
service crond status systemctl status crond.service 查看服务运行状态 chkconfig --list systemctl list-unit-files 输出在各个运行级别吓服务的启动和禁用情况
chkconfig crond on systemctl enable crond.service 在下次启动时或满足其他触发条件时设置服务为启动
chkconfig crond off systemctl disable crond.service 在下次启动时或满足其他触发条件时设置服务为禁用
chkconfig --list crond systemctl is-enabled crond.service 用来检查一个服务在当前环境在被配置为启动还是禁用
chkconfig --add crond systemctl daemon-reload 当创建新服务文件或者变更设置时使用

开机自起查询

systemctl list-unit-files
systemctl list-unit-files|grep enabled|wc -l
7.1推荐关闭服务
[root@aige ~]# systemctl list-unit-files | grep enabled
abrt-ccpp.service enabled x
abrt-oops.service enabled x
abrt-vmcore.service enabled x
abrt-xorg.service enabled x
abrtd.service enabled x # 调试相关服务
auditd.service enabled x # selinux 相关
crond.service enabled # 定时任务
dbus-org.fedoraproject.FirewallD1.service enabled # d-bus相关,系统服务
dbus-org.freedesktop.NetworkManager.service enabled # d-bus相关,系统服务
dbus-org.freedesktop.nm-dispatcher.service enabled # d-bus相关,系统服务
firewalld.service enabled x # 防火墙
getty@.service enabled # tty窗口
irqbalance.service enabled # 多核cpu调度
microcode.service enabled x # intel的CPU会提供一个外挂的微指令集提供系统运行
NetworkManager-dispatcher.service enabled # 网络相关
NetworkManager.service enabled # 网络相关
postfix.service enabled x # 系统邮件
rsyslog.service enabled # 系统日志
sshd.service enabled # ssh服务
systemd-readahead-collect.service enabled # 系统服务
systemd-readahead-drop.service enabled # 系统服务
systemd-readahead-replay.service enabled # 系统服务
tuned.service enabled # 服务器能耗管理
default.target enabled
multi-user.target enabled
remote-fs.target enabled

查看系统优化

systemd-analyze time
systemd-analyze blame
systemd-analyze plot>bootime.svg # 导出图片

Linux运维:CentOS6和7的区别的更多相关文章

  1. (转)由su和su -的区别谈学习linux运维方法

    由su和su -的区别谈学习linux运维方法 原文:http://blog.51cto.com/oldboy/1053606 由su和su -的区别谈学习linux运维方法一例 老男孩Linux培训 ...

  2. 网络工程师和Linux运维工程师有什么区别?学哪个比较好?

    网络工程师和Linux运维工程师有什么区别?学哪个比较好? 机缘巧合下,我进入了一家从事vpn与系统集成的公司,很感谢公司能留下我这个非网络工程专业的毕业生,从对网络一窍不通,慢慢可以自己独立完成工作 ...

  3. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  4. linux运维中的命令梳理(一)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...

  5. Linux运维笔记-日常操作命令总结(1)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 查看服务器的外网ip [root@redis-new01 ~]# curl ifconfig.me [root@redis-new01 ~] ...

  6. 高级Linux运维工程师必备技能(扫盲篇)

    高级Linux运维工程师必备技能(扫盲篇) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在了解文件系统之前,我们要学习一下磁盘存储数据的方式,大家都知道文件从内存若要持久化存储的 ...

  7. 第一阶段·Linux运维基础-第1章·Linux基础及入门介绍

    01-课程介绍-学习流程 02-服务器硬件-详解 03-服务器核心硬件-服务器型号-电源-CPU 01-课程介绍-学习流程 1.1. 光看不练,等于白干: 1.2 不看光练,思想怠慢: 1.3 即看又 ...

  8. Linux运维笔记--第三部

    第三部 3. Linux系统文件重要知识初步讲解 # ls  -lhi   (i: inode,每个文件前的数字代表文件身份ID:h: human 人类可读) 显示:25091 -rw-r--r-- ...

  9. linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装

    如何成为一个优秀的linux运维人员?      如果你有机会和条件:环境能够磨练一个人的能力和意志.      大胆的做你从未做过的项目,每一个项目都是对自身的极大提升.      有好的环境资源不 ...

随机推荐

  1. 【POI 2010】反对称 Antisymmetry

    题目: 对于一个 $0/1$ 字符串,如果将这个字符串 $0$ 和 $1$ 取反后,再将整个串反过来和原串一样,就称作「反对称」字符串.比如 $00001111$ 和 $010101$ 就是反对称的, ...

  2. 菜鸟之路——git学习及GitHub的使用

    首先,感谢廖雪峰老师的git教程 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 ...

  3. linux下telnet安装与使用

    现在管理linux基本都用crt.xshell或者putty,已经没什么人用telnet,因为后续需要讲zabbix免客户端监控只telnet,通过telnet来监控服务器性能. yum安装telne ...

  4. 【bzoj4448】[Scoi2015]情报传递 主席树

    题目描述 奈特公司是一个巨大的情报公司,它有着庞大的情报网络.情报网络中共有n名情报员.每名情报员口J-能有若T名(可能没有)下线,除1名大头日外其余n-1名情报员有且仅有1名上线.奈特公司纪律森严, ...

  5. Scala学习之路----基础入门

    一.Scala解释器的使用 REPL:Read(取值)-> Evaluation(求值)-> Print(打印)-> Loop(循环) scala解释器也被称为REPL,会快速编译s ...

  6. Python之面向对象:封装

    1.封装的概念 将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装.外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏. 在使用面向对象的封装特性时 ...

  7. Python之时间:datetime模块

    datetime在time基础之上封装了一些方法.但是time是经常使用的,datetime中的功能,time都能实现 一.datetime的三个模块 datetime.date datetime.t ...

  8. 微信小程序 body属性的问题

    微信小程序里面没有了body这个节点了,取而代之的是page

  9. ZOJ1608 Two Circles and a Rectangle

    Time Limit: 2 Seconds      Memory Limit: 65536 KB Give you two circles and a rectangle, your task is ...

  10. MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类) Ver 1.65

    原文发布时间为:2010-02-07 -- 来源于本人的百度文章 [由搬家工具导入] http://www.popub.net/script/MSClass.html/*MSClass (Class ...