云计算运维学习 day5--系统服务管理
目录
3.2.2客户端的/nfs目录共享服务端的/mnt/nfsdata目录
一.ssh服务(secure shell)
1.1基本概念
1.目的:安全地远程登录会话,它建立在应用层协议的基础上,为远程登录会话和其他网络服务提供安全的协议
2.Linux中的服务名为:sshd,端口号:22(默认)
3.ssh服务的启用情况查看:
systemctl status sshd #查看ssh服务是否开启
systemctl start sshd #启用ssh服务
systemctl enable --now sshd #立即启用ssh服务并开启开机自启

4.查看sshd的端口22(默认)是否启用:
netstat -antlp | grep 22

5.结束后,退出远程登录会话
exit

1.2远程登录
1.2.1统一格式
ssh -[参数] 用户名@主机IP地址 #远程登录
参数:
-l:指定登录的用户名
-i:指定私钥
-p:指定端口号
-b:指定本机的源地址(如果本机存在多个IP)
-o:指定高级连接参数
-o “StrictHostKeyChecking=no”:首次连接不用输入yes,确认生成密钥
注意:默认情况下,使用域名时,SSH首先会使用你当前登录的虚拟机的用户,去登录对方虚拟机上与你同名的用户的虚拟机
设定主机名,并在/etc/hosts进行域名解析后,可直接通过域名远程登录:
ssh 域名 #域名远程登录
首次登录时,需要你手动确认生成密钥,否则远程登录失败

1.2.2.解决登录时发生密钥不匹配的问题:
产生原因:远程登录时产生的密钥与当前的主机不匹配,或者在第一次连接提示是否生成密钥时,你输入了 no,SSH 会将这次“失败”记录为“主机验证失败”,并阻止后续连接。如下图:

解决办法:删除之前生成的密钥文件,远程连接登录后重新生成新的密钥:
rm -rf ~/.ssh/known_hosts

1.3免密登录:远程登录不再输入密码
1.3.1指定远程连接虚拟机的免密
1.原理:将客户端生成的虚拟机密钥放到服务端中
2.前提:客户端和服务端都需要有自己和对方的域名
3.步骤:
3.1双向解析:编辑两台虚拟机的主机域名
客户端(server2)和服务端(server3)编辑 /etc/hosts 文件,添加自己和对方虚拟机的域名解析。
vim /etc/hosts #编辑系统hosts文件
客户端(server2)

服务端(server3)

3.2在server2服务端上生成SSH密钥对
口令:类似密码,如有需求,可以设置
ssh-keygen #生成公钥和秘钥

3.3将server2生成的密钥对复制给server3
ssh-copy-id server3

3.4测试

1.3.2双向免密
1.作用:自己和对方虚拟机远程登录时都不需要输入密码
2.原理:公用一对钥匙对
3.步骤:
3.1双向解析,并生成钥匙对(与上述相同)
vim /etc/hosts
ssh-keygen
3.2将生成钥匙对的虚拟机的ssh目录拷贝到对方的虚拟机上
scp -r .ssh root@192.168.7.135:/root/.ssh

3.3双向测试
ssh server2 #在server3的虚拟机上
ssh server3 #在server2的虚拟机上


1.4SSH网络文件配置
1.SSH网络文件地址:/etc/ssh/sshd_config
2.查看SSH网络文件信息
vim /etc/ssh/sshd_config
systemctl reload/restart sshd
端口号:设定ssh服务的端口号
超级用户:是否允许超级用户直接远程登录
使用密码登录:是否允许使用密码远程登录,如果设置不允许,则只能免密登录
白名单:只允许这些用户登录,其他用户不允许
黑名单:不允许这些用户登录,其他用户允许

3.示例:修改端口号为2222,登录指定用户,使用新的端口号远程登录
vim /etc/ssh/sshd_config
systemctl reload/restart sshd
ssh -p 端口号 -l 用户名 域名(用户名@主机IP)

![]()

不用-p指定端口号,会报拒绝连接,如下错误:

