linux自有服务(systemctl)(ntp、firewalld、crond)

Linux 自有服务与 systemctl 管理指南

一、自有服务概述

服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务。在 Windows 系统中,把这些自动运行的进程称为“服务”。

举例:当我们使用 SSH 客户端软件连接 Linux 的时候,服务器能对连接做出响应,是因为 SSH 服务在开机时就已经自动运行了。

✅ 自有服务:可理解为 Linux 系统开机自动运行的服务(程序)


二、自有服务的管理(systemctl 管理服务命令)

在 CentOS 7 之前,常通过以下两个命令管理服务:

  • service:负责启动、停止服务,显示服务状态
  • chkconfig:指定服务是否开机启动

从 CentOS 7 开始,统一使用 systemctl 管理服务,具有 service 和 chkconfig 的全部功能。


1. 显示服务

命令systemctl
作用:管理服务
语法

systemctl [选项]
常用选项:
选项 说明
list-units --type=service --all 列出所有服务(包括未启动的)
list-units --type=service 只列出已启动的服务
示例一:列出所有服务(包含启动和未启动)
systemctl list-units --type=service --all
  • 空格翻页,按 q 退出
示例二:列出当前运行的服务
systemctl list-units --type=service

2. 启动/停止/查看服务状态

语法

systemctl [选项] 服务名
常用操作选项:
操作 示例 说明
status systemctl status crond 查看服务状态
start systemctl start crond 启动服务
stop systemctl stop crond 停止服务
restart systemctl restart crond 重启服务
reload systemctl reload crond 重新加载配置(服务支持时)
示例说明:
  • 查看服务状态:
systemctl status crond

输出中 Active: active (running) 表示正在运行。

  • 停止服务:
systemctl stop crond

输出中 Inactive 表示服务停止。

  • 启动服务:
systemctl start crond
  • 重启服务:
systemctl restart crond
  • 重新加载服务配置(部分服务支持):
systemctl reload crond

3. 服务持久化(开机自动启动)

定义:服务持久化是指服务是否能在系统启动时自动运行。

命令语法

systemctl [enable/disable] 服务名
操作示例:
  • 禁用开机启动:
systemctl disable crond
  • 启用开机启动:
systemctl enable crond

4. systemctl 命令参数总结

参数 含义
list-units --type service --all 列出所有服务(包含未启动)
list-units --type service 列出所有正在运行的服务
start 启动指定服务
stop 停止指定服务
status 查看服务状态
restart 重启服务
reload 重新加载配置(部分服务支持)
enable 设置服务为开机启动
disable 禁用服务开机启动

Linux 自有服务详解(ntp、firewalld、crond)

一、常用自有服务

服务名 含义
ntpd 用于同步计算机系统时间的服务
firewalld Linux防火墙服务,用于网络安全防护
crond Linux计划任务服务,用于定时执行任务

二、ntp 时间同步服务

什么是NTP?

  • NTP(Network Time Protocol):用于同步网络中计算机时间的协议。
  • 来源:通过 UTC(世界协调时间)同步,标准时间来自原子钟、天文台、GPS、互联网等。

应用场景

如100台服务器构成电商平台后端,若不做时间同步,会出现“用户明天下单,今天发货”的时间错乱问题。

NTP 层级结构

  • NTP通过**Stratum(层级)**传播时间,最多支持15层。
  • 我们通常使用公网 NTP 服务器,如:http://www.ntp.org.cn/pool.php

时间同步方式

手动同步时间

```bash
ntpdate 120.25.108.11 # 阿里云时间服务器
```

注意:需服务器可以访问公网,否则报错 no servers can be used

自动同步时间

```bash
systemctl start ntpd
systemctl enable ntpd # 设置为开机自动启动
```

配置文件路径:/etc/ntp.conf


三、firewalld 防火墙

基本概念

  • 防火墙:用于阻止非法访问、控制网络流量,保障网络安全。
  • CentOS 6 默认使用 iptables
  • CentOS 7+ 默认使用 firewalld,引入了**区域(zone)**概念。

常见区域与默认规则

区域名 策略简介
trusted 允许所有数据包
home 拒绝除关联流量外的所有流入,仅允许 ssh、mdns、ipp-client 等服务
public 拒绝除关联流量外的流入,仅允许 ssh、dhcpv6-client
block 拒绝除关联流量外的所有流入,非法流量“拒绝”
drop 拒绝除关联流量外的所有流入,非法流量“丢弃”
external 类似public,只允许 ssh
work 类似home
dmz 仅允许 ssh

模式说明

  • 运行模式:配置即时生效,不保存到配置文件。
  • 永久模式:写入配置文件,但需要执行 --reload 重载。

服务控制命令(systemctl)

systemctl status firewalld     # 查看状态
systemctl start firewalld      # 启动
systemctl stop firewalld       # 停止
systemctl restart firewalld    # 重启
systemctl reload firewalld     # 重载配置(推荐 restart)

配置管理命令(firewall-cmd)

功能描述 示例命令
查看默认区域 `firewall-cmd --get-default-zone`
查看所有区域 `firewall-cmd --get-zones`
查看当前区域配置 `firewall-cmd --list-all`
查看所有区域配置 `firewall-cmd --list-all-zones`
添加端口临时规则 `firewall-cmd --zone=public --add-port=1024/tcp`
添加服务临时规则 `firewall-cmd --zone=public --add-service=ftp`
移除端口临时规则 `firewall-cmd --zone=public --remove-port=1024/tcp`
永久添加规则 `firewall-cmd --permanent --zone=public --add-port=1024/tcp`
重载配置使永久生效 `firewall-cmd --reload`

四、crond 计划任务

作用

  • 用于在特定时间执行任务,如每天凌晨自动重启服务,自动备份等。

常用命令(crontab)

命令 含义
crontab -l 查看当前用户的任务列表
crontab -e 编辑当前用户的任务列表
crontab -r 删除当前用户的任务列表
crontab -u 用户名 指定其他用户(需要root权限)

任务语法格式

* * * * *  command_to_execute
| | | | |
| | | | ----- 星期 (0-7) (0和7都代表星期天)
| | | ------- 月 (1-12)
| | --------- 日 (1-31)
| ----------- 时 (0-23)
------------- 分 (0-59)

支持的特殊符号

  • *:任意值
  • -:范围,如 1-5
  • /:间隔频率,如 */10 表示每10分钟
  • ,:多个指定值,如 1,2,6

注意事项

  • 有些命令需使用绝对路径,例如 useradd 等。
    ```bash
    whereis useradd # 查询命令位置
    ```

实用案例

问题描述 crontab 表达式
每月1、10、22日的4:45重启network服务 45 4 1,10,22 * * systemctl restart network
每周六、周日的1:10重启network服务 10 1 * * 6,7 systemctl restart network
每天18:00至23:00每隔30分钟执行任务 */30 18-23 * * * 命令

你可能感兴趣的:(linux,运维,服务器,Linux基础)