服务
服务就是一些特定的进程
自有服务
系统开机后就自动运行的一些进程
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 指定服务开机自启
参数 | 含义 |
---|---|
list-units --type service --all | 列出所有服务 |
list-units --type service | 列出所有已启动服务 |
status | 查看服务运行状态 |
stop | 停止运行服务 |
start | 启动服务 |
restart | 重启服务 |
reload | 重载 |
disable | 取消服务的开机自启 |
enable | 指定服务开机自启 |
常用的自有服务
ntpd 用于同步计算机系统时间
firewalld 防火墙
crond 计划任务
ntp时间同步
ntp 网络时间协议 用于同步网络中各个计算机的时间
服务器列表 - 全球可用的NTP服务器列表与解析服务 - ntp.org.cn & ntpdate.net
时间同步操作
手动同步
ntpdate 120.25.115.20
从服务器 120.25.115.20 同步标准网络时间 到我们的计算机 服务器由阿里云提供 建立在我们的计算机能访问互联网的前提
自动同步
启动ntpd服务并配置为开机自启 启动后 服务会帮我们自动同步网络时间
/etc/ntp.conf
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
作用:管理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 实时查看文件信息
在计划任务中 最小的单位就是分 没有比这个再小的
特殊字符 | 含义 |
---|---|
@reboot | 在每次启动时运行一次 |
@yearly | 每年运行一次,例如:“0 0 1 1 *” |
@annually | 与@yearly用法一致 |
@monthly | 每月运行一次,例如:“0 0 1 * *” |
@weekly | 每周运行一次,例如:“0 0 * * 0” |
@daily | 每天运行一次,例如:“0 0 * * *” |
@midnight | 与@daily用法一致 |
@hourly | 每小时运行一次,例如:“0 * * * *” |
示例:
# 每小时运行一次 #@hourly /test/test.sh
crontab权限问题
任何用户都可以创建计划任务,超级管理员可以通过配置来设置某些用户不允许使用计划任务
黑名单配置文件vim /etc/cron.deny
/etc/cron.allow 本身不存在 需要创建
白名单优先级高于黑名单
查看计划任务的保存路径
/var/spool/cron/用户名文件
计划任务的日志信息
/var/log/cron