1.5SCP命令
1.作用:将本机的文件或目录传送给外机,或者将外机的文件或目录传送给本机
2.原理:如果本机或外机在传送的地址上有同名的文件或目录,则会覆盖
3.格式:
scp -[参数] 本地文件/目录(路径) 用户名@主机IP:目录(PATH) #将本机文件传送给外机
scp -[参数] 用户名@主机IP:目录/文件(PATH) 本地文件或目录(路径) #将外机的文件传送给本机
参数:
-r:指定递归传送文件类型的是目录
-p:保留对方文件的文件属性
注意:这里的路径包含相对路径和绝对路径,PATH必须是绝对路径
3.示例:将本机当前目录下的.ssh目录,传送到对方虚拟机的/root/.ssh目录,需要输入对方用户的密码:

1.6rsync命令
1.作用:同步自己与对方虚拟机的文件,与scp不同,一次只会追加目录下对方没有的文件。同时支持对方与自己虚拟机的同步,时间较快
注意:删除本机的文件不会,对方虚拟机上的文件不会被删除,但是修改目录下的文件内容时,对方也会同步修改文件
2.前提:双方提前安装rsync软件
yum install -y rsync
![]()

3.格式:(与scp类似)
rsync -[参数] 本机目录/(路径) 用户@主机名:目录(PATH) #将本机目录与对方目录同步
rsync -[参数] 用户@主机名:目录(PATH) 本机目录/(路径) #将本机目录与对方目录同步
参数:默认时不会保留对方文件的修改时间、文件属性,反而是相当于在自己本机上创建一个文件
-r: 同步递归子目录
-p:同步权限
-o:同步文件所有者
-g:同步文件所有组
-l:同步链接
-D:同步设备文件
-t:同步文件时间戳
注意:在本机目录加 / 表示只同步该目录下的内容,不加则表示同步目录
3.示例:
3.1将server3的 /dir1 目录同步到 server2 的 /dir1 中
3.1.1 在server3下创建 /dir1目录,在目录下添加hosts文件,用于测试
![]()

3.1.2 将server3的目录同步到server2的根目录下,并查看内容
![]()

3.2修改server3的文件内容,并同步到server2中
3.2.1 清空server3目录/dir1下的hosts文件内容,并查看

3.2.2 将修改后的目录同步到server2,并查看内容
![]()
![]()
3.3 在server3的目录下创建一个新的文件,并同步到server2,删除他后,再次同步
3.3.1在server3下创建一个1.txt文件,并同步

3.3.2 查看server2目录,是否同步
![]()
3.3.3 删除server3目录下的1.txt文件,并同步查看

3.3.4 可以看到文件依然存在

3.5 server3上创建目录。并修改其属性,保留权限同步到server2,查看目录属性
3.5.1 创建目录,并赋权
![]()

3.5.2 同步到server2中,并查看它的属性


二.系统日志
2.1基本概念
1.作用:记录系统和操作内核的事件日志,用来排查错误
2.存放地址:一般存放在 /var/log 目录下
具体目录如下:
/var/log/messages:大部分日志存放在这里
/var/log/secure:存放安全和身份认证和错误等相关日志
/var/log/maillog:存放邮件服务器的相关日志
/var/log/corn:存放定时任务等相关日志
/var/log/boot.log:与系统启动相关的日志
2.2systemd-journald服务
2.2.1基本概念
1.作用:提供一种改进的日志管理服务,可以收集来自内核、启动过程、标准输出、系统日志及守护进程启动和运行期间错误等消息,它将这些消息写入到一个结构化事件日志中。
2.存放路径:/run/log(只能使用journalctl命令查看,不能使用cat或vim查看)
2.2.2格式
journalctl -[参数] #日志分析命令
参数:
-n 数字:查看最近生成的几条日志
-p err:查看系统的报错信息
--since 起始时间 --util 结束时间:查看某个时间段的日志
-o versobe:查看日志能够使用的条件参数
高级用法:
journalctl _UID=指定UID #查看指定UID的日志
journalctl _PID=指定PID #查看指定PID的日志
journalctl _GID=指定GID #查看指定GID的日志
journalctl _HOSTNAME=指定主机名 #查看指定主机名的日志
journalctl _SYSTEMD_UNIT=服务名称 #查看指定服务的相关日志
journalctl _COMM=指定命令 #查看指定命令的日志
2.2.3示例
1.使用 journalctl命令查看日志

注意:使用vim/cat 命令查看会提示该日志是个目录,如下:

