当前位置: 首页 > news >正文

day14-16系统服务管理和ntp和防火墙

一、自有服务概述

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

windows自带的各种服务

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

二、systemctl管理服务命令 

在Centos7之前,通过service 和 chkconfig两个命令来管理服务

service: 负责启动,停止服务,显示服务状态

service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、重新加载配置(reload)、查看状态(status)等。# service mysqld        #打印指定服务mysqld的命令行使用帮助。# service mysqld start    #启动mysqld# service mysqld stop    #停止mysqld# service mysqld restart    #重启mysqld

chkconfig: 指定服务是否开机启动

提供了一个维护/etc/rc[0~6] d 文件夹的命令行工具,它减轻了系统直接管理这些文件夹中的符号连接的负担。chkconfig主要包括5个原始功能:为系统管理增加新的服务、为系统管理移除服务、列出单签服务的启动信息、改变服务的启动信息和检查特殊服务的启动状态。当单独运行chkconfig命令而不加任何参数时,他将显示服务的使用信息。[root@localhost www]# chkconfig --list    #查看系统程序列表[root@localhost www]# chkconfig httpd on  #将httpd加入开机启动[root@localhost www]# chkconfig httpd off  #关闭httpd开机启动

systemd命令

systemd 是目前 Linux 系统上主要的系统守护进程管理工具,由于 init 一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面 init 也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。

systemctl命令

语法

systemctl [OPTIONS...] COMMAND [UNIT...]

command 选项字如下:

start:启动指定的 unit。
stop:关闭指定的 unit。
restart:重启指定 unit。
reload:重载指定 unit。
enable:系统开机时自动启动指定 unit,前提是配置文件中有相关配置。
disable:开机时不自动运行指定 unit。
status:查看指定 unit 当前运行状态。

参数:unit 是要配置的服务名称。

1、 显示服务

命令:systemctl

作用:管理服务

语法:#systemctl [选项]

选项:

list-units --type service --all:列出所有服务(包含启动的和没启动的)list-units --type service:列出所有启动的服务区别就在于--all参数

列出所有服务(启动,未启动都有) 

2.查看启动和停止服务 

命令:systemctl

作用:管理服务

语法:#systemctl [选项] 服务名

选项:

status:检查指定服务的运行状况

start:启动指定服务

stop:停止指定服务

restart:重启指定服务

reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

语法
systemctl 选项  服务名查看sshd服务的运行状态,如果这个关了,我们就无法ssh远程连接了

3、服务持久化

所谓服务持久化,就是服务在开机的时候,是否自动启动。

命令:systemctl

作用:管理服务

语法:#systemctl [选项] 服务名

选项:

enable:指定服务开机自动启动

disable:取消服务开机自动启动

is-enabled :查看是否设置了开机自启

 systemctl disable sshd

systemctl enable sshd

4、systemctl 小结

systemctl参数总结

三、常用自有服务(ntp,firewalld,crond)

 1、ntp时间同步服务

1)NTP同步服务器原理

标准时间是哪里来的?

现在的标准时间是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。

在NTP中,定义了时间按照服务器的等级传播,Stratum层的总数限制在15以内

工作中,通常我们会直接使用各个组织提供的,现成的NTP服务器。

2)到哪里去找NTP服务器

NTP授时网站:服务器列表 - 全球可用的NTP服务器列表与解析服务 - ntp.org.cn & ntpdate.net

3)timedatectl 命令

timedatectl(英文全拼:timedate control)命令用于在 Linux 中设置或查询系统时间、日期和时区等配置。

centos6时代,修改系统的时区、时间,需要用到
修改时间、日期、date命令
修改时区,cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改硬件时间、hwclock命令在centos7提供了更强大的timedatectl命令,整合了时间、时区操作。

在 Linux 运维中,通常使用此命令来设置或更改当前的日期、时间和时区,或启用自动系统时钟与远程 NTP 服务器同步,以确保 Linux 系统始终保持正确的时间。

语法

timedatectl [OPTIONS...] COMMAND ...

命令command
status :显示当前的时间设置。
show :显示 systemd-timedated 的属性。
set-time TIME :设置系统时间。
set-timezone ZONE :设置系统时区。
list-timezones :显示已知时区。
set-local-rtc BOOL :控制 RTC 是否在当地时间。(BOOL 的值可以是 1 / true 或 0 / false)
set-ntp BOOL :启用或禁用网络时间同步。(BOOL 的值可以是 1 / true 或 0 / false)
timesync-status :显示 systemd-timesyncd 的状态。
show-timesync :显示 systemd-timesyncd 的属性。


选项
选项:

-h, --help :显示帮助信息。
--version :显示软件包版本。
--no-pager :不用将输出通过管道传输到寻呼机(pager)。
--no-ask-password :不提示输入密码。
-H, --host=[USER@]HOST :在远程主机上操作。
-M, --machine=CONTAINER :在本地容器上操作。
--adjust-system-clock :更改本地 RTC 模式时调整系统时钟。
--monitor :监控 systemd-timesyncd 的状态。
-p, --property=NAME :仅显示此名称的属性。
-a, --all :显示所有属性,包括空属性。
--value :显示属性时,只打印值。

timedatectl实战

显示当前系统时间、日期

世界时间查询,世界时间查询_国际时间对照表

