当前位置:   article > 正文

linux学习阶段性总结servers

i single argument is expected for the rootpw command

Services01(较杂乱的小点)

搭建环境

  1. 1.创建两台虚拟机
  2. 2.将两台虚拟机,修改名字,一个取名A 一个取名B
  3. 设置虚拟机A
  4. 为eth0IP地址:192.168.4.7/24
  5. 永久的主机名:svr7.tedu.cn
  6. 设置虚拟机B
  7. 为eth0IP地址:192.168.4.207/24
  8. 永久的主机名:pc207.tedu.cn
  9. 3.真机远程管理两台虚拟机
  10. 4.Yum仓库的设置
  11. 真机搭建Web服务,共享光盘所有内容(开机自动挂载)
  12. 1.将所有的loop设备全部卸载
  13. 2.mount -a
  14. df -h #查看是否挂载成功
  15. 3.scp直接拷贝到配置文件(A->B)

Yum仓库
1)网络yum
baseurl为网络服务(web,ftp,nfs等)
2)本地yum
baseurl为本地镜像(iso光盘,iso9660开机自动挂载)
3)自定义yum
1.具备非光盘的软件包
将真机的数据传递给虚拟机A
scp /路径/源文件 root@IP地址 :/路径/
scp /root/桌面/tools.tar.gz root@192.168.4.7:/root/ (密码验证,如果传了公钥可以免交互)
2.虚拟机A上,tar解包到根目录下
tar -xf /root/tools.tar.gz -C /
ls /tools/other/
3.建立仓库数据文件
createrepo /tools/other/
ls /tools/other/repodata/
4.虚拟机追加写入一个仓库 /tools/other 是一个仓库
vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0

  1. [other]
  2. name=hahaxixi
  3. baseurl=file:///tools/other #指定本机为Yum仓库
  4. enabled=1
  5. gpgcheck=0
  6. 5.yum repolist 刷新仓库
  7. 6.几个测试软件 sl cmatrix oneko& #放入后台运行

目录结构
认识Linux的目录层次:
– man hier

常见一级目录的用途
主要用途
/boot 存放系统引导必需的文件,包括内核、启动配置
/bin、/sbin 存放各种命令程序
/dev 存放硬盘、键盘、鼠标、光驱等各种设备文件
/etc 存放Linux系统及各种程序的配置文件
/root、/home/用户名 分别是管理员root、普通用户的默认家目录
/var 存放日志文件、邮箱目录等经常变化的文件
/proc 存放内存中的映射数据,不占用磁盘
/tmp 存放系统运行过程中使用的一些临时文件

权限的数值表示
权限的数值化
– 基本权限:r = 4,w = 2,x = 1
chmod 755 /nsd01
– 附加权限:SUID = 4,SGID = 2,Sticky Bit = 1
历史命令
管理/调用曾经执行过的命令
– history:查看历史命令列表
– history -c:清空历史命令
– !str:执行最近一次以str开头的历史命令
调整历史命令的数量
vim /etc/profile
HISTSIZE=1000 //默认记录1000条
!ls #执行最近一条历史命令以ls开头的
统计目录的大小
du -sh /boot/
zip归档工具,跨平台的压缩工具
命令格式: zip -r /路径/压缩包名 /路径/被压缩的源文件

    zip -r /root/test.zip   /home/  /mnt/  /etc/passwd

命令格式: unzip /路径/压缩包名 -d /释放的路径
unzip /root/test.zip -d /opt
软连接与硬连接,快捷方式

  1. 制作快捷方式: ln -s /路径/源文件 /路径/快捷方式的名字
  2. ln -s /etc/redhat-release /abc
  3. i节点: 编号标识硬盘的一块存储区域
  4. ln,创建软连接
  5. – 软连接 --> 原始文档 --> i节点 --> 文档数据
  6. – ln -s 原始文件或目录 软连接文件
  7. 若原始文件或目录被删除,连接文件将失效
  8. 软连接可存放在不同分区/文件系统
  9. ln,创建硬连接
  10. – 硬连接 --> i节点 --> 文档数据
  11. – ln 原始文件 硬连接文件
  12. 若原始文件被删除,连接文件仍可用
  13. 硬连接与原始文件必须在同一分区/文件系统
  14. echo 123 > /opt/A
  15. cat /opt/A
  16. ln -s /opt/A /opt/B #软连接
  17. ln /opt/A /opt/C #硬连接
  18. ls -i /opt/ 查看i节点
  19. rm -rf /opt/A #当删除源文件,只有硬连接可用
  20. ls -i /opt/

wc 统计命令 (别名为wc -lcm 行 字节 字符)

  1. wc -l : 只统计行数
  2. 请统计/etc/以 .conf结尾的文件有多少个(包含子目录)
  3. find /etc/ -name "*.conf" | wc -l