2.使用 journalctl命令查看sshd.service服务日志

3.使用 journalctl命令查看sshd命令日志

2.2.4实现日志持久化
1.原因:默认情况下,日志都会存在 /run/log 目录下,每次重新启动系统都会清除该目录下的日志文件,日志无法保存
2.作用:永久保存系统的日志文件,可以保存在 /var/log/journal(或者其他地方均可)
3.步骤:
systemctl restart systemd-journald
3.1创建 /var/log/journal 目录,用于保存日志文件
mkdir /var/log/journal #创建目录保存日志
3.2给予目录权限2755(u:rwx ,g:r_s,o:r_x),这里的数字2表示特殊权限sgid,允许进入目录下的用户享有该目录所有组的权限
chmod 2755 /var/log/journal
3.3 将目录加入systemd-journal组当中,只有进入该组,日志才会写进该目录
chown root.systemd-journal /var/log/journal
3.4 重启systemd-journald服务
systemctl restart systemd-journald

2.3rsyslog服务
2.3.1基本概念
1.作用:一个开源工具, 在Linux系统中,以通信协议UDP/TCP转发或接受日志。
2.服务主配置文件地址:/etc/rsyslog.conf
3.前提:安装rsyslog软件,并设置启动和开机自启
yum install -y rsyslog
systemctl enable --now rsyslog
4. 查看系统日志的配置文件(/etc/rsyslog.conf)
cat/vim(选择其一即可) /etc/rsyslog.conf
rsyslog服务配置文件信息如下:

5.日志类型和级别
日志类型:
auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news#系统更新信息
user #用户
日志级别:
debug#程序排错信息
info #程序常规运行信息
notice#重要信息的普通日志
waring#程序警告
err #程序报错
crit#严重级别会导致系统软件不能正常工作
alert#系统中立即要更改的信息
emerg #系统的严重问题日志
none #不采集
2.3.2指定日志保存位置
1.作用:修改指定日志的保存位置
2.步骤:
2.1创建日志保存文件:
touch /var/log/westos.log
![]()
2.2编辑rsyslog服务配置文件,尾行添加你要保存的指定日志(这里我保存全部日志),和保存地址
vim /etc/rsyslog.conf
添加一下内容:
*.* /var/log/westos.log #第一个表示你指定的日志,第二个指定日志保存在哪个文件
![]()

2.3重启服务
systemctl restart rsyslog.service
![]()
2.4实时查看日志最新的10条日志
tail -f /var/log/westos.log
![]()
2.3.3将外部主机的日志保存在同一台主机中
1.作用:实现一台主机查看多台主机日志
2.步骤:包括服务端(server2)和客户端(server3),将server3中的日志保存到(server2)
2.1两台主机上均安装rsyslog服务
yum install -y rsyslog
注意:两台主机防火墙关闭,或者防火墙允许两台主机网络互通
2.2编辑客户端(server3)的rsyslog服务配置文件,尾行添加指定日志,接受用户@主机IP(主机域名)和端口号(默认为514,以服务端为准),并重启服务
vim /etc/rsyslog.conf
添加以下内容:
*.* @@主机IP:514 #主机IP写服务端IP,端口号默认为514,具体查看服务端上的rsyslog服务配置
systemctl restart rsylog

![]()
2.3编辑服务端(server2)的rsyslog服务配置文件,删掉UDP和TCP协议模块前的注释,保存并重启服务
vim /etc/rsyslog.conf #删掉注释
systemctl restart rsyslog.service

![]()
2.4测试:在server3上发送hello日志,并在server2上查看
logger "hello" #server3
tail -f /var/messages #server2
客户端(server3)

服务端(server2)