[root@yuanlai-0224 ~]# timedatectl statusLocal time: Thu 2022-03-17 18:11:37 CSTUniversal time: Thu 2022-03-17 10:11:37 UTCRTC time: Thu 2022-03-17 10:11:37Time zone: Asia/Shanghai (CST, +0800)NTP enabled: n/a
NTP synchronized: noRTC in local TZ: noDST active: n/a解释:
当地时间
世界时间
RTC时间,本地硬件时钟(主板上的纽扣电池供电,提供机器的时间正确,在主板的集成电路上)默认以UTC为准了
时区,亚洲上海
是否启用NTP
NTP同步状态
本地时区的RTC
DST是否激活CST解释
CST(北京时间)
北京时间,China Standard Time,中国标准时间。
在时区划分上,属东八区,比协调世界时早8小时,记为UTC+8。UTC
UTC(世界标准时间)
协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time")
整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时。GMT
格林威治标准时间指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线(UTC与GMT时间基本相同)。DST
夏令时指在夏天太阳升起的比较早时,将时间拨快一小时,以提早日光的使用,中国不使用。

 列出机器上支持的所有时区

[root@yuanlai-0224 ~]# timedatectl list-timezones

将本地时区从上海(Asia/Shanghai)设置为阿姆斯特丹(Europe/Amsterdam)

[root@yuanlai-0224 ~]#
[root@yuanlai-0224 ~]# timedatectl set-timezone "Europe/Amsterdam"
[root@yuanlai-0224 ~]# timedatectl show
Unknown operation show
[root@yuanlai-0224 ~]# timedatectl statusLocal time: Thu 2022-03-17 10:28:08 CETUniversal time: Thu 2022-03-17 09:28:08 UTCRTC time: Thu 2022-03-17 17:28:07Time zone: Europe/Amsterdam (CET, +0100)NTP enabled: n/a
NTP synchronized: noRTC in local TZ: noDST active: noLast DST change: DST ended atSun 2021-10-31 02:59:59 CESTSun 2021-10-31 02:00:00 CETNext DST change: DST begins (the clock jumps one hour forward) atSun 2022-03-27 01:59:59 CETSun 2022-03-27 03:00:00 CEST
[root@yuanlai-0224 ~]#
[root@yuanlai-0224 ~]#

 本地时区,恢复为亚洲、上海

[root@yuanlai-0224 ~]# timedatectl set-timezone "Asia/Shanghai"[root@yuanlai-0224 ~]# timedatectl statusLocal time: Thu 2022-03-17 17:32:34 CSTUniversal time: Thu 2022-03-17 09:32:34 UTCRTC time: Thu 2022-03-17 17:32:33Time zone: Asia/Shanghai (CST, +0800)NTP enabled: n/a
NTP synchronized: noRTC in local TZ: noDST active: n/a

4)时间同步操作

机器时间错乱后,可以进行

  • 时间同步,搭建ntpd服务
  • 时间校准,ntpdate命令

同步服务器时间方式有2 个:一次性同步手动同步、通过服务自动同步。

时间同步注意点(生产经验的坑)

ntpd在实际同步时间时是一点点的校准过来时间的,最终把时间慢慢的校正对

ntpdate不会考虑其他程序是否会阵痛,直接调整时间。一个是校准时间,一个是调整时间。

因为许多应用程序依赖连续的时钟,而使用ntpdate这样的时钟跃变,有时候会导致很严重的问题,如数据库事务操作等。

并且,还有如下缺陷

  • 安全问题
    • ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。
  • 太过于暴力
    • ntpdate是急变,是立即修改系统时间,非常依赖于时序的程序可能会出错,比如根据时间执行备份动作的脚本,或者一些监控程序。

因此,企业服务器里一般会部署ntpd服务,让服务器自动、定期的进行时间同步,且以公共时间服务器池为准,保证服务器集群的时间正确且一致。

手动同步ntpdate

该ntpdate命令需要单独安装。

yum install ntpdate -y

ntpdate使用语法

ntpdate 时间服务器地址# NTP中国服务器,cn.ntp.org.cn# 用法
[root@yuchao-linux01 ~]# ntpdate cn.ntp.org.cn16 Jan 16:30:08 ntpdate[5312]: step time server 182.92.12.11 offset 45505765.702122 sec

友情提示,错误情况,你可能输入的NTP服务器地址有误

1.要么是你机器无法上网

2.要么是输入的NTP服务器有问题

3.你输入错误

自动同步ntpd服务(推荐使用)

1.ntpd服务安装

# 查看是否安装
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]# rpm -q ntp
package ntp is not installed# 如果没有安装过的话,可以执行此命令安装
[root@yuchao-linux01 ~]# yum install  ntp -y

自动同步需要开启linux的ntp服务。

systemctl start/stop/restart  ntpd

每次开机,自动启动ntpd服务,就能够自动同步时间,保证服务器时间精准。

关于ntpd服务,默认用的哪些时间服务器地址,配置信息在

