自有服务与软件包

news/2025/2/11 20:21:33/

  

                                       —— 小 峰 编 

目录

  ​编辑

一、自有服务概述

二、systemctl管理服务命令

1、显示服务

2、查看启动和停止服务

3、服务持久化

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

 1、ntp时间同步服务

1)NTP同步服务器原理

2)到哪里去找NPT服务器

3)时间同步操作

2、firewalld  防火墙

1)什么是防火墙

linux防火墙-toc" style="margin-left:80px;">2)传统Linux防火墙

3、firewalld  防火墙的概念

1)区域

2)运行模式和永久模式

4、firewalld防火墙的配置

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

2) 管理firewall配置

常用选项:

①查看默认使用的区域

②查看所有可用区域

③列出当前使用区域配置

④列出所有区域的配置

⑤添加允许通过的服务或端口

⑥去掉允许通过的服务或端口

⑦永久模式参数permaent

⑧重新加载配置reload

5、计划任务crontab

1)计划任务的作用

2)查看计划任务

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

4)几个小案例  (分时日月周 命令或服务)

5)扩展

① crontab 权限问题

② 查看计划任务文件保存路径

③ 查看计划任务日志信息

四、Linux软件包

1、软件包概述

1)源码包

2)二进制包

2、如何获取rpm包

3、从光盘获取

3.1 虚拟机中加载光盘

3.2 使用 # lsblk(list block devices)或者df -T 查看块状设备的信息

3.3 进入/mnt/cdrom目录

4、查询某个软件安装情况

5、卸载某个软件

6、安装某个软件

7、更新某个软件

8、rpm扩展

8.1依赖关系

8.2 查看文件所属的包名(实用)

8.3查询软件安装完成后,生成了哪些文件

9、扩展:光盘的挂载和解挂

① 解挂操作

② 挂载光盘


一、自有服务概述


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

举例:当我们使用SSH客户端软件连接linux的时候,我们的服务器为什么会对连接做出响应?

答:是因为SSH服务开机就自动运行了。

所谓自有服务,简单来说,可以理解为Linux系统开机自动运行的服务(程序)
那我们如何管理这些自有服务呢?


二、systemctl管理服务命令

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

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

从Centos7开始,统一使用systemctl来管理服务, 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 --all


用法二:systemctl list-units --type service 不加具体服务名
示例代码:

#systemctl list-units --type service

含义:列出已运行的服务,空格可以翻页,q退出

2、查看启动和停止服务

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

#systemctl [选项] 服务名

选项:

status检查指定服务的运行状况
start启动指定服务
stop停止指定服务
restart重启指定服务
reload重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

用法三:

​​​​​​​systemctl 选项 服务名

示例代码:

#systemctl status crond

含义:查看crond服务的状态

  • Active:active(running) 表示当前crond服务是运行状态。
  • Inactive,表示crond服务当前是停止状态

用法四:​​​​​​​

systemctl 选项 服务名

示例代码:

#systemctl stop crond

含义:停止crond服务


用法五:

systemctl 选项 服务名

示例代码:

#systemctl start crond

含义:启动crond服务


用法六:

​​​​​​​systemctl 选项 服务名

示例代码:

#systemctl restart crond

含义:重启crond服务

#systemctl reload crond

含义:重新加载crond服务配置文件

3、服务持久化

所谓服务持久化就是  服务在开机的时候,是否自动启动。
命令:systemctl
作用:管理服务
语法:

#systemctl [选项] 服务名

选项:

  • enable:指定服务开机自动启动
  • disable:取消服务开机自动启动

用法七:

systemctl 选项 服务名​​​​​​​

示例代码:

#systemctl disable crond

含义:取消crond服务开机启动


用法八:

systemctl 选项 服务名

​​​​​​​​​​​​​示例代码:

#systemctl disable crond

含义:指定crond服务开机启动

  • systemctl参数总结
参数含义
list-units --type service --all列出所有服务
list-units --type service列出所有启动的服务
start启动指定服务
stop停止指定服务
status检查指定服务的运行状况
restart重启指定服务
reload重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)
enable指定服务开机自动启动
disable取消服务开机自动启动

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