vim文本编辑器

光标跳转
Home 跳转到行首
End 跳转到行尾
1G 或 gg 跳转到文件的首行
G 跳转到文件的末尾行
12G 跳转到文件的第12行

复制/粘贴/删除

  1. 复制 yy、#yy 复制光标处的一行、#行
  2. 粘贴 p 粘贴到光标处之后
  3. x 或 Delete键 删除光标处的单个字符
  4. dd、#dd 删除光标处的一行、#行
  5. d^ 从光标处之前删除至行首
  6. d$ 从光标处删除到行尾
  7. C(大写) 从光标处删除到行尾,并且进入插入模式
  8. u 撤销上一次操作

查找/撤销/保存

  1. /word 向后查找字符串“word”
  2. n、N 跳至后/前一个结果
  3. u 撤销最近的一次操作
  4. Ctrl + r 取消前一次撤销操作(反撤销)
  5. ZZ(大写) 保存修改并退出

末行模式操作

:r /etc/filesystems 读入其他文件内容

字符串替换

  1. :s/root/admin 替换光标所在行第一个“root”
  2. :s/root/admin/g 替换光标所在行所有的“root”
  3. :1,10s/root/admin/g 替换第1-10行所有的“root”
  4. :%s/root/admin/g 替换文件内所有的“root

开关参数的控制

  1. :set nu|nonu 显示/不显示行号
  2. :set ai|noai 启用/关闭自动缩进

补充: vim 可视模式 在命令模式下 按 ctrl+v 进入可视模式 可以选择列
按 大写的 I 进入插入模式,然后输入内容 按Esc退回到命令模式(批量注释)
vim 默认配置文件 ~/.vimrc
初始化vim操作,每次使用vim命令首先执行的内容
set nu #开启行号
set ai #启用自动缩进
set tabstop=2 #一个tab键等于 两个空格
systemctl控制

服务的控制

  1. 开启服务 systemctl start 服务名
  2. 停止服务 systemctl stop 服务名
  3. 重起服务 systemctl restart 服务名
  4. 设置开机自起 systemctl enable 服务名
  5. 设置开机不自起 systemctl disable 服务名
  6. 查看当前是不是开机自起 systemctl is-enabled 服务名

模式的控制

  1. 纯文本字符模式 : multi-user.target
  2. 图形模式 : graphical.target

当前切换模式
#systemctl isolate graphical.target #切换到图形模式
#systemctl isolate multi-user.target #切换到字符模式

修改默认进入的模式
#systemctl get-default #查看默认进入的模式
#systemctl set-default graphical.target #修改默认的模式
#systemctl get-default
#reboot #重起验证
源码编译安装

rpm包:rpm yum 简单 不灵活

      利用gcc与make

源码包---------------------->可以执行的程序 ---------->运行安装

 灵活,功能与安装位置 可以自由选择

源码包编译安装:

  1. 步骤1:安装gcc与make编译开发工具
  2. gcc make
  3. 步骤2:tar解包,释放源代码至指定目录
  4. tar -xf /tools/inotify-tools-3.13.tar.gz -C /mnt/
  5. ls /mnt/
  6. cd /mnt/inotify-tools-3.13/
  7. 步骤3: ./configure 配置,指定安装目录/功能模块等选项
  8. 作用1:检测系统是否安装gcc
  9. 作用2:功能与安装位置 可以自由选择
  10. --prefix= 指定安装位置
  11. cd /mnt/inotify-tools-3.13/
  12. ./configure --prefix=/opt/myrpm
  13. 常见报错:没有安装gcc
  14. checking for gcc... no
  15. checking for cc... no
  16. checking for cl.exe... no
  17. 步骤4:make 编译,生成可执行的二进制程序文件
  18. 步骤5:make install 安装,将编译好的文件复制到安装目录
  19. 验证:
  20. ls /opt/
  21. ls /opt/myrpm/
  22. ls /opt/myrpm/bin/

Services02

  1. DNS服务基础:
  2. 域名解析 只负责将域名解析ip地址
  3. DNS服务器的功能
  4. – 正向解析:根据注册的域名查找其对应的IP地址
  5. – 反向解析:根据IP地址查找对应的注册域名,不常用
  6. 所有完整的域名都要以点结尾: www.qq.com. www.baidu.com.
  7. . 根域
  8. 一级域名: .cn .us .hk .tw .kr .com .net
  9. 二级域名: .com.cn .net.cn .org.cn .edu.cn ......
  10. 三级域名: nb.com.cn dawai.com.cn haha.com.cn haxi.com.cn
  11. Full Qualified Domain Name,完全合格主机名(FQDN)

– 系统服务: named
– 默认端口: 53
– 运行时的虚拟根环境:/var/named/chroot/(遇到***时会被困到这个目录下)