修改 /etc/ntp.conf 配置文件,参考如下修改3 # #系统时间与BIOS事件的偏差记录
4 driftfile /var/lib/ntp/drift
5
6 # by yuchao create ntpd.log
7 logfile /var/log/ntpd.log
8
9 # by yuchao create ntpd.pid
10 pidfile /var/run/ntpd.pid注释掉默认的这几行
19 # Use public servers from the pool.ntp.org project.
20 # Please consider joining the pool (http://www.pool.ntp.org/join.html).
21 #server 0.centos.pool.ntp.org iburst
22 #server 1.centos.pool.ntp.org iburst
23 #server 2.centos.pool.ntp.org iburst
24 #server 3.centos.pool.ntp.org iburst添加新的互联网中ntp服务器
# prefer表示为优先,表示本机优先同步该服务器时间
# 阿里云的延迟明显很低 https://help.aliyun.com/document_detail/92704.htmlserver times.aliyun.com iburst prefer 
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst添加新的ntp服务器地址,参数解释 iburst,当某一个ntp挂掉时,向它发送一些数据包,检测是否挂掉。########## 参数解释
ntpd.conf配置文件采用restrict实现权限控制Restrict [IP] mask [netmask_IP] [parameter]Parameter 的
ignore :拒绝所有类型的NTP联机。
nomodify: 客户端不能使用ntpc与ntpq这两个程序来修改服务器的时间参数,但客户端可透过这部主机来进行网络校时;
noquery:客户端不能够使用ntpc与ntpq等指令来查询时间服务器,不提供NTP的网络校时。
notrap:不提供trap 这个运程事件登入的功能。
notrust:拒绝没有认证的客户端。
Kod:kod技术可以阻止“Kiss of Death “包对服务器的破坏。
Nopeer:不与其他同一层的NTP服务器进行时间同步。利用server 设定上层NTP服务器,格式如下:
server [IP or hostname] [prefer]参数主要如下:
perfer:表示优先级最高
burst :当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。
iburst :当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。用法如
server times.aliyun.com iburst prefer # prefer表示为优先,表示本机优先同步该服务器时间
server ntp.aliyun.com iburst
server cn.pool.ntp.org iburst
设置系统时间和硬件时间同步

实现clock时间与system时间同步,配置/etc/sysconfig/ntpd文件

ntp服务,默认只会同步系统时间。

如果想要让ntp同时同步硬件时间,可以设置/etc/sysconfig/ntpd文件,在/etc/sysconfig/ntpd文件中,添加 SYNC_HWCLOCK=yes这样,就可以让硬件时间与系统时间一起同步。

[root@yuchao-linux01 ~]# cat  /etc/sysconfig/ntpd
# Command line options for ntpd
OPTIONS="-g"
SYNC_HWCLOCK=yes

启动ntpd服务

启动ntpd程序
[root@yuchao-linux01 ~]# systemctl start ntpd检查ntpd运行后,生成的相关文件
[root@yuchao-linux01 ~]# ll /var/log/ntpd.log
-rw-r--r-- 1 root root 864 Mar 17 18:25 /var/log/ntpd.log
[root@yuchao-linux01 ~]# ll /var/run/ntpd.pid
-rw-r--r-- 1 root root 4 Mar 17 18:25 /var/run/ntpd.pid
ntpstat

确认本地NTP与上层NTP服务器是否联通

[root@yuchao-linux01 ~]# ntpstat# 以和162.159.200.123服务器同步过
synchronised to NTP server (162.159.200.123) at stratum 4 # 时间校正到相差1110ms之内time correct to within 1110 ms# 每64秒会向上级NTP轮询更新一次时间polling server every 64 s
ntpq

查看时间同步状态

-p 显示时间服务器列表

[root@yuchao-linux01 ~]# ntpq -premote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*120.25.115.20   10.137.53.7      2 u   20   64    7   41.614   19.046   4.108
+203.107.6.88    10.137.38.86     2 u   24   64    7   15.996   23.737   6.711
+time.cloudflare 10.28.12.207     3 u   23   64   17  282.792  -14.257  59.448

参数详解

remote :本地主机所连接的上层NTP服务器,最左边的符号如下:
如果有[*] 代表目前正在使用当中的上层NTP服务器。
如果有[+] 代表也有连上上层NTP服务器,可以作为提高时间更新的候选NTP服务器
如果有[-] 代表同步的该NTP服务器被认为是不合格的NTP Server
如果有[x] 代表同步的外网NTP服务器不可用
refid :指的是给上层NTP服务器提供时间校对的服务器。
St:上层NTP服务器的级别。
When: 上一次与上层NTP服务器进行时间校对的时间(单位:s)
Poll :本地主机与上层NTP服务器进行时间校对的周期(单位:s)
reach:已经向上层 NTP 服务器要求更新的次数
delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
offset:时间补偿的结果,单位为10^(-6) 秒
jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。

5)date/hwclock/clock命令

date

可用来设置系统日期与时间。只有管理员才有设置日期与时间的权限,一般用户只能用date 命令显示时间。

若不加任何参数,data 会显示目前的日期与时间。

[root@yuchao-linux01 ~]# date
Thu Mar 17 18:59:49 CST 2022

语法,参数

-s, --set=STRING根据 STRING 设置时间 格式化修改时间+日期
[root@yuchao-linux01 ~]# date -s '20180808 13:13:13'
Wed Aug  8 13:13:13 CST 2018格式化修改时间
[root@yuchao-linux01 ~]# date -s '18:00:00'
Wed Aug  8 18:00:00 CST 2018格式化修改日期
[root@yuchao-linux01 ~]# date -s '20120606'
Wed Jun  6 00:00:00 CST 2012
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]# date '+%F'
2012-06-06
hwclock

hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。

在Linux中有硬件时钟系统时钟两种时钟。

硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。

系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。

所有Linux相关指令与函数都是读取系统时钟的设定。

语法参数
--systohc    将硬件时钟调整为与目前的系统时钟一致。--hctosys     将系统时钟调整为与目前的硬件时钟一致。--show    显示硬件时钟的时间与日期。--debug     显示hwclock执行时详细的信息。-w, --systohc        set the hardware clock from the current system time--systz          set the system time based on the current timezone--adjust         adjust the RTC to account for systematic drift since

以系统时间为准,修改硬件时钟

[root@yuchao-linux01 ~]# hwclock --hctosys
[root@yuchao-linux01 ~]# hwclock --show
Thu 17 Mar 2022 07:07:42 PM CST  -0.833680 seconds
[root@yuchao-linux01 ~]#

以硬件时间为准,修改系统时间

