服务
Linux 服务是在 Linux 操作系统中运行的后台进程,可以执行特定的功能或任务,例如网络服务、文件共享、数据库服务等。Linux 服务可以在系统启动时自动启动,并在后台持续运行,为用户提供服务。
Linux 中的服务通常是使用 init 系统或者 systemd 管理的。在 init 系统中,服务通常以启动脚本的形式存在,这些脚本存放在 /etc/init.d 目录下。在 systemd 中,服务则以单元文件的形式存在,这些文件存放在 /etc/systemd/system 目录下。
使用 init 系统或者 systemd 管理服务,可以方便地对服务进行启动、停止、重启、查询状态等操作。同时,也可以配置服务的自动启动、启动顺序、依赖关系等。
管理服务
systemctl 是 Linux 中的一个命令行工具,用于管理 systemd 系统和服务管理器。systemd 是一个 Linux 系统和服务管理器,用于启动和停止系统服务、管理进程、挂载文件系统等等。
使用 systemctl 命令可以管理 systemd 系统和服务管理器的各种功能,例如启动、停止、重启服务,查看服务状态、日志和依赖关系,设置服务开机自动启动等等。
以下是一些常用的 systemctl 命令:
systemctl start <service> 启动指定的服务
systemctl stop <service> 停止指定的服务
systemctl restart <service> 重启指定的服务
systemctl status <service> 查询指定服务的状态
systemctl enable <service> 设置指定服务开机自动启动
systemctl disable <service> 取消指定服务开机自动启动
systemctl list-units 列出所有正在运行的 systemd 单元
systemctl list-unit-files 列出所有可用的 systemd 单元文件
通过使用 systemctl 命令,可以方便地管理 Linux 系统中的各种服务和系统管理功能。
常用的自有服务
NTP时间同步
NTP(Network Time Protocol)是一种用于计算机网络中的时间同步协议,可以让计算机从网络时间服务器获取准确的时间,并将其应用到本地计算机的系统时钟上。在 Linux 中,可以使用 NTP 服务实现时间同步。
手动同步
ntpdate 120.25.115.20
从服务器120.25.115.20同步标准网络时间到我们的计算机。服务器由阿里云提供。需要计算机可以访问互联网。
date 查看本机时间
自动同步
启动ntpd服务并配置为开机自启,启动后服务会自动同步时间。
systemctl status ntpd 查看ntpd服务状态
systemctl start ntpd 启动ntpd服务
systemctl enable ntpd 将ntpd服务设置为开机自启
Firewalld防火墙
防范一些网络攻击 分软件防火墙和硬件防火墙
让正常请求通过 保证网络的安全性
防火墙规则
防火墙规则是定义防火墙如何处理网络流量的规则。每个规则包含一个条件和一个动作。条件可以是网络地址、端口、协议等,动作可以是允许、拒绝、重定向等。
firewalld 增加了区域的概念,预先准备了几套策略 类似于策略模板 用户根据需求去选择区域
常见的区域以及相应的策略规则
区域 | 默认策略 |
---|---|
trusted | 允许所有数据包 |
home | 拒绝流入的流量,除非与流出的流量相关,允许ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过 |
internal | 等同于home |
work | 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp-client,dhcpv6-client服务通过 |
public | 拒绝流入的流量,除非与流出的流量相关,允许ssh,dhcpv6-client服务通过 |
external | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 |
dmz | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通过 |
block | 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒绝操作 |
drop | 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作 |
运行模式:配置的策略立即生效 但是不写入配置文件(在关机前都有效)
永久模式:配置的策略写入配置文件,但是需要重载才能生效
默认采用运行模式
管理防火墙
firewall-cmd
管理firewall具体配置
firewall-cmd --state 查看防火墙的状态
firewall-cmd --list-all 查看防火墙的规则
firewall-cmd --get-zones 查看所有可用区域
firewall-cmd --get-default-zone 查看默认使用的区域
firewall-cmd --list-all-zones 列出所有区域的所有配置
firewall-cmd --zone-public --add-port=80/tcp --permanent
在public区域 添加允许tcp协议的80端口的规则
firewall-cmd --zone-public --remove-port=80/tcp --permanent
在public区域 去除允许tcp协议的80端口的规则
firewall-cmd --reload 重载
计划任务
计划任务(Cron)是指定期自动执行某个命令或脚本的机制。在 Linux 系统中,可以使用 Cron 来自动执行一些重复性的任务,比如备份、清理日志等。
Cron 任务由两部分组成:时间表达式和要执行的命令或脚本。时间表达式指定了任务应该在何时执行,而命令或脚本则指定了要执行的任务内容。
以下是一些常用的 Cron 命令:
1. 编辑 Cron 任务:
crontab -e
这会打开 Cron 编辑器,并允许用户编辑 Cron 任务。如果是第一次编辑 Cron 任务,则会提示选择编辑器。
2. 列出 Cron 任务:
crontab -l
这会列出当前用户的所有 Cron 任务。
3. 删除 Cron 任务:
crontab -r
这会删除当前用户的所有 Cron 任务。
4. 时间表达式:
时间表达式由五个字段组成,分别是分钟、小时、日期、月份和星期。每个字段可以采用以下格式:
* 匹配所有值。
*/n 匹配 n 的倍数。
n,m 匹配 n 和 m。
n-m 匹配 n 到 m 中的所有值。
例如,`0 0 * * *` 表示每天的 0 点 0 分执行任务。
5. 示例:
下面是一个示例 Cron 任务,它会每天的 0 点 0 分执行 `/home/user/backup.sh` 脚本:
0 0 * * * /home/user/backup.sh
如果想要在每周一的 1 点执行任务,则可以使用以下 Cron 任务:
0 1 * * 1 /home/user/backup.sh
注意,Cron 任务的执行时间是相对于系统时间的,因此需要确保系统时间的准确性。
以上是一些基本的 Cron 命令和示例,可以根据实际需求来配置 Cron 任务。