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