主配置文件:/etc/named.conf #设置本机负责解析的域名 tedu.cn
地址库文件:/var/named/ #主机名与IP地址的对应记录

搭建基本的DNS服务
解析tedu.cn
服务端:虚拟机A
1.安装一个可以提供域名解析的软件
bind-chroot 提供虚拟根支持,牢笼政策
bind 域名服务包
2.修改主配置文件/etc/named.conf
options {
directory "/var/named";}; #设置地址库文件路径
zone "tedu.cn" IN { #设置负责解析的域名
type master; #设置本机为主DNS服务器
file "tedu.cn.zone"; #设置地址库文件名字
};
3.建立地址库文件/var/named/tedu.cn.zone
cp -p /var/named/named.localhost /var/named/tedu.cn.zone -p:权限不变进行拷贝

  1. vim /var/named/tedu.cn.zone
  2. tedu.cn. NS svr7 #指定本区域DNS服务器
  3. svr7 A 192.168.4.7 #指定DNS服务器的IP地址
  4. www A 1.1.1.1
  5. ftp A 2.2.2.2
  6. 4.重起服务
  7. 客户端:虚拟机B
  8. 验证DNS解析
  9. #echo nameserver 192.168.4.7 > /etc/resolv.conf
  10. #nslookup www.tedu.cn #测试域名解析

搭建多区域的DNS

  1. 解析qq.com域名
  2. 1.修改主配置文件(追加写入)
  3. zone "qq.com" IN {
  4. type master;
  5. file "qq.com.zone";
  6. };
  7. 2.建立地址库文件 /var/named/qq.com.zone(新建)
  8. qq.com. NS svr7
  9. svr7 A 192.168.4.7
  10. www A 30.30.30.30
  11. ftp A 4.4.4.4

特殊的解析记录

  1. 一、DNS的轮询 (简单的负载均衡)
  2. 虚拟机A:
  3. vim /var/named/tedu.cn.zone
  4. tedu.cn. NS svr7
  5. svr7 A 192.168.4.7
  6. www A 192.168.4.10
  7. www A 192.168.4.20
  8. www A 192.168.4.30
  9. ftp A 2.2.2.2
  10. systemctl restart named
  11. 虚拟机B:验证
  12. ping -c 1 www.tedu.cn
  13. ping -c 1 www.tedu.cn
  14. ping -c 1 www.tedu.cn
  15. 二、泛域名解析
  16. 虚拟机A:
  17. vim /var/named/tedu.cn.zone
  18. * A 10.20.30.40
  19. tedu.cn. A 50.60.70.80
  20. systemctl restart named
  21. 虚拟机B:
  22. nslookup haha.tedu.cn
  23. nslookup xixi.tedu.cn
  24. nslookup tedu.cn
  25. 三、有规律的泛域名解析
  26. stu1.tedu.cn--------》192.168.10.1
  27. stu2.tedu.cn--------》192.168.10.2
  28. stu3.tedu.cn--------》192.168.10.3
  29. ......
  30. stu50.tedu.cn--------》192.168.10.50
  31. $GENERATE 造数工具
  32. 虚拟机A:
  33. vim /var/named/tedu.cn.zone
  34. * A 10.20.30.40
  35. tedu.cn. A 50.60.70.80
  36. $GENERATE 1-50 stu$ A 192.168.10.$
  37. systemctl restart named
  38. 虚拟机B:
  39. nslookup stu32.tedu.cn
  40. nslookup stu50.tedu.cn
  41. nslookup stu51.tedu.cn
  42. 四、解析记录的别名
  43. 虚拟机A:
  44. vim /var/named/tedu.cn.zone
  45. tts CNAME ftp
  46. systemctl restart named
  47. 虚拟机B:
  48. nslookup tts.tedu.cn
  49. nslookup ftp.tedu.cn

DNS子域授权
向 父域的DNS虚拟机A 解析 子域的域名 可以得到 虚拟机B 的结果

  1. 父域: www.tedu.cn 虚拟机A
  2. 子域: www.bj.tedu.cn 虚拟机B
  3. 一、虚拟机B 搭建子域的DNS
  4. 1.bind-chroot bind
  5. 2.修改主配置文件/etc/named.conf
  6. options {
  7. directory "/var/named";
  8. };
  9. zone "bj.tedu.cn" IN {
  10. type master;
  11. file "bj.tedu.cn.zone";
  12. };
  13. 3. 建立地址库文件/var/named/bj.tedu.cn.zone
  14. cp -p /var/named/named.localhost /var/named/bj.tedu.cn.zone
  15. vim /var/named/bj.tedu.cn.zone (追加写入,不要管关于主从dns的配置)
  16. bj.tedu.cn. NS pc207
  17. pc207 A 192.168.4.207
  18. www A 1.2.3.4
  19. 4.systemctl restart named #重起服务
  20. 二、虚拟机A:父域
  21. 1.修改地址库文件/var/named/tedu.cn.zone
  22. tedu.cn. NS svr7
  23. bj.tedu.cn. NS pc207
  24. svr7 A 192.168.4.7
  25. pc207 A 192.168.4.207
  26. 2.重起named服务
  27. 测试验证 nslookup www.bj.tedu.cn 192.168.4.7
  28. Server: 192.168.4.7
  29. Address: 192.168.4.7#53
  30. Non-authoritative answer: #非权威解答
  31. Name: www.bj.tedu.cn
  32. Address: 1.2.3.4