2.4系统延时任务(at命令)
2.4.1基本概念
1.作用:指定某一任务在将来某一时间完成,即使退出shell会话,依然会运行
注意:at命令中的作业只可执行一次,定时循环任务请用下面的cron命令
2.使用步骤:在输入at命令行后,按 Enter ,接着输入你要完成的作业内容,可由多个命令行组成,输入完成后,按 ctrl + d 退出输入即可。
3.前提:安装at软件包
yum install -y at-3.1.13-24.el7.x86_64
![]()
2.4.2格式
at [选项] 时间
选项:
-l:列出当前的任务列表 (等价于atq)
-d 任务号:删除指定的任务
-m:发送命令结果到本机邮箱,即使该命令执行后没有输出
-c 任务号:查看指定的任务
时间:
绝对时间:如10:30,即当天的10:30(今天过后,就是明天)
相对时间:如 now +2min,指两分钟后执行,注意:
at命令在计算now + N minutes的执行时间时,会把当前时间向下舍入到最近的分钟,再计算偏移量。日期时间:如14:00 2026-07-21,指2026年7月21日下午两点执行
2.4.3mail命令
1.作用:Linux中最简单的邮箱系统,查看系统邮件(如 cron 任务输出、系统通知)和发送简单邮件。
2.存放地址:/var/spool/mail/用户名
3.前提:提前安装mail软件
yum install -y mailx

4.格式:
mail #进入邮箱
输入mail进入邮箱后的相关操作:
数字:查看编号为该数字的信件,按回车阅读该编号信件
n:阅读下一封未读信件
d:删除当前邮件(退出时才真正删除)
u:取消删除当前邮件
q:保存更改,退出邮箱
x:放弃所有更改(恢复所有删除的邮件),退出邮箱
2.4.4示例
1.设定date命令在两分钟后执行,并将执行结果输入到当前终端上
1.1查看当前的终端设备
ps

1.2加入两分钟后执行的任务,并退出,查看时间
at now +2min

1.3观察结果
![]()
2.在1分钟后将当前时间结果输入到邮箱当中
at now +1min
mail #进入邮箱后,按回车阅读未读信件,后面按q退出邮箱

退出邮箱,他会显示信件的保存地址:

2.5管理定期任务(crontab命令)
2.5.1基本概念
1.作用:按计划执行需要定期执行的程序。
2.编辑的文件保存地址:/var/spool/corn/用户名
3.前提:开启crond.service服务
systemctl enable --now crond.service
systemctl status crond.service

4.编辑黑名单和白名单(一个即可):
黑名单(etc/cron.deny):名单中的用户不可访问(没有白名单那时,不在名单中的其他用户可访问)
白名单(etc/cron.allow):名单中的用户可访问
注意:没有名单的情况下,只有root用户可执行
5.注意事项:
1.属于系统的任务通常保存在 /etc/crontab 文件中而不是使用crontab -e 编辑保存在个人文件中。更好的做法是用文本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避免更新系统软件包 cronie 时出现问题 ) 。
2.对于需要每天、每周或每月运行一次的脚本 , 可以直接将其设置为可执行文件 , 并保存在 /etc/cron.{daily,weekly,monthly} 中相应目录下。
3.编辑时每个任务占一行
2.5.2格式
crontab -[参数]
参数:
-l:列出当前的任务列表
-e:编辑文件,默认为vi,
-r:删除文件
文件中的命令格式:
* * * * * commmand #command表示你具体要执行的任务
五个*分别有不同的表示:
第一个:分钟
第二个:小时
第三个:天数
第四个:月份
第五个:年份
更具体的用法见下图:

2.5.3示例
1.编辑文件,完成每分钟读取当前时间的任务,使用mail查看
crontab -e #编辑文件内容
crontab -l #查看文件内容
mail #查看执行结果

![]()


2.编辑文件,完成每10秒执行date任务,查看任务列表并用mail查看结果
crontab -e
crontab -l
mail


3.删除所有任务
crontab -r #删除任务文件
crontab -l

三.NFS网络服务
3.1基本概念
1.作用:允许网络中的计算机之间共享资源,一般在服务端创建文件系统
2.优点:
1.节省本地存储空间,将数据放在另一台NFS服务器上且可访问
2.用户只需在NFS服务器(服务端)上存放/HOME目录,访问服务器上的/HOME,无需自行创建
3.直接使用外机的存储设备,减少可移动设备媒介的数量
3.启用前提:双方计算机上都安装了nfs软件,并启动服务关闭防火墙
yum install -y nfs-utils.x86_64 #安装软件
systemctl enable --now nfs #启动服务,并实现开机自启
systemctl disable --now firewalld #关闭防火墙
3.2客户端通过NFS网络共享服务端上的资源
3.2.1基本概念
1.作用:通过NFS网络,将服务端的目录共享给客户端,客户端可远程对服务端进行访问和其他操作(具体在于服务端赋予给客户端的权限)
2.角色:客户端:server2
服务端:server3
3.2.2客户端的/nfs目录共享服务端的/mnt/nfsdata目录
注意:以下域名均已在双方的主机上解析过了
1.服务端:编辑nfs配置文件,重启服务后,查看NFS网络共享资源,为共享的目录赋权
vim /etc/exports #修改nfs配置文件
exportfs -rv #重载nfs服务
showmount -e server3 #查看服务端共享给客户端的目录,可供客户端挂载的目录
chmod 777 /mnt/nfsdata #为服务器目录赋权