服务名含义

ntpd用于同步计算机的系统时间的服务
firewalld防火墙服务
crond计划任务服务

 1、ntp时间同步服务

        NTP网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。
工作场景:
         公司开发了一个电商网站,由于访问量很大,网站后端由100台服务器组成集群。50台负责接收订单,50台负责安排发货,接收订单的服务器需要记录用户下订单的具体时间,把数据传给负责发货的服务器由于100台服务器时间各不相同,记录的时间经常不一致,甚至会出现下单时间是明天,发货时间是昨天的情况


1)NTP同步服务器原理

​​​​​​​
标准时间是哪里来的?
        现在的标准时间是由原子钟报时的国际标准时间UTCUniversal Time Coordinated,世界协调时)所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取。
在NTP中,定义了时间按照服务器的等级传播,Stratum层的总数限制在15以内。工作中,通常我们会直接使用各个组织提供的,现成的NTP服务器


2)到哪里去找NPT服务器

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

3)时间同步操作

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

手动同步

用法一:ntpdate 时间服务器IP
示例代码:
#ntpdate 203.114.74.17
含义:从服务器203.114.74.17同步标准网络时间到服务器(从http://www.ntp.org.cn/网站获取)
注意:从网络同步时间,要确保自己的服务器可以访问互联网

如果遇到错误信息:no servers can be used

错误信息的含义:服务器不可用,这里的服务器是指网络上的时间服务器,不可用,不代表是对方服务器有问题,也有可能是你自己的服务器网络不通,无法连接到网络上的时间服务器

自动同步

用法二:启动ntpd服务,并配置为开机启动
示例代码:
#systemctl start ntpd
#systemctl enable ntpd
含义:启动ntpd服务,并配置为开机启动,服务启动后,系统会自动同步网络时间
注意:从网络同步时间,要确保自己的服务器可以访问互联网

问题1:启动ntpd服务后,是不是时间就自动同步了?

答:启动后就自动同步了

问题2:需不需要让ntpd服务,开机自动运行?

答:需要ntpd服务配置文件位置 /etc/ntp.conf

2、firewalld  防火墙

1)什么是防火墙

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

> 防火墙选择让正常请求通过,从而保证网络安全性。

Windows防火墙:

linux防火墙">2)传统Linux防火墙

3、firewalld  防火墙概念

1)区域

CentOS6x中防火墙叫做iptables

CentOS7.x 中默认使用的防火墙是firewalld

​ 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拒绝流入的流量,除非与流出的流量相关,非法流量采取丢弃操作

2)运行模式和永久模式

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

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

firewall 默认采用  运行模式。

4、firewalld防火墙的配置

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

命令:systemctl

作用:管理服务

语法:

​​​​​​​#systemctl [选项] firewalld

选项:

status检查指定服务的运行状况
start启动指定服务
​ stop停止指定服务
restart重启指定服务
reload重新加载指定服务的配置文件(并非所有服务都支持reload,通常使用restart)

​       使用systemctl来管理firewalld的服务,具体命令前面已经讲过,只是服务名换成了firewalld,这里不再赘述。

2) 管理firewall配置

命令:firewall-cmd

作用:管理firewall具体配置

语法:

#firewall-cmd [参数选项1] …[参数选项n]

常用选项:

①查看默认使用的区域

用法一:firewall-cmd 选项
示例代码:
#firewall-cmd --get-default-zone
含义:查看默认使用区域,当前默认使用区域为public

②查看所有可用区域

用法二:firewall-cmd 选项
示例代码:
#firewall-cmd --get-zones
含义:查看所有可用区域

③列出当前使用区域配置

用法三:firewall-cmd 选项
示例代码:
#firewall-cmd --list-all
含义:查看所有可用区域

④列出所有区域的配置

用法四:firewall-cmd 选项
示例代码:
#firewall-cmd --list-all-zones
含义:查看所有可用区域

⑤添加允许通过的服务或端口

用法五:firewall-cmd 选项
示例代码:
# firewall-cmd --zone=public --add-port=80/tcp
含义:在public区域,添加允许http协议的80端口通过的规则#firewall-cmd --zone=public --add-service=http
含义:在public区域,添加允许http服务通过的规则