[root@yuchao-linux01 ~]# hwclock --systohc
[root@yuchao-linux01 ~]# hwclock --show
Thu 17 Mar 2022 07:08:18 PM CST  -0.740291 seconds

6)开机自启ntpd

# 默认为CentOS7的配置,CentOS6中需要使用chkconfig命令
[root@yuchao-linux01 ~]# systemctl enable ntpd
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

2、firewalld防火墙

什么是防火墙

防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。

防火墙的作用

防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。

防火墙的功能

防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信。

最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。

防火墙概念

防火墙一般有硬件防火墙和软件防火墙

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。

软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低

图解:

3、firewalld防火墙的概念

1)区域

CentOS6x中防火墙叫做iptables

CentOS7.x 中默认使用的防火墙是firewalld,但是依然更多的是使用iptables,firewalld默认都关了。

firewalld增加了区域的概念,所谓区域是指,firewalld预先准备了几套防火墙策略的集合,类似于策略的模板,用户可以根据需求选择区域。

常见区域及相应策略规则

2)运行模式和永久模式 

运行模式:此模式下,配置的防火墙策略立即生效,但是不写入配置文件

永久模式:此模式下,配置的防火墙策略写入配置文件,但是需要reload重新加载才能生效。

==firewall默认采用运行模式==

4、firewalld防火墙的配置

1)查看,开启和停止firewalld服务

命令:systemctl

作用:管理服务

语法:#systemctl [选项] firewalld

选项:

status:检查指定服务的运行状况

start:启动指定服务

stop:停止指定服务

restart:重启指定服务

reload:重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

2) 管理firewall配置

命令:firewall-cmd

作用:管理firewall具体配置

语法:#firewall-cmd [参数选项1] ....[参数选项n]

常用选项:

查看默认使用的区域
[root@yuchao-linux01 ~]# firewall-cmd --get-default-zone
public
查看所有可用区域
[root@yuchao-linux01 ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
列出当前使用区域配置
[root@yuchao-linux01 ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-client  # 允许的是ssh服务,也就是22端口的流量,是允许登录的ports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:
列出所有区域的配置信息
[root@yuchao-linux01 ~]# firewall-cmd --list-all-zones
添加允许通过的服务或端口(python,ntp)

你的linux机器,当前使用的是public区域的规则

默认信任的服务是,ssh,dhcp

准备一个web服务,通过python提供的简单命令,

python -m SimpleHTTPServer 80

 

此时的防火墙,是没有允许80端口的请求,进入到服务器的,除非你加一个规则,允许80端口的请求通过。

[root@yuchao-linux01 ~]# firewall-cmd --zone=public --add-port=80/tcp
success
[root@yuchao-linux01 ~]# 
[root@yuchao-linux01 ~]# 
[root@yuchao-linux01 ~]# firewall-cmd --zone=public --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports: 80/tcp  # 允许80端口通过了protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:
 去掉允许通过的端口

比如刚才你临时个服务器,添加了一个文件下载的服务,需要访问80端口

你现在不需要这个功能了,想去掉防火墙规则,继续加强服务器安全。

[root@yuchao-linux01 ~]# firewall-cmd --zone=public --remove-port=80/tcp
success
[root@yuchao-linux01 ~]# 
[root@yuchao-linux01 ~]# firewall-cmd --zone=public --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources: services: ssh dhcpv6-clientports:   # 端口被移除了protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:
添加允许ntp的防火墙策略
[root@yuchao-linux01 ~]# firewall-cmd --permanent --add-service=ntp
success
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]# firewall-cmd --reload
success
[root@yuchao-linux01 ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources:services: ssh dhcpv6-client ntpports: 80/tcpprotocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:检查iptables语句
[root@yuchao-linux01 ~]# iptables -L |grep ntp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ntp ctstate NEW
永久模式参数

permaent(永久性的)

# 永久性添加规则,并未立即生效
[root@yuchao-linux01 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]#
[root@yuchao-linux01 ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources:services: ssh dhcpv6-clientports:     # 端口规则还未生成protocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:# 重新加载防火墙规则
[root@yuchao-linux01 ~]# firewall-cmd --reload
success[root@yuchao-linux01 ~]# firewall-cmd --zone=public --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens33sources:services: ssh dhcpv6-clientports: 80/tcpprotocols:masquerade: noforward-ports:source-ports:icmp-blocks:rich rules:[root@yuchao-linux01 ~]# iptables -L |grep tcp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh ctstate NEW
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http ctstate NEW
[root@yuchao-linux01 ~]#

5、计划任务crontab 

1)计划任务的作用

作用:

操作系统不可能24 小时都有人在操作,有些时候想在指定的时间点去执行任务(例如:每天凌晨 2 点去重新启动Apache),此时不可能真有人每天夜里 2 点去执行命令,这就可以交给计划任务程序去执行操作了。

2)查看计划任务

==语法:# crontab 选项==

常用选项:

-l:list,列出指定用户的计划任务列表==

-e:edit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件==

-u:user,指定的用户名,如果不指定,则表示当前用户

-r:remove,删除指定用户的计划任务列表

示例代码:列出当前用户的计划任务列表

[root@yuchao-linux01 ~]# crontab  -l
no crontab for root

3)编辑计划任务(重点)

进入计划任务编辑文件

[root@yuchao-linux01 ~]# crontab -e

打开计划任务编辑文件后,可以在此文件中编写我们自定义的计划任务:

计划任务的规则语法格式,以行为单位,一行则为一个计划:

==分 时 日 月 周 需要执行的命令==

3.1) crontab语法(重点)

取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~6,0 和 7 表示星期天

四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6

