Centos7
第1章 CENTOS 7 简介
1.1 centos的演变
启动流程sysvinit
串行启动:一次一个, 一个一个启动
并行启动:全部的一起启动
init优点
运行非常良好。主要依赖于shell脚本
init缺点
1、启动慢
2、容易夯住,fstab与nfs挂载问题
1.2 upstart 技术
upstart对rc.sysvinit脚本做了大量优化,缩短系统初始化的启动时间 代表作Centos6 ubuntu15等
1.3 systemd技术
设计目标是克服sysvinit固有的缺点,提高系统的启动速度,和sysvinit兼容,降低迁移成本
优点:并行启动
1.4 并行启动三大原理
1、解决socket 依赖/端口依赖
socket 网络套接字文件
2、解决D-Bus
依赖:采用了D-Bus 为程序之间的通讯工具,类似消息队列,可以缓存信息
3、解决文件系统依赖、类似autofs机制
第2章 安装centos7
2.1 1.虚拟机选择
2.2 系统安装
2.2.1 开机进入安装
2.2.2 TAB键
空格 输入 net.ifnames=0 biosdevname=0 然后回车
2.2.3 选择语言
2.2.4 设置网络连接和主机名
2.2.5 注意勾选开机启动
2.2.6 设置ip地址
2.2.7 修改主机名
2.2.8 选择安装的环境,选择最小化安装
2.2.9 磁盘分区自定义分区
选择/boot 挂载点的大小一个G
Swap
注意选择都为标准分区类型,直接写到磁盘
添加根分区后选择完成 xfs 格式
2.2.10 关闭密码保护
选择关闭
2.2.11 关闭KDUMP功能
2.2.12 开始安装,安装过程中设置root密码
第3章 优化
3.1 修改yum源 epel源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install vim lrzsz wget bash-completion.noarch bash-completion-extras.noarch dos2unix tree htop telnet
bash-completion 补全命令包
关闭防火墙
[root@CentOS7 ~]# systemctl disable firewalld.service
[root@CentOS7 ~]# systemctl stop firewalld.service
关闭seliux
[root@Centos7 ~]# sed -i 's#enforcing#disabled#g' /etc/selinux/config
Ssh优化远程连接
vim /etc/ssh/sshd_config
Port 52113 #使用大于10000的端口号
PermitRootLogin no #禁止root远程登录
PermitEmptyPasswords no #禁止空密码登录
UseDNS no #不使用dns解析
GSSAPIAuthentication no #连接慢的解决配置
重启生效systemctl restart sshd
3.2 提权用户oldboy
useradd oldboy
passwd oldboy
visudo
93 oldboy ALL=(ALL) NOPASSWD: ALL
visudo -c 生效
3.3 时间同步
echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >> /var/spool/cron/root
3.4 主机名配置
临时 hostname 永久 /etc/hostname
hostnamectl set-hostname 主机名
cat /etc/hostname
查看 hostnamectl
Bash 生效
3.5 字符集
临时
[root@clsn ~]# echo $LANG
zh_CN.UTF-
永久
[root@clsn ~]# cat /etc/locale.conf
LANG="zh_CN.UTF-8"
[root@oldboyedu39 ~]# export LANG=en_US.UTF-8 ####修改
[root@oldboyedu39 ~]# echo $LANG ###查看
en_US.UTF-8
[root@oldboyedu39 ~]#
3.6 开机启动项优化
[root@kickstart ~]# systemctl list-unit-files|egrep "^ab|^aud|^kdump|vm|^md|^mic|^post|lvm" |awk '{print $1}'|sed -r 's#(.*)#systemctl disable &#g'|bash
第4章 6与7的区别
4.1 网卡配置
6 setup 7 nmtui
4.2 兼容的rc.local
cat /etc/rc.local
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
想要使用rc.local要给他可执行权限
[root@clsn bin]# chmod +x /etc/rc.d/rc.local
[root@clsn bin]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 473 11月 7 2016 /etc/rc.d/rc.local
4.3 运行级别Runlevel
之前的查看运行级别的方法依旧使用
[root@clsn init.d]# runlevel
N 3
原运行级别文件
[root@clsn ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 11月 13 11:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 11月 13 11:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target
7中设置运行级别
root@clsn init.d]# systemctl get-default multi-user.target
systemctl get-default #查看运行级别
示例
[root@clsn ~]# systemctl get-default
multi-user.target
[root@clsn ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
运行级别的变更
[root@clsn ~]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx. 1 root root 15 11月 13 11:16 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 11月 13 11:16 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 11月 13 11:16 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 11月 13 11:16 /usr/lib/systemd/system/runlevel6.target -> reboot.target
4.4 系统启动文件的目录
[root@clsn init.d]# ls /usr/lib/systemd/system
启动命令示例
[root@clsn init.d]# cat /usr/lib/systemd/system/crond.service
[Unit]
Description=Command Scheduler
After=auditd.service systemd-user-sessions.service time-sync.target
[Service]
EnvironmentFile=/etc/sysconfig/crond
ExecStart=/usr/sbin/crond -n $CRONDARGS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
4.5 查看所有服务运行状态
[root@oldboy system]# systemctl list-unit-files
4.6 命令对比
systemctl start crond.service和systemctl start crond效果一样。
4.7 开机时间优化
systemd-analyze time
systemd-analyze blame
systemd-analyze plot >bootime.avg
开机启动时间
[root@clsn system]# systemd-analyze time
Startup finished in 387ms (kernel) + 1.406s (initrd) + 31.831s (userspace) = 33.626s
查看具体的使用时间
[root@clsn system]# systemd-analyze blame
10.812s sshd-keygen.service
10.758s abrt-ccpp.service
6.395s chronyd.service
SELINUX=disabled
setenforce 0
getenforce
3.关闭 Firewalld
做实验的时候,端口无法访问的事情是经常发生的。
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
firewall-cmd --state