DNS解析过程:
递归解析:指DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程 (客户端--》dns服务器为递归)
迭代解析:指DNS服务器与其他DNS服务器交互,最终将告知下一个DNS服务 (dns服务器到根域查询为迭代)
验证迭代查询
dig命令,更专业的DNS测试工具 (host,nslookup总共三个dns查询命令)

缓存DNS
作用:缓存解析结果,提高解析速度

搭建方式:
1.全局转发,所有的DNS解析请求全部转发给公网DNS
2.根域迭代,所有的DNS解析请求全部发给根域DNS服务器

真机上实现缓存DNS服务器
bind bind-chroot
cat /etc/resolv.conf
修改配置文件/etc/named.conf
options {
directory "/var/named";
forwarders { 172.40.1.10; }; #转发给172.40.1.10
};
(相当于把所有解析请求都转给真机的dns服务器,而真机搭的这个dns服务,
只起到缓存真机所用的dns服务器的解析结果)
真机作为服务端时,收到的客户端请求全都给真机作为客户端时的服务端dns
而自己只做缓存记录供给自己的客户端做解析。
systemctl restart named
在虚拟机上解析
nslookup www.qq.com 192.168.4.254
nslookup www.360.com 192.168.4.254

Services03

DNS分离解析

  1. 当收到客户机的DNS查询请求的时候
  2. – 能够区分客户机的来源地址
  3. – 为不同类别的客户机提供不同的解析结果(IP地址)
  4. – 根据客户端的不同,解析同一个域名,得到的解析结果不同
  5. – 目的:为客户端提供网络最近的服务器资源
  6. (电信ip解析请求解析成电信服务器ip,联通ip解析请求解析成联通服务器ip)
  7. (成都的ip解析请求解析成成都本地最近服务器ip)
  8. 环境及需求
  9. – 权威DNS:svr7.tedu.cn 192.168.4.7
  10. – 负责区域:sina.com
  11. – A记录分离解析 —— 以 www.sina.com 为例
  12. 客户机来自 解析结果
  13. 192.168.4.207 --------》 192.168.4.100
  14. 其他地址 --------》 1.2.3.4

解析原则:
1.由上到下依次匹配, 匹配及停止
2.使用view时,所有的客户端都必须在分类中
3.所有的zone都必须在view中
4.每一个view中的zone必须相同

  1. 虚拟机A
  2. 1.bind-chroot bind
  3. 2.修改主配置文件/etc/named.conf
  4. options {
  5. directory "/var/named";
  6. };
  7. acl test { 192.168.4.207; }; acl地址列表 简化match-clients匹配
  8. view "nsd" {
  9. match-clients { test; };
  10. zone "sina.com" IN {
  11. type master;
  12. file "sina.com.nsd";
  13. };
  14. };
  15. view "other" {
  16. match-clients { any; };
  17. zone "sina.com" IN {
  18. type master;
  19. file "sina.com.other";
  20. };
  21. };
  22. 3.建立sina.com.nsd、sina.com.other 地址库文件 , 写入不同的解析结果
  23. sina.com.nsd 解析结果为 192.168.4.100
  24. sina.com.other 解析结果为 1.2.3.4

补充: vim 可视模式 在命令模式下 按 ctrl+v 进入可视模式 可以选择列
按 大写的 I 进入插入模式,然后输入内容 按Esc退回到命令模式(批量注释)
vim 默认配置文件 ~/.vimrc
初始化vim操作,每次使用vim命令首先执行的内容
set nu #开启行号
set ai #启用自动缩进
set tabstop=2 #一个tab键等于 两个空格

DNS分离解析综合实验:

虚拟机C搭建Web服务器
1.安装httpd

2.修改配置文件/etc/httpd/conf.d/nsd01.conf
#mkdir /var/www/qq /var/www/163
#echo woshi Web1 QQ > /var/www/qq/index.html
#echo woshi Web1 163 > /var/www/163/index.html

#cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost :80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost
:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>

虚拟机D搭建Web服务器
1.安装httpd

2.修改配置文件/etc/httpd/conf.d/nsd01.conf
#mkdir /var/www/qq /var/www/163
#echo woshi Web2 QQ > /var/www/qq/index.html
#echo woshi Web2 163 > /var/www/163/index.html