括号里的参数:
sync:同步写入,以防数据不会因意外断电而丢失
rw,ro:rw:给用户读写权限,ro:给用户只读权限
no_root_squash:允许客户端以root用户访问服务端的目录,默认是普通用户

![]()
2.客户端:创建一个目录,用来共享服务端的资源,接着将服务端的目录挂载到客户端新建的目录下,接着查看/nfs目录下的内容,检验是否共享成功
mkdir /nfs #创建一个空目录,用来共享服务端的资源
mount server3:/mnt/nfsdata /nfs #将服务端的/mnt/nfsdata目录挂载到客户端的/nfs中
![]()
![]()

3.在客户端上创建一个文件,在服务端上查看是否成功创建
客户端:进入/nfs目录下,创建一个文件,并查看是否成功创建
cd /nfs
touch server2.txt
ls

服务端:查看/mnt/nfsdata目录下的内容,观察是否同步到服务端
ls /mnt/nfsdata


3.2.3客户端用户共享服务端用户
1.前提:客户端和服务端存在同名的用户
2.服务端:编辑服务端上的nfs服务配置文件,重载nfs服务
vim /etc/exports #编辑文件
export -rv #重载服务
showmount -e server3 #查看服务端的挂载
![]()
参数:映射的用户ID与服务端用户ID一致
anonuid=1000:将匿名用户(包括客户端 root)映射为 UID=1000
anongid=1000:将匿名用户(包括客户端 root)映射为 GID=1000

3.客户端:用客户端的用户挂载服务端的用户
mount server3:/home/www /home/www
df -h
![]()

4.测试:客户端在挂载用户中创建一个文件,观察服务端是否存在这个文件
客户端:
cd /home/www
touch server3
ls

服务端:
ll /home/www

3.3自动挂载(autofs)
3.3.1基本概念
1.作用:当客户端进入指定目录后,自动帮你挂载进服务端的目录当中,不用手动挂载
2.配置文件地址:/etc/auto.nfs
3.启用前提:安装autofs软件包,并启动服务
yum install -y autofs
systemctl enable --now autofs
3.3.2实现自动挂载服务(仅需在客户端编辑)
1.提前定义好服务端的共享目录和客户端的挂载点
客户端:server2;服务端:server3
服务端共享目录:/mnt/nfsdata
客户端挂载点:/nfs/data
2.编辑 /etc/zutofs.master 文件,指定挂载点的父目录
vim /etc/autofs.master
#添加以下内容:
/nfs /etc/auto.nfs #第一句表示客户端挂载点的父目录,第二局为映射文件,里面写具体挂载哪些子目录、从哪里挂载
![]()

3.编辑 /etc/auto.nfs 文件,指定最终挂载点以及挂载的服务端目录,并重启服务
vim /etc/auto.nfs #编辑映射文件
#添加以下内容:
data -fstype=nfs,rw 服务端IP:/mnt/nfsdata #第一句表示父目录下的具体挂载点,第二句表示文件系统类型+权限,第三句为服务端IP+服务端的共享目录
systemctl restart autofs
![]()
![]()
![]()
4.测试:直接访问客户端的挂载点,观察是否能够直接连接上服务端
cd /nfs/data
ls

