linux系统自有服务(下)

2020/11/12 11:50
阅读数 27

系统自有服务(下).md

自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)

学习目标

1、掌握主机名设置的两种方式

2、了解FQDN作用

3、了解chkconfig的作用

4、能使用chkconfig命令实现服务的添加与删除

5、了解ntp服务

6、掌握ntpdate时间同步原理与实现

7、了解防火墙的作用

8、熟练防火墙的相关操作(启动、停止)

9、了解防火墙规则

10、了解rpm包的安装方式

11、掌握光盘的挂载和解挂

12、掌握rpm包的卸载、安装以及更新操作

13、了解计划任务的作用

14、掌握计划任务的编辑

15、了解计划任务的扩展功能(权限、文件保存路径、日志查看)

一、主机名设置

1、回顾hostname命令

语法:# hostname 查看完整主机名

语法:# hostname  -f FQDN(全限定域名、域名、主机名)

ntp.itcast.cn

web01.itcast.cn

web02.itcast.cn

wps1

2、临时设置主机名

效果(立竿见影),但是需要切换用户使之生效。

语法:# hostname 设置的主机名

例如:将当前主机的主机名设置成yunwei.itcast.cn

wps2

3、永久设置主机名

第一步:先找到文件/etc/sysconfig/network文件 【主机名的配置文件】

wps3

第二步:修改其中的HOSTNAME 为自己需要设置的永久主机名

wps4

第三步:修改服务器的hosts 文件,将yunwei 指向本地(设置FQDN)域名 IP DNS 的应用

文件路径:/etc/hosts

wps5

更改完成以上文件后,请自行重启计算机。

4、扩展:FQDN

问题:不设置FQDN会怎么样?

答:

① 很多开源服务器软件(例如Apache)无法启动或出现报错

② 方便记忆,看到主机名对其作用有一个初步判断

③ 如果不设置则会影响本地的域名的解析(本地访问)

二、chkconfig

1、chkconfig概述

作用:相当于Windows下"安全卫士"、"电脑管家"之类的安全辅助工具提供"开机启动项"的一个管理服务。

2、为什么需要chkconfig

在Linux下不是所有的软件安装完成之后都有开机启动服务,有的可能需要自己去添加。除此之外还可以查看和删除。

注:【在CentOS6 中使用的是chkconfig,在CentOS7 中使用的是systemctl】

3、开机启动服务查询

命令:# chkconfig  --list

wps6

wps7

其中 0-6 表示各个启动级别
例如:以 httpd 为例
其3级别为关闭(off),则表示:在3启动模式下默认开机不启动, 在5对应的也是关闭,则表示其在桌面环境下也是开机不启动。
再例如:haldaemon 服务,在 3,4,5 的级别下默认开机启动的,其他级别下默认开机不启动


4、添加开机启动服务

语法:# chkconfig --add 服务名

注:添加的开机启动服务必须在/etc/init.d,才可以使用chkconfig --add 服务名

示例代码:将apache 的httpd服务添加到chkconfig 列表中去,让httpd 被chkconfig管理

① 校对/etc/init.d目录下服务apache服务名称:httpd

wps8

② 把httpd服务添加到开机启动服务中

wps9

③ 设置服务在某个级别下开机启动/不启动【重点命令】

语法:# chkconfig  --level  连在一起的启动级别  服务名  on 开/off 关

示例代码:设置 httpd 服务在3,5 级别下默认开机启动

wps10

如果只想查看 httpd 服务的开机启动信息,还可以使用管道命令 + grep实现:

wps11

示例代码:设置httpd 服务在5的级别下默认开机不启动(off)

wps12

5、删除开机启动服务

# chkconfig   --del   服务名

例如:删除 httpd 服务【删除服务与开机不启动是2个概念,删除服务仅表示对应的服务的启动项不再由chkconfig 进行管理】

示例代码:在开机启动中删除httpd服务

wps13

6、扩展:CentOS7中的开机启动

在centos7 中开机启动项就不再使用chkconfig了,虽然依然兼容,而是使用systemctl命令。

systemctl  enable   服务名

systemctl  disable  服务名

查看开机启动项,可以使用 systemctl list-unit-files

7、练习

① 设置 sshd 服务,在12345 级别下开机启动,其他级别不启动;

② 设置 kdump 服务,在1235 级别下开机启动,其他级别不启动;

扩展:grep过滤时同时查询多个关键词,-E:extension(扩展),“|”表示或者,即只有一行上符合其中一个关键词即可取出。

三、ntp服务

1、ntp概述

作用:ntp 主要是用于对计算机的时间同步管理操作。

时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响。

例如:当前虚拟机里的linux 时间就是不准确的。

wps14

2、同步服务器原理

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

上游的概念:

wps15

① # ntpdate  时间服务器的域名或IP地址

IP地址查看可以访问:http://www.ntp.org.cn/pool.php

wps16

使用ntpdate同步服务器时间:

wps17

② 设置时间同步服务ntpd

服务名:ntpd

启动ntpd服务:service ntpd start 或者 /etc/init.d/ntpd start

wps18

设置ntpd服务开机启动:

wps19

四、防火墙(重点)

1、什么是防火墙

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

wps20

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

Windows防火墙:

wps21

2、Linux防火墙

在当前的CentOS6.9 中防火墙有一个名称:iptables 【7.x 中默认使用的是firewalled】

① 查看iptables 是否开机启动

wps22

注意:iptables 启动后是无法通过 ps 查看进程的,其处理是由内核处理的防火墙通行规则,因此进程中是没有的。

永久关闭防火墙的方案:chkconfig --level 2345 iptables off

② iptables 服务启动/重启/关闭

# service   iptables    start/restart/stop

/etc/init.d/iptables   start/restart/stop