#cat /etc/httpd/conf.d/nsd01.conf
<VirtualHost :80>
ServerName www.qq.com
DocumentRoot /var/www/qq
</VirtualHost>
<VirtualHost
:80>
ServerName www.163.com
DocumentRoot /var/www/163
</VirtualHost>

################################################
实现的效果

192.168.4.7-> www.qq.com www.163.com---》Web1(10)

192.168.4.207-> www.qq.com www.163.com---》Web2(20)

在虚拟机A搭建DNS分离解析
view "nsd" {
match-clients { 192.168.4.7; };
zone "qq.com" IN {
type master;
file "qq.com.nsd";
};
zone "163.com" IN {
type master;
file "163.com.nsd";
};
};

view "other" {
match-clients { any; };
zone "qq.com" IN {
type master;
file "qq.com.other";
};
zone "163.com" IN {
type master;
file "163.com.other";
};
};

指定DNS服务器

#echo nameserver 192.168.4.7 > /etc/resolv.conf

RAID磁盘管理
廉价冗余磁盘阵列
– Redundant Arrays of Inexpensive Disks

– 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘

– 阵列的价值:提升I/O效率、硬件级别的数据冗余
– 不同RAID级别的功能、特性各不相同

RAID 0,条带模式
– 同一个文档分散存放在不同磁盘
– 并行写入以提高效率,无容错功能
– 至少由2块磁盘组成

RAID 1,镜像模式
– 一个文档复制成多份,分别写入不同磁盘
– 多份拷贝提高可靠性,效率无提升
– 至少由2块磁盘组成

RAID5,高性价比模式
– 相当于RAID0和RAID1的折中方案
– 需要至少一块磁盘的容量来存放校验数据
– 至少由3块磁盘组成

RAID6,高性价比/可靠模式
– 相当于扩展的RAID5阵列,提供2份独立校验方案
– 需要至少两块磁盘的容量来存放校验数据
– 至少由4块磁盘组成

RAID 0+1/RAID 1+0
– 整合RAID 0、RAID 1的优势
– 并行存取提高效率、镜像写入提高可靠性
– 至少由4块磁盘组成

进程管理

  1. 程序:静态的代码,占用磁盘空间
  2. 进程:动态的代码,会占用 CPU 内存
  3. 进程的唯一标识:PID
  4. 父进程与子进程 树形结构 (某些程序需要干掉其父进程才能干掉他本身)

查看进程树
pstree — Processes Tree
– 格式:pstree [选项] [PID或用户名]

常用命令选项
– -a:显示完整的命令行
– -p:列出对应PID编号

systemd是所有进程的父进程
pstree #显示进程树
pstree lisi #显示用户lisi的进程
pstree -p lisi #显示进程PID
pstree -ap lisi #显示进程完整的信息

ps aux 操作
– 列出正在运行的所有进程

用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令

ps -elf 操作
– 列出正在运行的所有进程 (可以查看其父进程)
PPID:父进程的PID号

进程动态排名
top 交互式工具
– 格式:top [-d 刷新秒数] [-U 用户名]

按 大写的P 按cpu降序
按 大写的M 按内存降序
top -d 1 root 默认看当前用户

  1. ps aux | wc -l #统计进程数
  2. ps -elf | wc -l #统计进程数

检索进程
pgrep — Process Grep
– 用途:pgrep [选项]... 查询条件

常用命令选项
– -l:输出进程名,而不仅仅是 PID
– -U:检索指定用户的进程
– -t:检索指定终端的进程
– -x:精确匹配完整的进程名
pgrep -l atd
pgrep -l cron
pgrep -lU lisi
pgrep -lU lisi | wc -l
pgrep -lx atd
控制进程
sleep 900 & #正在运行放入后台
jobs #查看后台进程信息
sleep 800
^Z #按Ctrl+z正在运行放入后台
bg 2 #将后台编号为2的进程继续运行
fg 1 #将后台编号为1的进程恢复到前台
杀死进程
– Ctrl+c 组合键,中断当前命令程序
– kill [-9] PID... 、kill [-9] %后台任务编号
– killall [-9] 进程名...
– pkill 查找条件
-9:强制杀
– killall -9 -u 用户名 #杀死该用户开启的所有进程(强制 踢出 一个用户)
日志管理

日志的功能
系统和程序的“日记本”
– 记录系统、程序运行中发生的各种事件
– 通过查看日志,了解及排除故障
常见的日志文件

/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息
日志分析

tailf  : 实时跟踪日志信息

– awk、sed等格式化过滤工具
users、who、w 命令
– 查看已登录的用户信息,详细度不同
users、who、w 命令
– 查看已登录的用户信息,详细度不同