3.3.3实现开机自动挂载服务(可选)
1.作用:客户端实现开机自动挂载服务端的目录服务
2.步骤:
2.1提前定义客户端的挂载点以及服务端的共享目录,以及赋权
客户端server2:/nfs/data
服务端server3:/mnt/nfsdata
赋权:chmod 777 /mnt/nfsdata
2.2在客户端上编辑 /etc/fstab 文件,并添加内容
vim /etc/fstab #编辑文件
#添加以下内容
server3:/mnt/nfsdata /nfs nfs _netdev 0 0 #第一句表示服务端IP:共享目录,第二句表示要挂的客户端目录,第三句表示文件系统类型
![]()
![]()
四.ISCSI服务
4.1基本概念
1.作用: Internet 小型计算机系统接口,通过网络由专门的服务器提供存储管理,以实现数据的远程储存,便于数据的集中管理。
2.好处:简化了数据复制、迁移,防止容灾
3.工作原理:首先客户端发出请求建立SCSI CDB(命令描述块),并将其传给ISCSI层。而ISCSI层则对SCSI的CDB进行封装,完成SCSI到TCP/IP的协议映射。TCP/IP层则对IP报文进行路由转发,并且提供端到端的透明可靠的传输。
4.2实现ISCSI服务配置
1.作用:将一台 Linux 服务器(server3)上的物理硬盘或分区,通过网络(IP 网络)共享给其他服务器(server2)使用,使这些服务器能够像使用本地硬盘一样,读写远程的存储空间。
2.前提条件:
服务端:安装服务端软件,启动服务并关闭防火墙
yum install -y targetcli
systemctl enable --now target
systemctl disable --now firewalld #关闭防火墙
![]()
![]()
客户端:安装客户端软件,启动服务并关闭防火墙
yum install -y iscsi-initiator-utils.x86_64
systemctl enable --now iscsid
systemctl disable --now firewalld #关闭防火墙
![]()
![]()
3.在服务端使用targetcli命令配置数据输出
targetlic #编辑文件
/backstores/block create demo /dev/sdb #创建一个名为demo的块存储对象,并与/dev/sdb设备相关联
/iscsi create iqn.2026-07.com.example:storage1 #创建了一个名为 iqn.2026-07.com.example:storage1 的iSCSI目标
/iscsi/iqn.2026-07.com.example:storage1/tpg1/luns create /backstores/block/demo #将存储块映射为 LUN
/iscsi/iqn.2026-07.com.example:storage1/tpg1/acls create iqn.2026-07.com.example:demokey #创建客户认证
exit #退出
![]()

![]()


4.在客户端,编辑客户端配置文件,设定客户端的IQN
vim /etc/iscsi/initiatorname.iscsi
#添加以下内容:
InitiatorName=iqn.2026-07.com.example:demokey #设置客户端的IQN,要根据服务端设定的客户认证名称一致
systemctl restart iscsid
![]()

![]()
5.在客户端上,发现并登录ISCSI目标,登录完成后能够在客户端查看到服务端共享过来的设备(硬盘),共享设备相当于给客户端增加了一个硬盘
iscsiadm -m discovery -t st -p 192.168.7.135 #发现ISCSI目标,discovery:发现模式,st:服务端主动向客户端报告目标,IP:服务端的IP
iscsiadm -m node -l #登录ISCSI目标


6.在客户端上,为共享设备设定新的分区,格式化后并挂载到 /iscsi 目录下(也可开机挂载)
fdisk -l #查看server2上是否存在server3的共享硬盘
fdisk /dev/sdc #这里的设备是server3的共享硬盘,创建一个10G的分区(n+p+w)
mkdir /iscsi #创建新目录,用于充当挂载点
mount /dev/sdc1 /iscsi #将新建的分区挂载到/iscsi目录下
![]()




7.补充开机挂载:客户端编辑 /etc/fstab 文件,加入挂载信息
注意:如果要卸载,请提前删除挂载信息,否则启动不了服务器
blikd #查看网络设备号
vim /etc/fstab
df -h /iscsi #查看挂载情况


4.3客户端删除ISCSI服务端共享设备
1.首先卸载,如果有开机挂载,需要提前删除挂载信息
vim /etc/fstab #删除挂载信息,如果没有开机挂载,不用这一步
umount /iscsi #卸掉挂载点
![]()


2.退出会话,并删除ISCSI节点记录
iscsiadm -m node -u #注销ISCSI会话,退出登录
iscsiadm -m node -o delete #删除已保存的ISCSI节点记录
systemctl restart iscsid #重启iscsi服务
lsblk #查看挂载情况,查看是否删除

![]()
![]()

更多推荐

所有评论(0)