并且在定时任务里,命令,请写上绝对路径。

通过whereis命令搜索 绝对路径[root@yuchao-linux01 ~]# whereis systemctl
systemctl: /usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz

语法实践基础题

0 0 * * * 每天0点执行15 1 * * * 每天夜里1点15分执行* * * * * 每分钟执行0 * * * * 每小时整点执行0 */2 * * * 每隔2小时执行*/30 * * * * 每隔30分钟执行00 01 15 * *  每个月15号的夜里1点执行00 05 1-14 * * 每个月的1到14号的凌晨5点执行00 6-8 */5 * * 每隔5天的凌晨6-8点之间的整点执行00 20-23/2  * * *  每天晚上8点到11点之间,每隔2小时的整点执行00 23 * * 1-3  每周1到周三的晚上11点整执行

问题1:每月1、10、22 日的4:45 重启network 服务

45 4 1,10,22 * *  /usr/bin/systemctl restart network

问题2:每周六、周日的1:10 重启network 服务

10 1 * * 6,7  /usr/bin/systemctl restart network

问题3:每天18:00 至23:00 之间每隔30 分钟重启network 服务

*/30 18-23 * * *  /usr/bin/systemctl restart network

问题4:每隔两天的上午8 点到11 点的第3 和第15 分钟执行一次重启

3,15 8-11 */2 * * /usr/sbin/reboot

问题5 :每天凌晨整点重启nginx服务。

00 * * * * /usr/bin/systemctl restart nginx

问题6:每周4的凌晨2点15分执行命令

15 2 * * 4 command

问题7:工作日的工作时间内的每小时整点执行脚本。

00 9-18 * * 1-5 /usr/bin/bash my.sh

问题8:如果定时任务的时间,没法整除,定时任务就没有意义了,得通过其他手段,自主控制定时任务频率。

问题9:crontab提供最小分钟级别的任务,想完成秒级别的任务,得通过编程语言自己写。

问题10:每1分钟向文件里写入一句话"超哥666",且实时监测文件内容变化。

1.写入计划任务
crontab -e2.写入语句
[root@yuchao-linux01 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@yuchao-linux01 ~]# 
[root@yuchao-linux01 ~]# crontab -l
* * * * * /usr/bin/echo '超哥666' >> /tmp/chaoge.txt# 3.等待定时任务执行
[root@yuchao-linux01 ~]# tail -F /tmp/chaoge.txt
tail: cannot open ‘/tmp/chaoge.txt’ for reading: No such file or directory
tail: ‘/tmp/chaoge.txt’ has appeared;  following end of new file
超哥666
超哥666# 4. 删除用户的定时任务
crontab -r

问题11:每天凌晨2点30,执行ntpdate命令同步times.aliyun.com,并且sys同步到硬件时钟,且不输出任何信息。

1.ntpdate同步成功后,会生成同步的结果日志
[root@yuchao-linux01 ~]# ntpdate -u ntp.aliyun.com
可以重定向标准输出结果到黑洞文件,
ntpdate -u ntp.aliyun.com &>  /dev/null2.编写定时任务语句
30 2 * * * /usr/sbin/ntpdate -u ntp.aliyun.com &>  /dev/null;/usr/sbin/hwclock -w &> /dev/null

6、定时任务经验总结(规范)

  • 编写定时任务要有注释说明
  • 编写定时任务路径信息尽量使用绝对路径
  • 编写定时任务命令需要采用绝对路径执行
    • /etc/crontab文件中定义了crontab可用的PATH搜索路径
  • 编写定时任务时,可以将输出到屏幕上的信息保存到黑洞中,避免占用磁盘空间
    • * * * * * sh test.sh &>/dev/null
    • 或者重定向到文件中,便于排查问题
  • 定时任务中执行命令,如果产生输出到屏幕的信息,都会以邮件方式告知用户
    • /var/spool/mail/root,该日志会不断增大,占用磁盘空间
    • 关闭本地邮件服务即可,systemctl stop postfix
  • 当定时任务需要执行复杂任务的时候,需要编写为shell脚本再去运行了,注意脚本得有x权限
vim backup.sh 写入cp -a /data /backup    
tar zcvf /backup/data.tar.gz  /data# 写入配置文件
crontab -e # 这是于超老师写的备份脚本,用于定时任务
* * * * *  /bin/sh /server/scripts/backup.sh &>/dev/null

相关文章:

day14-16系统服务管理和ntp和防火墙

一、自有服务概述 服务是一些特定的进程,自有服务就是系统开机后就自动运行的一些进程,一旦客户发出请求,这些进程就自动为他们提供服务,windows系统中,把这些自动运行的进程,称为"服务" window…...

java 根据路径下载文件转换为MultipartFile,并且上传到服务器