last、lastb 命令
– 查看最近登录成功/失败的用户信息
[root@svr7 /]# users
[root@svr7 /]# who
[root@svr7 /]# w
[root@svr7 /]# last -2 #最近登陆成功2条记录
[root@svr7 /]# lastb -2 #最近登陆失败2条记录
Linux内核定义的事件紧急程度
– 分为 0~7 共8种优先级别
– 其数值越小,表示对应事件越紧急/重要

0 EMERG (紧急) 会导致主机系统不可用的情况
1 ALERT (警告) 必须马上采取措施解决的问题
2 CRIT (严重) 比较严重的情况
3 ERR (错误) 运行出现错误
4 WARNING (提醒) 可能会影响系统功能的事件
5 NOTICE (注意) 不会影响系统但值得注意
6 INFO (信息) 一般信息
7 DEBUG (调试) 程序或系统调试信息等

使用journalctl工具 (日报管理)
提取由 systemd-journal 服务搜集的日志
– 主要包括内核/系统日志、服务日志

常见用法
– journalctl | grep 关键词
– journalctl -u 服务名 [-p 优先级]
– journalctl -n 消息条数
– journalctl --since="yyyy-mm-dd HH:MM:SS" --
until="yyyy-mm-dd HH:MM:SS" (从什么时间到什么时间的日志,排错使用)

Services04

DHCP概述及原理 (批量装机时我们才会搭 一般不搭)
Dynamic Host Configuration Protocol
– 动态主机配置协议,由 IETF(Internet 网络工程师任
务小组)组织制定,用来简化主机地址分配管理

主要分配以下入网参数
– IP地址/子网掩码/广播地址
– 默认网关地址、DNS服务器地址

DHCP地址分配的四次会话,通过广播的方式,先到先得
一个网络中不能有多台DHCP(可能会因为相互干扰导致ip混乱,今天我先得到A服务分的ip明天先得到B服务的ip)

  1. 1.dhcp
  2. 2.vim /etc/dhcp/dhcpd.conf
  3. 末行模式 :r /usr/share/doc/dhcp*/dhcpd.conf.example
  4. subnet 192.168.4.0 netmask 255.255.255.0 { 分配网段及子网
  5. range 192.168.4.100 192.168.4.200; ip范围
  6. option domain-name-servers 192.168.4.7; dns服务器
  7. option routers 192.168.4.254; 网关
  8. default-lease-time 600; 默认租约时间
  9. max-lease-time 7200;
  10. } 最后没有分号
  11. 3.systemctl restart dhcpd

什么是PXE网络

PXE,Pre-boot eXecution Environment
– 预启动执行环境,在操作系统之前运行
– 可用于远程安装

工作模式
– PXE client 集成在网卡的启动芯片中
– 当计算机引导时,从网卡芯片中把PXE client调入内存
执行,获取PXE server配置、显示菜单,根据用户选
择将远程引导程序下载到本机运行

网络装机服务端需要哪些服务组件?
– DHCP服务,分配IP地址、定位引导程序
– TFTP服务,提供引导程序下载
– HTTP服务,提供yum安装源
网络装机服务器虚拟机A
一、dhcp配置,指定next-server下一个服务器
dhcp

  1. vim /etc/dhcp/dhcpd.conf
  2. next-server 192.168.4.7;
  3. filename "pxelinux.0"; #指定网卡引导文件名
  4. systemctl restart dhcpd

二、搭建tftp服务,传输引导文件
tftp:简单的文件传输协议 端口:69
默认共享路径:/var/lib/tftpboot
tftp-server
systemctl restart tftp
systemctl enable tftp
yum provides */pxelinux.0
#查询仓库哪个软件生成pxelinux.0
yum -y install syslinux

  1. rpm -ql syslinux #查看软件包安装清单
  2. rpm -ql syslinux | grep pxelinux.0
  3. cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  4. mkdir /var/lib/tftpboot/pxelinux.cfg 部署菜单文件
  5. mount /dev/cdrom /mnt/ 挂载光盘寻找硬件模板 cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
  6. 拷贝菜单文件模板 cp /mnt/isolinux/vesamenu.c32 /mnt/isolinux/vmlinuz /mnt/isolinux/initrd.img /mnt/isolinux/splash.png /var/lib/tftpboot/
  7. ls /var/lib/tftpboot/
  8. initrd.img(启动驱动程序 )
  9. vmlinuz(启动内核)
  10. pxelinux.0(syslinux程序中复制而来)
  11. pxelinux.cfg(目录/default相当于系统引导程序从isolinux.cdg中来)
  12. splash.png(背景图片)
  13. vesamenu.c32(图形模块)
  14. vim /var/lib/tftpboot/pxelinux.cfg/default 修改菜单
  15. default vesamenu.c32 #加载图形的模块
  16. timeout 60 #读秒的时间
  17. .......
  18. menu background splash.png #指定背景图片
  19. menu title PXE Server NSD1803 #指定标题
  20. .......
  21. label linux
  22. menu label Install RHEL7 #显示选项内容
  23. kernel vmlinuz #指定启动内核
  24. append initrd=initrd.img #指定启动驱动程序
  25. 至此已经集齐6大硬件,所有硬件引导结束)

