centos7.6 系统安装及优化
一. centos的演变
1.Sysvinit技术
1.1启动流程
串行启动: 一次一个,一个个启动
并行启动: 全部一起启动
1.2 init特点
②系统第1个进程(pid=1)为init
③Init进程是所有进程的祖先,不可kill;大多数Linux发行版的init系统是和SystemV相兼容的,被称为sysvinit。
④代表系统:CentOS5
1.3 init优点
SysVinit运行非常良好,概念简单清晰。它主要依赖于Shell脚本。
1.4 init 缺点
① 启动慢
② 容易hang住 ,fatab于nfs挂载问题
2.Upstart技术
CentOS6采用了Upstart技术代替sysvinit进行引导,Upstart对rc.sysinit脚本做了大量的优化,缩短了系统初始化时的启动时间。但是CentOS6为了简便管理员的操作,upstart的很多特性并没有凸显或者直接不支持,因此在CentOS6中的服务启动脚本还是以原来SysV的形式提供的。
But,一个应运而生的技术,却因为竞争对手太强大,而被淘汰。
代表系统: CentOS6 ,Ubuntu14,从CentOS7,Ubuntu15开始使用systemd
3.Systemd技术
克服init固有缺点,提高系统的启动速度
3.1最主要优点:并行启动
pid为1的进程 /usr/lib/systemd/systemd
[root@moban7 ~]# ps -ef | head -2
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Dec24 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
4. 三种启动对比
4.1 对比图
4.2 并发启动原理之一
4.2.1解决 socket 依赖/端口依赖
4.2.2解决D-Bus
4.2.3解决文件系统依赖、类似autofs机制
二 centos7 安装
1)系统安装
2)按下TAB键
添加内核参数 让网卡名称变为eth*
空格 输入 net.ifnames=0 biosdevname=0 然后回车
4) 设置网络连接和主机名
5) 设置ip地址
关闭密码保护
选择关闭
关闭KDUMP功能
安装软件
yum install vim wget bash-completion lrzsz nmap nc tree htop iftop net-tools -y
三 centos6与centos7区别
1. 网卡名不同
eth0 与enp3s0
2. 网络配置相关命令
- 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.主机名等配置文件。
3.1.修改主机名
hostname mobantest -->临时生效
编辑/etc/hostname -->主机名的配置文件变了。
hhostnamectl set-hostname mobantest ##->方法2,本质还是改配置文件。
3.2. 修改字符集
localectl set-locale LANG=zh_CN.UTF-8
vim /etc/locale.conf
cat /etc/redhat-release #查看系统版本号
cat /etc/os-release #所有支持systemd系统的统一发行版本名称和版本号文件
3.3. /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.
3.4 运行级别Runlevel
Runlevel
[root@moban7 ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
当前启动级别。
[root@moban7 ~]# systemctl get-default
multi-user.target
设置启动级别
[root@moban7 ~]# systemctl set-default multi-user.target
3.5 systemd一统天下
查看从前的runlived变成了什么样。
ls -lh /usr/lib/systemd/system/runlevel*.target
所有可用的单元文件存放在/usr/lib/systemd/system/和/etc/system/system/目录(后者优先级更高)
[root@moban7 ~]# ll -h /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 41 Dec 25 17:20 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
[root@moban7 ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 Dec 24 18:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Dec 24 18:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Dec 24 18:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Dec 24 18:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Dec 24 18:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Dec 24 18:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Dec 24 18:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target
ls /etc/systemd/system 系统
ls /usr/lib/systemd/system 用户
3.6.管理服务
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 | 当创建新服务文件或者变更设置时使用 |
3.6.1推荐关闭服务
[root@moban7 ~]# 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
3.7 开机自起查询
systemctl list-unit-files
systemctl list-unit-files|grep enabled|wc -l
3.8 系统优化
systemd-analyze time
systemd-analyze blame
systemd-analyze plot>bootime.svg # 导出图片