直接上代码 controller层 GetMapping("/downloadAndUploadAttachment")UpdateOperationLogging(msg "根据路径下载文件转换为MultipartFile,并且上传到服务器")Operation(summary "根据路径下载文件转换为MultipartFile,并且上传到服务器", de…...

递归实现指数型枚举(递归)

92. 递归实现指数型枚举 - AcWing题库 每个数有选和不选两种情况 我们把每个数看成每层,可以画出一个递归搜索树 叶子节点就是我们的答案 很容易写出每dfs函数 dfs传入一个u表示层数 当层数大于我们n时,去判断每个数字的选择情况,输出被选…...

WebMvcConfigurer和WebMvcConfigurationSupport(MVC配置)

一:基本介绍 WebMvcConfigurer是接口,用于配置全局的SpringMVC的相关属性,采用JAVABean的方式来代替传统的XML配置文件,提供了跨域设置、静态资源处理器、类型转化器、自定义拦截器、页面跳转等能力。 WebMvcConfigurationSupport是webmvc的…...

HIPT论文阅读

题目《Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning》 论文地址:[2206.02647] Scaling Vision Transformers to Gigapixel Images via Hierarchical Self-Supervised Learning 项目地址:mahmoodlab/HI…...

完全二叉树的权值(蓝桥杯2019年试题G)

给定一棵包含N个节点的完全二叉树,树上的每个节点都有一个权值,按从上到小、从左到右的顺序依次是A1、A2……An,(1,2,n为下标。)如下图所示。 现在,小明要把相同深度的节点的权值加到一起&#…...

用adb命令给APP做压力测试,有什么不同?

压力测试 app做压力测试目的是模拟用户在使用软件时随意向软件发出指令,例如操作app的点击,滑动,返回等一系列随机事件,来检测app的承受能力 第一步:手机安装包需要待测的app 第二步:输入adb start-ser…...

Spring 6 实现 Bean 异步初始化,减少项目启动时间

在 Spring 6 中,异步初始化 Bean 为优化应用启动性能提供了有力手段。通过让特定的 Bean 在后台进行初始化,避免其阻塞应用的启动流程,从而显著缩短应用从启动到对外提供服务的时间。 一、基础环境搭建 首先,确保项目的依赖中引入…...

【案例80】麒麟操作系统无法使用Uclient访问NC65

问题现象 麒麟操作系统,安装Uclient,添加应用后无法看到登录界面,一直在转圈。 问题分析 进入到Uclient的工作目录 发现在工作目录下,无相关app.log生成。 查看Uclient的main.log发现,有大量的报错与Uclient下的sha…...

一个签名笔迹量化分析专家辅助系统

写在正文前 关于签名的鉴定有国家制定的标准,一个小册子,好像是 80多页 ,俺看的还是 2000年版的,现在应该有很多新版本了。这方面有很多教材和书籍。而且国家也有专门的评审。 正文开始 这是翻老硬盘时发现的,09年左…...

富途证券C++面试题及参考答案

C++ 中堆和栈的区别 在 C++ 中,堆和栈是两种不同的内存区域,它们有许多区别。 从内存分配方式来看,栈是由编译器自动分配和释放的内存区域。当一个函数被调用时,函数内的局部变量、函数参数等会被压入栈中,这些变量的内存空间在函数执行结束后会自动被释放。例如,在下面的…...

鸿蒙app封装 axios post请求失败问题

这个问题是我的一个疏忽大意,在这里记录一下。如果有相同问题的朋友,可以借鉴。 当我 ohpm install ohos/axios 后,进行简单post请求验证,可以请求成功。 然后,我对axios 进行了封装。对axios 添加请求拦截器/添加响…...

详解 Qt WebEngine 模块

Qt WebEngine 模块是 Qt 提供的一个功能强大的模块,用于在 Qt 应用中嵌入和显示现代网页内容。该模块基于 Chromium 引擎,支持丰富的 Web 技术(如 HTML5、CSS3、JavaScript 等),适合需要嵌入网页浏览、Web 应用、JavaS…...

常用的缓存技术都有哪些

在计算机科学和软件开发领域,缓存技术是提高系统性能和响应速度 1. 本地缓存(Local Cache): • 存在于应用程序本地内存中的缓存,用于存储频繁访问的数据,以减少对外部存储(如数据库&#xff09…...

MySQL通过日志恢复数据的步骤

试验环境:Windows Server2012 r2、MySql-8.0.27-winx64。 1、先检查MySQL有没有开启binlog日志 通过下面的SQL命令查看MySQL是否开启日志以及日志文件的位置: show variables like %log_bin% 执行结果如下图所示: 图中,log_bi…...

SQL Server 表值函数使用示例

在 SQL Server 中,表值函数(Table-Valued Functions, TVFs)是一种用户定义函数,它可以返回一个表。表值函数有两种类型:内联表值函数(Inline Table-Valued Function)和多语句表值函数(Multi-Statement Table-Valued Function)。下面分别介绍这两种类型的表值函数及其使…...

计算机网络之多路转接epoll

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络之多路转接epoll 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌 目…...

BPMN与一般的流程图区别在那里?

1. 语义和标准性 BPMN(业务流程建模符号) 基于标准语义:BPMN是一种标准化的业务流程建模语言,拥有一套严谨的语义规范。它由国际对象管理组织(OMG)维护,定义了事件、活动、网关和流向等元素的确…...

内容与资讯API优质清单

作为开发者,拥有一套API合集是必不可少的。这个开发者必备的API合集汇集了各种实用的API资源,为你的开发工作提供了强大的支持!无论你是在构建网站、开发应用还是进行数据分析,这个合集都能满足你的需求。你可以通过这些免费API获…...

uniapp获取内容高度

获取内容高度 getNewsHieght(index) {uni.createSelectorQuery().select(.content_${index}).boundingClientRect(rect > {console.log(打印该盒子的元素, rect.height);swiperHeight.value rect.height// console.log(打印swiperHeight的数值,this.swiperHeight);}).exec…...

Unity局部和世界坐标系相互转换的实现原理

注:本篇是基于唐老师的学习视频做的一些理论实践,需要提前知道一些线性代数的基础知识,原视频链接: 8.数学基础知识学习说明_哔哩哔哩_bilibili 前期准备: 知识点①: Unity中需要遵守的设定:…...

数据结构(Java版)第六期:LinkedList与链表(一)

目录 一、链表 1.1. 链表的概念及结构 1.2. 链表的实现 专栏:数据结构(Java版) 个人主页:手握风云 一、链表 1.1. 链表的概念及结构 链表是⼀种物理存储结构上⾮连续存储结构,数据元素的逻辑顺序是通过链表中的引⽤链接次序实现的。与火车…...

浅谈文生图Stable Diffusion(SD)相关模型基础

1.U-Net模型基础 1.基础概念 UNet模型是一种基于卷积神经网络的图像分割算法,它采用了U型的网络结构,由编码器(下采样路径)和解码器(上采样路径)两部分组成。 编码器负责提取输入图像的特征,…...

7-10 函数和排序练习一

输入n个数(n<10)&#xff0c;对其中的素数进行排序&#xff08;剔除非素数&#xff09;&#xff0c;输出排序后的数列结果。 建议&#xff1a;编写若干函数&#xff0c;用以判断素数&#xff0c;以及对数组进行排序。 输入格式: 第一行是一个正整数t,表示测试的总数。 然后…...

【FFmpeg 教程 一】截图

本章使用 ffmpeg 实现观影中经常会用到的功能&#xff0c;截图。 以下给出两种方式。 课程需具备的基础能力&#xff1a;Python 1. 使用 subprocess 调用 FFmpeg 命令 import subprocess def extract_frame(video_path, output_image_path, timestamp"00:00:05")&qu…...

Python选择题训练工具:高效学习、答题回顾与音频朗读一站式体验

一、引言 随着人工智能技术的不断进步&#xff0c;传统的教学方式已经逐渐向智能化、互动化转变。在众多英语测试题型中&#xff0c;选择题作为一种高效的方式被广泛应用于各类培训与考试中。为了帮助学生高效学习与自测&#xff0c;本篇文章将采用Python编写一款基于 Python …...

【Python】使用Selenium 操作浏览器 自动化测试 记录

【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等-CSDN博客文章浏览阅读389次。【自动化】Python SeleniumUtil 工具。https://blog.csdn.net/G971005287W/article/details/144565691?spm1001.2014.3001.5501【学习记录】浏览器指纹相关学习记录&am…...

汽车IVI中控开发入门及进阶(42):OpenVG

概览: OpenVG是一个无版权、跨平台的API,它为高级用户界面和矢量图形库(如SVG)提供了一个低级硬件加速接口。OpenVG主要针对需要便携式加速高质量矢量图形以获得引人注目的用户界面和文本的消费电子产品、手持设备、可穿戴设备和汽车设备,同时使硬件加速能够在非常低的功…...

两点间最短距离 - Dijkstra

一、汇总 算法场景说明参考BFS 树 无权图的搜索 标准BFS默认搜索一条最短路径 改造后可以输出所有最短路径 https://blog.csdn.net/m0_37145844/article/details/144534202DFS走迷宫主要利用回溯算法思想&#xff0c;不保证最短路径https://blog.csdn.net/m0_37145844/articl…...

0002__GPU

国内GPU公司主要包括以下几家‌&#xff1a; ‌摩尔线程‌&#xff1a;摩尔线程被誉为“中国版英伟达”&#xff0c;成立于2019年&#xff0c;由前英伟达全球副总裁张建中创立。该公司已获得425项授权专利&#xff0c;计划上市&#xff0c;目标估值高达1500亿元。摩尔线程的技术…...

StarRocks 排查单副本表

文章目录 StarRocks 排查单副本表方式1 查询元数据&#xff0c;检查分区级的副本数方式2 SHOW PARTITIONS命令查看 ReplicationNum修改副本数命令 StarRocks 排查单副本表 方式1 查询元数据&#xff0c;检查分区级的副本数 # 方式一 查询元数据&#xff0c;检查分区级的副本数…...

基于字节大模型的论文翻译(含免费源码)

基于字节大模型的论文翻译 源代码&#xff1a; &#x1f44f; star ✨ https://github.com/boots-coder/LLM-application 展示 项目简介 本项目是一个基于大语言模型&#xff08;Large Language Model, LLM&#xff09;的论文阅读与翻译辅助工具。它通过用户界面&#xff08…...

【原生js案例】ajax的简易封装实现后端数据交互

ajax是前端与后端数据库进行交互的最基础的工具&#xff0c;第三方的工具库比如jquery,axios都有对ajax进行第二次的封装&#xff0c;fecth是浏览器原生自带的功能&#xff0c;但是它与ajax还是有区别的&#xff0c;总结如下&#xff1a; ajax与fetch对比 实现效果 代码实现 …...

uniapp Native.js 调用安卓arr原生service

有问题&#xff0c;文中的内容不正确 最近搞了个uni小项目&#xff0c;一个定制的小平板&#xff0c;带一个nfc设备&#xff0c;厂家只给了一套安卓原生demo&#xff0c;头一次玩原生安卓&#xff0c;废了好半天劲打出来arr包&#xff0c;想镶进uniapp里&#xff0c;网上查了好…...

关于画火山图(by ggplot2)的一些总结和经验

愿武艺晴小朋友一定得每天都开心! 文献中常用经典的火山图,是展示差异表达基因的利器。每次测完转录组,做实验组和对照组的比较后,都会用到。 我自己也画了不算太多也不算太少的次数。然后最近画的时候忽然间意识到这个可视化方法我经常用,却没系统的整理过,一些tips散…...

组装一台电脑需要哪些硬件设备?点击了解

组装一台电脑是一个既有趣又实用的过程&#xff0c;我们可以根据自己的需求和预算来定制一台完全符合个人使用习惯的计算机。 一、核心部件 1、中央处理器&#xff08;CPU&#xff09; CPU是计算机的“大脑”&#xff0c;负责执行各种计算任务。它的性能直接影响到计算机的运…...

Mac M1使用pip3安装报错

1. Mac系统使用pip3安装组件的时候报”外部管理环境”错误&#xff1a; error: externally-managed-environment 2.解决办法 去掉这个提示 1、先查看当前python版本&#xff1a; python3 --version 2、查找EXTERNALLY-MANAGED 文件的位置&#xff08;根据自己当前使用的pytho…...

在Linux系统安装配置 MySQL 和 hive,hive配置为远程模式

前提&#xff1a;已安装配置好了Hadoop环境&#xff0c;因为hive的底层是Hadoop 1 Mysql安装 搜索Centos7自带的mariadb rpm -qa|grep mariadb 卸载mariadb rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps 再搜索一次看看是否还存在 rpm -qa|grep mariadb 安装mysql 创…...

亚信安全与方天股份达成战略合作,双向奔赴助力数字化转型

近日&#xff0c;亚信安全科技股份有限公司&#xff08;以下简称“亚信安全”&#xff09;正式与青岛方天科技股份有限公司&#xff08;以下简称“方天股份”&#xff09;签订合作框架协议。双方强强携手&#xff0c;在网络安全运营平台共建、信息化项目安全支撑、政企市场拓展…...

ubuntu镜像开荒ssh

直接unminimized deprecated me ubuntu 安装 ssh&#xff0c;用 service 启动 4o 在 Ubuntu 上安装并启动 SSH 服务&#xff0c;你可以按照以下步骤进行操作&#xff1a; 更新软件包列表&#xff1a; 首先&#xff0c;确保你的软件包列表是最新的。打开终端并运行以下命令&…...

前端yarn工具打包时网络连接问题排查与解决

最近线上前端打包时提示 “There appears to be trouble with your network connection”&#xff0c;以此文档记录下排查过程。 前端打包方式 docker启动临时容器打包&#xff0c;命令如下 docker run --rm -w /app -v pwd:/app alpine-node-common:v16.20-pro sh -c "…...

CCF-GESP 等级考试 C++ 真题解析目录

GESP C 一级 序号日期真题解析链接12023.03CCF-GESP 等级考试 2023年3月认证C一级真题解析22023.06CCF-GESP 等级考试 2023年6月认证C一级真题解析32023.09[CCF-GESP 等级考试 2023年9月认证C一级真题解析]42023.12[CCF-GESP 等级考试 2023年12月认证C一级真题解析]52024.03[C…...

如何使用 WebAssembly 扩展后端应用

1. WebAssembly 简介 随着互联网的发展&#xff0c;越来越多的应用借助 Javascript 转到了 Web 端&#xff0c;但人们也发现&#xff0c;随着移动互联网的兴起&#xff0c;需要把大量的应用迁移到手机端&#xff0c;随着手端的应用逻辑越来越复杂&#xff0c;Javascript 的解析…...

从DINO到DINOv2——自监督视觉Transformer的升级改进之路(基于ViT)

前言 之所以关注到DINOV2&#xff0c;原因在于我解读多个具身机器人模型时——发现他们的视觉基座都用的DINOV2&#xff0c;比如 rekepOpen-TeleVisionOpenVLACogACTOKAMI 不过&#xff0c;实话讲&#xff0c;DINO论文的可读性是真的不高&#xff0c;使得本次解读不易..总之…...

CCF-GESP 等级考试 2024年12月认证C++七级真题解析

2024年12月真题 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 正确答案&#xff1a;D 解析&#xff1a;考察字符类型和ASCII码值。 字符类型参与运算&#xff0c;是它所对应的ASCII码值在参与运算&#xff0c;运算结果为整数值。小写字母 b 的ASCII码为98&am…...

Qt之串口设计-线程实现(十二)

Qt开发 系列文章 - Serial-port&#xff08;十二&#xff09; 目录 前言 一、SerialPort 二、实现方式 1.创建类 2.相关功能函数 3.用户使用 4.效果演示 5.拓展应用-实时刷新 总结 前言 Qt作为一个跨平台的应用程序开发框架&#xff0c;在串口编程方面提供了方便易用…...

20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕

20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕 2024/12/17 17:21 缘起&#xff0c;最近需要识别法国电影《地下铁》的法语字幕&#xff0c;使用 字幕小工具V1.2【whisper套壳/GUI封装了】 无效。 那就是直接使用最原始的whisper来干了。 当你重装WIN10的时候&#…...

基于 uniapp 开发 android 播放 webrtc 流

一、播放rtsp协议流 如果 webrtc 流以 rtsp 协议返回&#xff0c;流地址如&#xff1a;rtsp://127.0.0.1:5115/session.mpg&#xff0c;uniapp的 <video> 编译到android上直接就能播放&#xff0c;但通常会有2-3秒的延迟。 二、播放webrtc协议流 如果 webrtc 流以 webrt…...

Java反射学习(3)(“反射“机制获取成员变量及详细信息(Field类))

目录 一、基本引言。 &#xff08;1&#xff09;基本内容回顾。 &#xff08;2&#xff09;本篇博客的核心内容-基本介绍。 二、Java中使用"反射"机制获取成员变量及内部的详细信息。 &#xff08;1&#xff09;"反射"机制获取成员变量及详细信息的基本概念…...

Flutter组件————AppBar

AppBar 是 Flutter 中用于创建应用程序顶部栏的组件&#xff0c;它遵循 Material Design 规范。 参数&#xff1a; 参数名称类型描述titleWidget设置 AppBar 中的标题文本或自定义标题小部件。automaticallyImplyLeadingbool决定是否自动添加返回按钮&#xff08;如果页面不是…...