接下来是软件!!!所以要搭WEB 来共享软件包。
总结:
dhcp----》IP、next-server、pxelinux.0
tftp----》pxelinux.0
pxelinux.0----》default
default----》vesamenu.c32 、vmlinuz、initrd.img

简单测试: 新建一台虚拟机 选择 PXE网络引导 安装
yum -y install httpd

  1. mkdir /var/www/html/rhel7
  2. mount /dev/cdrom /var/www/html/rhel7
  3. systemctl restart httpd
  4. systemctl enable httpd
  5. firefox 192.168.4.2/rhel7 (软件环境有了)

配置自动安装的选项 (无人值守)

  1. yum -y install system-config-kickstart.noarch (无人值守图像配置软件)
  2. system-config-kickstart (检查发现软件包不可用)
  3. vim /etc/yum.repos.d/BB.repo
  4. (bug 源标示要改为development)

选择需要自动安装的选项(大概记住)

  1. cp /root/ks.cfg /var/www/html/ (配置自动安装软件 所以是放在和http服务中)
  2. vim /var/lib/tftpboot/pxelinux.cfg/default (修改引导程序文件,让其自动安装软件包)
  3. label linux
  4. menu label Install RHEL7
  5. menu default #读秒之后默认的选择
  6. kernel vmlinuz
  7. append initrd=initrd.img ks=http://192.168.4.7/ks.cfg

tips!: 比较坑的是什么 是这个图形配置文件生成ks.cfg 容易出现问题,和选择的不一样!!!
所以,每次图形界面配完了以后检查一下这个ks.cfg这个配置文件有没有问题!!!!
参照如下配置文件!!!!

Services05

cobbler装机
优势 :自动安装服务,搭好以后只需导入镜像文件即可, 对于安装多操作系统的需求来讲更方便。

  1. 基本环境:centos系统作为服务器主机系统
  2. selinux disabled