⑥去掉允许通过的服务或端口

用法五:firewall-cmd 选项
示例代码:
#firewall-cmd --zone=public --remove-port=1024/tcp
含义:在public区域,去掉允许tcp协议的1024端口通过的规则#firewall-cmd --zone=public --remove-service=ftp
含义:在public区域,去掉允许http服务通过的规则

⑦永久模式参数permaent

用法七:firewall-cmd 选项
示例代码:
#firewall-cmd --permanent --zone=public --add-port=80/tcp
含义:在public区域,使用permanent参数,永久添加允许80端口通过的规则

⑧重新加载配置reload

用法七:firewall-cmd 选项
示例代码:
#firewall-cmd --reload
含义:重新加载配置

补充:  查看防火墙的服务的配置文件,每个服务的相关的配置信息都是以 .xml 结尾的文件

使用命令:

 ls /usr/lib/firewalld/services/

​​

查看某一服务的具体配置 ( 以http服务为例 )

cat /usr/lib/firewalld/services/http.xml

5、计划任务crontab

1)计划任务的作用

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

2)查看计划任务

语法:

# crontab 选项

常用选项:

  • -l:list,列出指定用户的计划任务列表
  • -e:edit,编辑指定用户的计划任务列表,简单来说,计划任务就是一个文件
  • -u:user,指定的用户名,如果不指定,则表示当前用户
  • -r:remove,删除指定用户的计划任务列表

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

上述的提示,代表 root 用户没有计划任务需要去做。

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

进入计划任务编辑文件

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

计划任务的规则语法格式,以行为单位,一行则为一个计划:分 时 日 月 周 需要执行的命令

例如:0 0 * * * reboot,代表每天0时0分执行reboot指令。

取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~7,0 和 7 表示星期天四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在 1 点,2 点 6 点执行,则可以在时的位置写:1,2,6

> 特别补充在Linux系统中,有些命令不能直接在计划任务中使用,使用后,其也不会生效。如useradd命令。如果想让其生效必须使用完整路径。

问题:如何查询一个命令的真实路径在哪个位置?

> 答:使用whereis 命令名称。

4)几个小案例  (分时日月周 命令或服务

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

     答:45 4 1,10,22 * * service network restart

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

    答:10 1 * * 6,7 service network restart

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

    答:*/30 18-23 * * * service network restart

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

    答:3,15 8-11 */2 * * reboot

案例:每1 分钟往 root 家目录中的 readme.txt 中输一个1,为了看到效果使用追加输出【输出使用echo 命令,语法:# echo 输出的内容】

在末行模式下输入:wq保存并退出,使用tail -f查看test.c动态变化

> 注意:在计划任务中,默认最小单位就是分,不能再小了。如果需要做到秒级别则需要配合研发相关代码。

5)扩展

① crontab 权限问题

crontab是任何用户都可以创建的计划任务,但是超级管理员可以通过配置来设置某些用户不允许设置计划任务 。

黑名单配置文件位于:/etc/cron.deny 里面写用户名,一行只能写一个

保存退出,切换到xiaofeng普通用户,执行crontab命令,如下图所示:

白名单还有一个配置文件

/etc/cron.allow (本身不存在,自己创建)

> 注意:白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会被默认允许创建计划任务。

② 查看计划任务文件保存路径

问题:计划任务文件具体保存在哪里呢?

答:/var/spool/cron/用户名文件中,如果使用root用户编辑计划任务,则用户文件名为root

③ 查看计划任务日志信息

问题:在实际应用中,我们如何查看定时任务运行情况?

答:通过计划任务日志,日志文件位于/var/log/cron

四、Linux软件包

1、软件包概述

​ 这是什么?

​ Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是  源码包  二进制包

1)源码包

​       源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。计算机只能识别机器语言,也就是二进制语言,所以源码包安装之前需要编译。编译过程耗时较长​ 大多数用户不懂开发,编译过程中可能会有各种错误,用户无力解决。为了解决使用源码包安装的问题,Linux 软件包的安装出现了使用二进制包的安装方式。

2)二进制包

​ 二进制包,也就是源码包经过成功编译之后产生的包。

