脚本编程
数组,字符串,以及其他的工具expect
expect解决交互式的操作,实现自动化的脚本
经常用于文件scp的复制,口令,用expect批量自动执行
ssh在具体实现远程登录或复制的时候
icmp基于ssh协议,验证身份时候,除了我们用户名密码,还有jk验证
把jk验证实现了,就不需要输入密码,jk验证过程怎么实现,就需要用到
expect
centos6启动流程
1、加电自检
2、选择启动的硬件设备mbr(446字节)grub1阶段
3、grub1.5阶段,2阶段 主要在(grub/grub.conf定义了内核的文件名和虚拟的磁盘文件initramfs
kernel那行定义类内核文件和以及跟的路径,加载完内核文件之后,然后找到跟以后,默认就会找到跟以下的sbin/init进程,init程序加载的时候 要求一些配置文件etc/inittab/ (初始化脚本rc.sysinit)))j脚本运行后,会根据默认模式来加载相应的启动脚本rcn.d里面有软链接,sk开头调用的是etc/init.d选的脚本
有个兜底的rc。local兜底的,
运行完后就能看到mingentty登录界面
编译内核,去实现对于grub的管理
centos7的启动
unit单元,有各种类型
配置文件:三个 目录其实都可以配置systemd,会有优先级,从上到下的
init.d是里面的服务脚本
**service文件的作用相当于 /etc/init.d服务脚本(大部分都从init。d迁移到了service)
这个/usr/lib/systemd/system 中文件统称为单元
**
下面这个目录是自动生成的/run/systemd/systemd,一般不需要人为更改
/etc/systemd/system其实调用的还是前面的目录/lib/systemd/systemd
target类似于runlevel
systemctl可以管理systemd的各种进程
改主机名的
-t查看unit支持的各种类型
在6上chkconfig是设置哪个服务开启关闭的,service是服务即时的开启关闭
在centos7上对应的是service单元
socket(以前进程服务不启动,socket就不会打开)、对应的就是IP地址和端口号组合
自动挂载对应神奇目录/misc/cd
软件不是基于systemd开发的,就管理不了
这两个依旧是比较传统的自己编的服务,6上是比较多的,不是基于systemctl控制的
早期控制服务都是service 和chkconfig执行的,现在改变工具了systemctl,有这命令来启动和关闭某个服务
后面service可加可不加,systemctl后面可以跟多个服务,service和chkconfig就不行
停止两个服务
systemctl 可以同时管理多个服务,比较方便
condition条件。cond
reload加载配置文件
先加载如果失败 就重新启动
umask权限 mask子网掩码,mask遮挡的意思
如果原来已经停止,有人不小心又重新开启就可以用到mask来禁用
实现机制就是软链接到/dev/nul
查看状态,避免误操作启动,
本质就是把软链接删除
判断是否启动,inactive不启动
也可以用$?判断,就可以在脚本里用if判断
查看没有加载的可以用all全部
设置atd服务开机不启动
开机启动等于runlevel模式下的文件夹里创建一个软链接指向到systemd/system/multi-user.target.wants
怎么判断某一服务是否是开机启动关闭的,
关闭开机启动等于把runlevel的软链接删除
启动,创建软链接
只要进入到3模式下就开机启动,multi-user
5模式在centos7上不叫5模式
这个模式和3模式有依赖关系,调用了 multi-user
6.是各个模式是平级的关系,7是包含的关系,有依赖性
查看sshd的依赖性
服务之间也有依赖性(basic.target包含这么多启动状态,依赖服务,同时也依赖target)target类似于服务的集合,runlevel(定义了哪些服务启动,哪些不启动)
类似于kill 和killall
loaded:代表此配置文件已经加载到内存中
active(running):正在运行
active(exited):表示运行了就退出了,一次性的,类似atd做完一次就退出
active(waiting):启动了,在等待一个事情,才能触发操作
inactive:
static:开机不启动,但可以被另一个启用的服务激活
centos6上这两个服务有依赖性的
nfs服务依赖于rpcbind
停止rpcbind,nfs就起不来了
只能手动解决,系统是解决不了这样的依赖性
centos7有自己 依赖性解决方式,不像6的时候只能手动解决
socket文件是和服务分离的
在6 上telnet是一个非独立服务,依赖于xinetd超级守护进程
在centos7上管理已经不要xinetd管理了,直接用systemd
打开 23端口
但是监听端口的是systemd,本身systemd代替了超级守护进程xinetd
telnet服务没启动,证明socket和服务已经分离了,当用户访问由systemd临时激活的
可以列出所有的单元,sokcet,service,target
只看某一种类型单元,-t处于加载状态
all所有状态的
tab键补全
当更改服务配置文件以后,可以用reload方式避免服务重新启动,用restart导致正在使用的用户受影响
只是加载,不会断掉用户
内核系统崩溃以后,kdump。service可以把这个信息存放到硬盘上,将来把文件打开,可以研究崩溃原因,内存不够,就起不来
/etc/systemd/system 类似 /etc/rcN.d
这些文件一般 系统在安装某个服务会自动 生成
是service就是service 是socket就是socket
描述
target代表一些服务的集合,等于runlevel,after变相说明有依赖性
requires强依赖,wants弱依赖(希望有,但可以没有)
conficts(冲突的,前面的起来就不可以起来了)
执行start就调用了下面的变量 execstart
reload就执行了execreload 等于 发送1信号
如果是forking,就会生成一个子进程,原来的父进程就关闭了
oneshot,一次性的,执行完了就关闭了,也就不占内存
idle空闲的意思,执行完以后不会马上启动起来,会选择一个不太忙的时候启动(适合不是很紧要的服务
做一个备份
放到这个目录下
现在是禁用的
runlevel在centos7上叫target
可以查看图形模式依赖是谁
6上 独立的
graphical依赖于multi-user
multi-user又依赖于basic
在机器启动可以决定开机进入什么模式
默认图形模式
修改开机模式默认为字符模式
可以设置为图形界面,创建软链接
init切换 推荐用systemctl isolate name.target
紧急救援模式
早期的命令基本都是systemd的软链接
systemctl常见的命令哪些必须掌握
daemon-reload
enable
poweroff
mask
is-enabled
satrt
status
isolate
2019/02/24 systemctl命令使用
最新推荐文章于 2022-11-03 23:09:20 发布