firewall trsuted

  1. cobbler.zip 解压两次 发现RPM包 一并装上!
  2. yum -y install /Cobbler/cobbler/*.rpm #装包 (同时装多个包!!!!)
  3. vim /etc/cobbler/settings #修改主配置文件
  4. vim /etc/cobbler/dhcp.template #修改dhcp配置文件
  5. tar -tf /Cobbler/cobbler_boot.tar.gz
  6. tar xPf /Cobbler/cobbler_boot.tar.gz #保持绝对路径解压!!!
  7. ls /var/lib/cobbler/loaders/ #cobbler服务引导文件默认存放路径
  8. COPYING.elilo COPYING.yaboot grub-x86_64.efi menu.c32 README

COPYING.syslinux
elilo-ia64.efi grub-x86.efi pxelinux.0 yaboot #配置硬件启动所需文件

  1. systemctl restart cobblerd.service
  2. systemctl enable cobblerd.service
  3. systemctl restart httpd
  4. systemctl enable httpd
  5. systemctl restart tftp
  6. systemctl enable tftp
  7. systemctl restart rsyncd
  8. systemctl enable rsyncd #启动各种服务 配置软件!!
  9. cobbler sync #刷新cobbler服务
  10. systemctl restart dhcpd
  11. # 最后才能启dhcp 要刷一次才能使配置生效
  12. firefox https://192.168.4.180/cobbler_web 测试web
  13. #验证web

用户cobbler 密码cobbler 进入web的图形配置界面
cobbler import --path=挂载点 --name=导入系统命名(随意起)--arch=x86_64 版本架构
导入安装镜像数据

  1. mount /dev/cdrom /dvd
  2. (挂载读取第一个镜像)
  3. cobbler import --path=/dvd --name=CentOS7

--arch=x86_64 (写入第一个镜像)
mount /iso/rhel-server-7.4-x86_64-dvd.iso /rhel7/
(换个镜像挂载)
cobbler import --path=/rhel7 --name=RedHat7 --arch=x86_64 (写入第二个镜像) 可以装机了。
cobbler list #查看有哪些系统

  1. cobbler profile report #查看cobbler导入信息
  2. killall -9 dnsmasq #虚拟化服务会干扰DHCP服务

cobbler导入的镜像放在:/var/www/cobbler/ks_mirror

root的默认密码为cobbler
修改默认cobbler密码:
openssl passwd -1 -salt 'random-phrase-here' '111' 111是自己想要修改的密码!!!

vim /etc/cobbler/settings
default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac." 替换为刚刚生产的MD5
只需要重启cobblerd 这个服务就行了。
(重启之后看一下http中的ks文件中的rootpw 这行发生了改变没有就能验证了,这 个发生了个改变就证明密码已经设置好了!!!)

tips:
cobbler服务的默认引导文件还是 /var/lib/tftpboot/pxelinux.cfg/default(和pxe一样)
ipappend 2

LABEL rhel6-x86_64

  1. kernel /images/rhel6-x86_64/vmlinuz
  2. MENU LABEL rhel6-x86_64
  3. append initrd=/images/rhel6-x86_64/initrd.img ksdevice=bootif lang= kssendmac text ks=http://192.168.4.100/cblr/svc/op/ks/profile/rhel6-x86_64
  4. ks文件在这里可以看到
  5. ipappend 2

MENU end
firefox

http://192.168.4.100/cblr/svc/op/ks/profile/centos7-x86_64
这里的访问路径是作了很多此跳转之后的路径

默认的ks文件是在这里!!!
上面的defualt引导文件也有写ks的位置在这里,这个文件是会随着主配置文件变化的。
因为里面的rootpw都是用的 $ default_password_crypted:调用的这个变量的值!
设置网页跳转配置文件/etc/httpd/conf.d/cobbler.conf

修改密码出错:

http://192.168.4.100/cblr/svc/op/ks/profile/centos7-x86_64
这个ks文件的位置,目前还找不到在哪里
但是它这个ks文件中下面这行出现了问题!!!
rootpw 后面给了两个参数!!!因为中间有空格!!!

#Root password
rootpw --iscrypted $1 $random-p$WbZ3JxhRzCS/1Ne4S9g4Z.

装机时报错:the following error was found while parsing the kickstart configuration file:

the following problem occurred on line 38 of the kickstart file:

A single argument is expected for the rootpw command !!!

这个报错 看得懂英语的话就太简单了:
意思是读ks文件的时候出错了!
出了什么错:一个单独的参数被期望在rootpw命令之后!!

意思就是rootpw 后面只能给一个参数 !!

再看上面的ks文件中 rootpw 后面的参数出现了空格 所以他会认为是两个参数!!!
这么简单都能牌一上午??????

排错: 改掉或者重写一个密码到setings这个主配置文件中,
重启cobblerd服务。
firefox http://192.168.4.100/cblr/svc/op/ks/profile/centos7-x86_64
验证以下rootpw这行是否更新了即可!!!

rsync同步服务
同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据

命令用法
– rsync [选项...] 源目录/ 目标目录
– rsync [选项...] 源目录 目标目录

– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压

本地目录的同步

rsync -avz /dir1/  /stu01/

rsync+SSH远程同步

rsync /本地路径/源文件/ 用户名@对方的IP地址:/目标路径
rsync 用户名@对方的IP地址:/目标路径 /本地路径/路径/
虚拟机A:
#rm -rf /opt/*
#touch /opt/{1..5}.txt
#ls /opt/
#rsync --delete -avz /opt/ root@192.168.4.207:/opt/

虚拟机B:
#ls /opt/

虚拟机A:
#touch /opt/6.txt
#rsync --delete -avz /opt/ root@192.168.4.207:/opt/

虚拟机B:
#ls /opt/

实时的远程同步

一、取消用户名密码的验证
1.虚拟机A 生成公钥 私钥

  1. ssh-keygen #一路回车
  2. ls /root/.ssh/ #查看公钥 私钥

2.虚拟机A 传递公钥 到对方服务器

ssh-copy-id  root@192.168.4.207

3.虚拟机A 验证
ssh root@192.168.4.207 (无需密码)

二、源码包编译安装 inotify-tools(监控目录内容变化)

1.真机上传到虚拟机A
#scp /var/ftp/NSD1803/SERVICES/Day01/tools.tar.gz root@192.168.4.7:/

2.安装gcc make
3.解包tar
#tar -xf /tools/inotify-tools-3.13.tar.gz -C /
#cd /inotify-tools-3.13/

4.配置./configure
[root@svr7 inotify-tools-3.13]# ./configure
5.编译与安装
[root@svr7 inotify-tools-3.13]# make
[root@svr7 inotify-tools-3.13]# make install
[root@svr7 /]# inotifywait #具备命令程序
No files specified to watch!
6.程序的使用
常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、attrib 等事件类别

[root@svr7 /]# inotifywait -mrq /opt/

三、书写rsync脚本

  1. 死循环脚本
  2. while [条件判断]
  3. do
  4. 循环的语句
  5. done
  6. vim /root/rsync.sh (用变量代替要更好些)
  7. #!/bin/bash
  8. while inotifywait -rqq /opt/
  9. do
  10. rsync --delete -az /opt/ root@192.168.4.207:/opt
  11. done &
  12. chmod +x /root/rsync.sh

转载于:https://blog.51cto.com/13659481/2110243

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号