​ 二进制包是 Linux 下默认的软件安装包,目前主要有以下 2 大主流的二进制包管理系统:

  • RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
  • DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。

​ RPM 是 RedHat Package ManagerRedHat软件包管理工具)的缩写。

​ 作用rpm 的作用类似于豌豆荚,华为应用市场,App Store,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。

2、如何获取rpm包

> 要想装软件,和windows 下一样,先得找到安装包xxx.rpm

软件包的获得方式:

  • a. 去官网去下载(http://rpm.pbone.net);
  • b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;

3、从光盘获取

3.1 虚拟机中加载光盘

3.2 使用 # lsblk(list block devices)或者df -T 查看块状设备的信息

Name:名称
Size:设备大小
Type:类型
MountPoint:挂载点
此界面类似于Windows 下的磁盘管理界面:

3.3 进入/mnt/cdrom目录
#cd  /mnt/cdrom/Packages 
#ll

4、查询某个软件安装情况

语法:

# rpm -qa | grep 软件名称

选项:

  • -q:查询,query
  • -a:全部,all

示例代码:查询firefox浏览器的安装情况,已安装

#rpm -qa |grep firefox

示例代码:查询qq软件的安装情况,未安装

#rpm -qa |grep qq

5、卸载某个软件

语法:

# rpm -e 软件的名称(建议写完整的名称,通过-qa 查询)

案例:卸载火狐浏览器

#rpm -qa |grep firefox 首先查询firefox软件的完整名称 firefox-68.10.0-1.el7.centos.x86_64
#rpm -e firefox-68.10.0-1.el7.centos.x86_64

卸载完成后,单击firefox浏览器图标,运行结果如下图所示:

6、安装某个软件

命令:rpm

作用:管理rpm软件包

语法:

# rpm -ivh 软件包完整路径名称

选项:

  • -i:install,安装
  • -v:显示进度条
  • -h:表示以"#"形式显示进度条

示例代码:将刚刚卸载的firefox火狐浏览器重新安装(在DVD光盘1中)

用法:rpm -ivh 软件包名称
示例代码:
#cd /run/media/root/CentOS\ 7\ x86_64/Packages/
进入光盘Packages目录,里面存放了很多rpm的安装包#ll |grep firefox
查看Packages目录下,包含firefox的安装包#rpm -ivh firefox-60.2.2-1.el7.centos.x86_64.rpm
使用rpm命令,安装firefox软件包#rpm -qa |grep firefox
查询是否安装完成

安装完成后,打开firefox浏览器

7、更新某个软件

语法:

​​​​​​​# rpm -Uvh 完整的安装包路径

选项:

  • -U:upgrade,升级
  • -v:表示显示进度条
  • -h:表示以#形式显示进度条
用法:rpm -Uvh 软件包名称
示例代码:
#rpm -qa |grep firefox
查询当前firefox的版本#ll
查看root目录下,我们刚刚拷到虚机上的RPM安装包的名称#rpm -Uvh firefox-68.10.0-1.el7.centos.x86_64.rpm
使用rpm命令,安装60.8.0版本的软件包#rpm -qa |grep firefox
查询升级后的firefox版本

8、rpm扩展

8.1依赖关系

一个软件必须先有其他软件才能运行,例如之前xmind启动过程中提示的缺少DLL,称之为依赖WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。

60.8.0的firefox可以更新成功

下面我们尝试更新到68.4.1的版本

用法:rpm -Uvh 软件包名称#rpm -Uvh firefox-68.4.1-1.el7.centos.x86_64.rpm
使用rpm命令,安装68.4.1版本的软件包

错误提示:

error:Failed dependencies:

提示安装68版本的firefox需要依赖nspr4.21的版本,nss的3.44的版本,这就是我们说的依赖关系。为了解决依赖关系的问题,有另外一个管理工具叫做yum,后面我们会讲到。

8.2 查看文件所属的包名(实用)

语法:

# rpm -qf 需要查询的文件路径

选项:

  • -f:查询文件所属包

示例代码:查询/etc/ntp.conf 属于哪个软件包?

8.3查询软件安装完成后,生成了哪些文件

语法:

​​​​​​​# rpm -ql 需要查询的软件包名称
  • #rpm -ql firefox
  • #rpm -ql openssh

特别说明:软件安装完成后,一共生成了以下几类文件
配置文件类:/etc目录
程序文件本身,二进制文件命令:/usr/sbin目录
文档手册:/usr/share/doc或man目录

9、扩展:光盘的挂载和解挂

① 解挂操作

命令:umount

语法:

​​​​​​​# umount 当前设备的挂载点(路径)

例如:

#umount /run/media/root/CentOS\ 7\ x86_64/

② 挂载光盘

首先新建一个挂载点,然后使用mount命令进行挂在,挂载点可以理解为就是一个空目录

命令:mount

语法:

​​​​​​​# mount 设备文件原始地址(/dev目录) 要挂载的位置路径(盘符)

设备原始地址:地址统一都在/dev 下,然后根据大小确定具体name 值,拼凑在一起组成原

始地址,例如当前:“/dev/sr0”

用法:mount 设备 挂载点
示例代码:
#mkdir /mnt/cdrom   新建一个目录作为挂载点#mount /dev/sr0 /mnt/cdrom   将光驱设备/dev/sr0 挂载到 /mnt/cdrom这个挂载点#df -T
可以看到已经成功挂载

 

 本   篇   完   结   …  …


持     续     更     新     中   …    … 


http://www.ppmy.cn/news/1571232.html

相关文章

从零开始玩转Docker:轻松开启容器化之旅

一、什么是 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。简单来说,Docker 就像是一个超级 “快递箱”&#xff0c…

zabbix v7.2.3容器运行Proxy代理服务器启用IPV6访问

本文系在openEuler22.03系统上部署zabbix v7.2.3的Proxy代理服务器容器,并启用IPV6功能以便监控IPV6网元的实战化实践。openEuler22.03原生docker包不支持ip6tables自动配置功能,需提前将docker引擎进行升级,详细操作请参见本人前文&#xff…

黑马 Linux零基础快速入门到精通 笔记

初识Linux Linux简介 提及操作系统,我们可能最先想到的是windows和mac,这两者都属于个人桌面操作系统领域,而Linux则属于服务器操作系统领域。无论是后端软件、大数据系统、网页服务等等都需要运行在Linux操作系统上。 Linux是一个开源的操作…

Qt 数据库SQLite 使用【01】基本功能

1.开发背景 Qt 开发过程中难免需要存储数据,可以选择保存到本地文件,但是查找比较麻烦,所以就有了数据库,主要是方便查找数据,增删改查等操作,而 SqLite 属于数据库中轻量级的存在,适合本地数据…

python爬虫--简单登录

1,使用flask框架搭建一个简易网站 后端代码app.py from flask import Flask, render_template, request, redirect, url_for, sessionapp Flask(__name__) app.secret_key 123456789 # 用于加密会话数据# 模拟用户数据库 users {user1: {password: password1}…

驱动开发系列36 - Linux Graphics 2D 绘制流程

一: 概述 在Linux中,2D绘制流程是操作系统、图形库、显示协议、驱动程序等多个组件协调工作的结果。整体流程如下步骤所示: 1. 客户端请求:客户端程序(如GTK、Qt应用程序)通过X11协议与Xorg-Server通信(或通过Wayland协议与Wayland合成器通信)、请求绘制2D图形,比如绘制…

基于Kotlin中Flow扩展重试方法

最近项目中统一采用Kotlin的Flow来重构了网络请求相关代码。 目前的场景是,接口在请求的时候需要一个accessToken值,因为此值会过期或者不存在,需要刷新,因此最终方案是在使用Flow请求的时候先获取accessToken值然后再进行接口请求,而获取accessToken值的方法已经封装成了…

FastReport 加载Load(Stream) 模板内包含换行符不能展示

如下代码 当以FastReport 载入streams时 当模板内包含换行符时会导致不能正常生成pdf System.Xml.XmlDocument newFrxXml new System.Xml.XmlDocument(); newFrxXml.Load(fileName);FastReport.Report report new FastReport.Report();using (var memStream new MemoryStre…