第九章.Linux服务
在Linux操作系统中,服务(Service)是在后台运行的程序或守护进程(Daemon),它们提供了各种功能和服务,可以在系统启动时自动启动,并在系统运行期间持续运行。这些服务可以是操作系统内核的一部分,也可以是第三方应用程序提供的。
、
服务就是一些特定的进程
自有服务
系统开机后就自动运行的一些进程
systemctl
管理服务
用法1:systemctl list-units --type service --all 列出所有服务
用法2:systemctl list-units --type service 列出所有运行服务
用法3:systemctl status ssh 查看服务运行状态
用法4:systemctl stop sshd 停止运行服务
用法5:systemctl start sshd 启动服务
用法6:systemctl restart sshd 重启服务
用法7:重新加载服务配置文件 重载 systemctl reload sshd
用法8:systemctl disable sshd 取消服务的开机自启
用法9:systemctl enable sshd 指定服务开机自启
常用的自有服务
ntpd 用于同步计算机系统时间
firewalld 防火墙
crond 计划任务
ntp时间同步
ntp 网络时间协议 用于同步网络中各个计算机的时间
服务器列表 - 全球可用的NTP服务器列表与解析服务 - ntp.org.cn & ntpdate.net
时间同步操作
手动同步
ntpdate 120.25.115.20
从服务器 120.25.115.20 同步标准网络时间 到我们的计算机 服务器由阿里云提供 建立在我们的计算机能访问互联网的前提
自动同步
启动ntpd服务并配置为开机自启 启动后 服务会帮我们自动同步网络时间
firewalld 防火墙
防范一些网络攻击 有软件防火墙和硬件防火墙
让正常请求通过 保证网络的安全性
防火墙的概念
firewalld 增加了区域的概念,预先准备了几套策略 类似于策略模板 用户根据需求去选择区域
常见的区域以及相应的策略规则
- 一个zone就是一套过滤规则,数据包必须要经过某个zone才能入站或出站。不同zone中规则粒度粗细、安全强度都不尽相同。可以把zone看作是一个出站或入站必须经过的安检门,有的严格、有的宽松、有的检查的细致、有的检查的粗略。
- 每个zone单独对应一个xml配置文件,在目录 /usr/lib/firewalld/services/
- 每个zone都有一个默认的处理行为,包括:default(省缺)、 ACCEPT、REJECT、DROP
- firewalld提供了9个zone:
- drop 任何流入的包都被丢弃,不做任何响应。只允许流出的数据包。
- block 任何流入的包都被拒绝,返回icmp-host-prohibited报文(ipv4)或icmp6-adm-prohibited报文(ipv6)。只允许由该系统初始化的网络连接
- public 默认的zone。部分公开,不信任网络中其他计算机,只放行特定服务。
- external 只允许选中的服务通过,用在路由器等启用伪装的外部网络。认为网路中其他计算器不可信。
- dmz 允许隔离区(dmz)中的电脑有限的被外界网络访问,只允许选中的服务通过。
- work 用在工作网络。你信任网络中的大多数计算机不会影响你的计算机,只允许选中的服务通过。
- home 用在家庭网络。信任网络中的大多数计算机,只允许选中的服务通过。
- internal 用在内部网络。信任网络中的大多数计算机,只允许选中的服务通过。
- trusted 允许所有网络连接,即使没有开放任何服务,那么使用此zone的流量照样通过(一路绿灯)
管理防火墙
firewall-cmd
作用:管理firwall具体配置
用法1:firewall-cmd --get-default-zone 查看默认使用的区域
用法2:firewall-cmd --get-zones 查看所有可用区域
用法3:firewall-cmd --list-all 列出当前区域所有配置
用法4:firewall-cmd --list-all-zones 列出所有区域的所有配置
用法5:firewall-cmd --zone-public --add-port=1024/tcp 在public区域 添加允许tcp协议的1024端口的规则
firewall-cmd --zone=public --add-service=ftp 在public区域 添加允许ftp服务通过的规则
用法6:去除允许通过的服务或者端口
用法7:firewall-cmd --permanent --zone=public --add-port=1024/tcp 以永久模式进行添加
用法8:firewall-cmd --reload 重载
计划任务
作用:可以定时的在某个时间让系统帮我们去完成某件事
crontab
-l list 列出指定用户的计划任务
-e 编辑指定用户的计划任务列表
-u 指定用户名 不指定默认当前用户
-r remove 删除用户计划任务列表
用法1:列出当前用户的计划任务表 crontab -l
编辑计划任务
crontab -e
打开计划任务编辑文件 我们可以在文件中定义我们的计划任务
语法格式 以行为单位,一行代表一个计划
分 时 日 月 周 需要执行的命令
0 0 * * * reboot 代表每天0时0分 执行重启
取值范围
分 时 日 月 周
0-59 0-23 1-31 1-12 0-7 0和7 代表星期天
四个符号
*:表示取值范围中的每一个数字
-:连接区间表达式 1-7 表示从第一天到第七天
/:表示每多少个 在分的位置写*/10 表示每十分钟一次
,:表示多个取值,1,2.6 表示在1点2点6点执行
在Linux系统中 有些命令不能直接在计划任务中使用 使用后不会生效 useradd 想让其生效 必须使用完整路径
如何查看命令完整路径 : whereis
每月 1,10,22日 的4:45 重启network服务
45 4 1,10,22 * * /usr/bin/systemctl restart network
每周六周日1:10 重启 ssh服务
10 1 * * 6,7 /usr/bin/systemctl restart ssh
每天 18:00到23:00之间 每间隔30分钟 重启network
*/30 18-23 * * * /usr/sbin/service network restart
每隔两天 上午八点 11点的第3-15分钟 执行一次重启
3-15 8-11 */2 * * /usr/sbin/reboot
每一分钟 往root目录1.txt中追加输出一个1
* * * * * /usr/bin/echo 1 >> /root/1.txt
tail -f 1.txt 实时查看文件信息
在计划任务中 最小的单位就是分 没有比这个再小的
示例:
# 每小时运行一次 #@hourly /test/test.sh
Linux软件包
1.源码包
一大堆源代码程序 由程序员按照特定的格式语法编写,机器只能识别二进制语言,所以使用源码包安装需要进行编译。
2.二进制包
二进制包,是由源码包编译之后产生的,Linux下默认的安装包
centos redhat 使用rpm包管理
debian ubuntu dpkg包管理系统 apt
从光盘中获取
使用lsblk
/run/media/root/CentOS\ 7\ x86_64/Packages/
查询某个软件安装情况
rpm -qa
rpm -qa |grep firefox
q:查询
a:all全部
代表firefox已经安装
没有任何回显表示没有安装
卸载软件
rpm -e firefox-52.7.0-1.el7.centos.x86_64
-e 进行卸载 后面要跟具体的名称
安装软件
-i install 安装
-v 显示进度条
-h 表示以#形式显示进度条
cd /run/media/root/CentOS\ 7\ x86_64/Packages/ 进入到目录中
ll |grep firefox
列举出所有的软件包信息,筛选出我们要安装的软件包
rpm -ivh firefox-52.7.0-1.el7.centos.x86_64.rpm
更新软件
-U upgrade 升级
找到新版本的软件包
rpm -Uvh firefox-102.13.0-2.el9_2.alma.x86_64.rpm
rpm依赖
一个软件包必须先有其他软件才能运行,这个关系称之为依赖
查看文件所属的包名
-f 查询文件所属包
rpm -qf /etc/ntp.conf 查询ntp.conf属于哪个软件包
查询软件安装完成后,生成了哪些文件
-l 列出所有的文件
rpm -ql firfox
软件安装后一般会生成:
配置文件:/etc
程序文件本身,二进制文件命令:/usr/sbin
文档手册 /usr/share/man
光盘的挂载与解挂
解挂
umount
mount
挂载光盘