wps23

③ 查看iptables 的状态(规则)

#  service  iptables  status

wps24

④ 查看规则的命令

# iptables  -L  -n

选项说明:

-L:(list) 表示列出规则

-n:表示将单词表达形式改成数字形式显示

wps25

与在 iptables 启动的状态下查看到的内容几乎是一致的。

特别说明:-n选项与-L选项其实还可以合并在一起。iptables -nL

选项说明:

--line-number:显示每一条规则的行号

wps26

3、防火墙规则设置

例如:允许80 端口(网站的默认端口号)通过防火墙,则规则可以用以下的命令来设置

第一步:安装httpd软件(Apache软件)并启动Apache软件

[root@localhost ~] # rpm  -ivh   httpd-2.2.15...
[root@localhost ~] # service  httpd  start

第二步:设置防火墙规则

#iptables -I INPUT -p tcp --dport 80 -j ACCEPT #允许访问80 端口

wps27

iptables:主命令
-I:表示将规则放到最前面(大写i),INSERT缩写,代表插入
-A:表示将规则添加规则(最后),APPEND缩写,代表追加插入
INPUT:进站请求【出站OUTPUT】
-p:protocol,指定协议(icmp/tcp/udp)
--dport:指定端口号
-j:指定行为结果,允许(ACCEPT)/禁止(REJECT)/丢弃(DROP)





添加完成之后需要保存操作:/etc/init.d/iptables save

wps28

wps29

第三步:修改防火墙的规则(-R)

wps30

第四步:删除防火墙的规则(-D)

wps31

第五步:保存与重启防火墙

[root@localhost ~] # /etc/init.d/iptables save
[root@localhost ~] # service iptables restart

4、防火墙测试案例

① 启动apache服务(服务名:httpd)

wps32

② 打开172.16.46.129:80(172.16.46.129为Linux服务器的IP地址)

wps33

③ 禁止80端口通过防火墙

wps34

效果如下图所示:

wps35

5、扩展:安全组

扩展:云的安全组问题

安全组也是防火墙的一种,这个安全组并不是建立在我们的服务器上的,而是建立在网关设备上。在云控制台中操作安全组主要还是通过web 站点页面去进行操作的。

基于云服务器的访问路径:

入站方向:

外网 → 安全组 → 服务器的防火墙(ipatables 等) → 项目代码

不用安全组的形式:

外网 → 服务器的防火墙(iptables 等) → 项目代码

六、rpm包管理(重点)

1、rpm包概述

作用:rpm 的作用类似于Windows上的电脑管家中"软件管理"、安全卫士里面"软件管家"等产品,主要作用是对linux 服务器上的软件包进行对应管理操作,管理分为:查询、卸载、安装/更新。

2、rpm包的安装方式

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

软件包的获得方式:

a. 去官网去下载(http://rpm.pbone.net);

b. 不介意老版本的话,可以从光盘(或者镜像文件)中读取;

3、加载光驱

① 加载光盘CentOS*.DVD1.iso

wps36

② 使用 # lsblk(list block devices)查看块状设备的信息

wps37

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



wps38

4、扩展:光盘的挂载和解挂(重点)

① 解挂操作

命令:umount

语法:# umount 当前设备的挂载点(路径)

wps39

② 挂载光盘

命令:mount

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

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

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

wps40

要挂载的位置路径:挂载目录一般都在mnt 下,也可以在mnt 下建目录,此处以"/mnt/dvd"为例。

wps41

wps42

使用cd命令打开/mnt/dvd如下图所示:

wps43

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

语法:# rpm -qa | grep 关键词

选项:

-q:查询,query

-a:全部,all

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

wps44

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

wps45

6、卸载某个软件

卸载某个软件

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

案例:卸载火狐浏览器

wps46

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

wps47

WAMP(Windows + Apache + MySQL + PHP)安装前必须先安装VC++ 2014 x86_64,这种情况就称之为有依赖关系。

火狐卸载的时候是没有依赖关系的,所以可以直接卸载。

但是在卸载Apache(服务名httpd)的时候提示无法卸载:

wps48

特别注意:当存在依赖关系的时候又不想去解决这个问题的时候可以# rpm  -e  软件包名  --nodeps

7、安装某个软件

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

选项:

-i:install,安装

-v:显示进度条

-h:表示以"#"形式显示进度条

示例代码:安装firefox火狐浏览器(在DVD光盘1中)

① 进入/mnt/dvd/Packages目录,因为我们把光盘1挂载在这个目录下了

wps49

② 使用rpm命令安装软件

wps50

③ 使用rpm查询firefox安装情况

wps51

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

wps52

8、更新某个软件

语法:# rpm -Uvh 完整的安装包路径

选项:

-U:upgrade,升级

-v:表示显示进度条

-h:表示以#形式显示进度条

9、rpm扩展

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

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

选项:

-f:查询文件所属包

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

wps53

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

语法:# rpm  -ql   需要查询的软件包名称

wps54

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


七、cron/crontab计划任务(重点)

1、计划任务的作用

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

2、查看计划任务

语法:# crontab   选项

常用选项:

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

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

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

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

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

wps55

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

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

进入计划任务编辑文件

wps56

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

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

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

例如: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 命令名称

wps57

4、几个小案例

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

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

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

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

分时日月周 命令或服务

问题1:45 4 1,10,22 * * service network restart

问题2:10 1 * * 6,7 service network restart

问题3:*/30 18-23 * * * service network restart

问题4:3,15 8-11 */2 * * reboot

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

wps58

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

wps59

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

5、扩展

① crontab 权限问题

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

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

wps60

wps61

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

wps62

白名单还有一个配置文件

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

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

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

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

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

wps63

③ 查看计划任务日志信息

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

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

wps64

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部