Linux自有服务(2)

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

1 设置主机名

#hostname
#hostname -f      (FQDN-全限定域名)

(1) 设置临时主机名,需要切换用户使之生效。

#hostname 主机名

在这里插入图片描述

(2) 设置永久生效的主机名(需重启)
方法一:先找到一个文件:/etc/hostname 【主机名的配置文件】,修改其中的主机名即可。
在这里插入图片描述
方法二:

#hostnamectl set-hostname 主机名

(3) 修改Linux服务器的hosts文件,将主机名test指向本地(设置FQDN)
hosts文件的位置:/etc/hosts
/etc/hosts文件中添加test
在这里插入图片描述
之后就可以通过test直接访问Apache。
在这里插入图片描述

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

  • 很多开源服务软件(例如Apache)则无法启动,或出现报错;
  • 方便记忆,看到主机名就能够对其作用有一个初步的判断;
  • 如果不设置则会影响本地的域名解析(本地访问)。

2 chkconfig及systemctl

chkconfig作用:相当于Windows下“安全卫士”、“电脑管家”之类的安全辅助工具提供“开机启动项”的一个管理服务。
在Linux下不是所有的软件安装完成之后都有开机启动服务,有的可能需要自己去添加。除此之外还可以查看和删除。
(1) 开机启动服务查询

#chkconfig --list【centos7.x之前】
systemctl list-unit-files【centos7之后(包含)】

在CentOS7(RHEL7)以后,服务从原来的由systemV管理机制升级到了systemd。
在sysV中,所有的服务脚本都放在/etc/init.d/中,可以使用/etc/init.d/服务 [start|stop|restart|reload|status]方式来管理服务。
在systemd中,所有的服务脚本都称为unit,主要分成6类:.service, .socket, .target, .path, snapshot, .timer,它们都存放在/usr/lib/systemd/system/目录中。在systemd中,统一采用systemctl命令来管理所有的服务,主要用法:systemctl [start|stop|restart|reload|status|is-active|is-enable|enable|disable|mask|umask] 服务名.类型 (当服务为service类型时可以省略类型,如atd.service可以简写为atd,其他的类型不能省略,如talnet.socket)
在这里插入图片描述

  • #chkconfig --list展示的0-6表示各个启动级别,以netconsole为例,级别3为关闭时,表示在3启动形式(纯命令行模式)下默认开机不启动。
  • #systemctl list-unit-files 列出/usr/lib/systemd/system/目录内所有的服务文件。

(2) 设置某个服务开机启动/禁止启动

#systemctl enable 服务名
#systemctl disable 服务名

并通过如下命令查看服务的当前状态(二选一):

#systemctl list-unit-files | grep 服务名
#systemctl is-enabled 服务名

httpd为例:
在这里插入图片描述

3 ntp服务

作用:ntp主要用于对计算机的时间同步管理操作
时间对服务器来说非常重要,很多网站都需要读取服务器时间来记录相关信息。
同步服务器时间的方式有2个:一次性同步(手动同步)、通过服务自动同步。
上游的概念:自己的服务器→上一级别的时间服务器→上上级的时间服务器→...→根时间服务器
(1) 一次性同步时间

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

时间服务器的域名或IP地址可以自行百度,或者访问时间同步服务器进行查看。
在这里插入图片描述
(2) 设置时间同步服务
服务名:ntpd
未安装ntp服务可通过以下命令进行安装:

yum -y install ntp

启动ntpd服务:

#systemctl start ntpd

在这里插入图片描述
设置ntpd服务开机启动:

#systemctl enable ntpd

在这里插入图片描述

4 防火墙服务

防火墙:防范一些网络攻击,有软件防火墙、硬件防火墙之分。防火墙选择性的让请求通过,从而保证网络安全。
在centos7.x中,防火墙为firewalld,查看firewalld是否开机启动:
在这里插入图片描述
firewalld服务是启动/重启/关闭:

#systemctl start/restart/stop firewalld

注:关闭防火墙之后,本地就可以访问服务器。

查看firewalld的状态:

#systemctl status firewalld

在这里插入图片描述
简单设置防火墙规则:

#firewall-cmd --zone=public --add-port=80/tcp --permanent

在这里插入图片描述

命令含义:

  • zone #作用域
  • add-port=80/tcp #添加端口,格式为:端口/通讯协议
  • permanent #永久生效,没有此参数重启后失效

通过以下命令查看防火墙状态:

#firewall-cmd --state

查看:

#firewall-cmd --zone=public --query-port=80/tcp

在这里插入图片描述
移除:

firewall-cmd --zone=public --remove-port=80/tcp --permanent

在这里插入图片描述
添加完成之后需要更新防火墙规则:

#firewall-cmd --reload

在这里插入图片描述

5 rpm管理

作用:类似于Windows上的“软件管家”,主要是对Linux服务器上的软件包进行对应的管理操作,包括:查询、卸载、安装
(1) 查询

#rpm -qa | grep 关键词

选项:

  • -q:查询,query
  • -a:全部,all
#yum info 软件包名      【显示软件包的摘要信息】
#yum list all 软件包名  【查看yum仓库中指定包名的软件包,可以使用通配符】

实例:查询Linux上是否安装firefox(已安装)
在这里插入图片描述
在这里插入图片描述

实例:查询是否安装qq(未安装)
在这里插入图片描述
在这里插入图片描述

(2) 卸载

#rpm -e 软件名称

当存在依赖关系时,可以忽略依赖关系,强制卸载:

#rpm -e 软件包名 --nodeps

(3) 安装
要想安装软件,需先找到安装包,软件包的获取方式:

  • 去官网下载;
  • 不介意老版本的话,可以从光盘(或镜像文件)中读取。

此处以光盘文件为例:
查看块状设备的信息:

#lsblk  【list block devices】

在这里插入图片描述

  • Name:名称
  • Size:设备大小
  • Type:类型
  • MountPoint:挂载点(类似Windows下的盘符)

扩展:光盘的挂载和解挂
① 解挂操作
命令:umount
语法:#umount 当前设备的挂载点(路径)
在这里插入图片描述
注:由于路径存在空格,因此需要加上双引号。

此时,相当于U盘在Windows上已经被弹出,但是没有从电脑的USB接口拔出。

② 挂载光盘
命令:mount
语法:#mount 设备原始地址 要挂载的位置路径
设备原始地址:地址统一都在/dev目录下,然后根据大小(Size)确定具体的Name,拼凑在一起组成原始地址,例如当前:“/dev/sr0”。
要挂载的路径:挂载目录一般都在/mnt下,也可以在/mnt下创建目录,此处以“/mnt/dvd”为例:
在这里插入图片描述

安装软件包的命令:

  • RPM,全称为RPM Package Manager,是由Red Hat推出的软件包管理系统,现在在各种发行版中普遍使用。RPM仅适用于安装用RPM来打包的软件

  • Yum (Yellow dog Updater, Modified) 是一个基于 RPM 包管理的字符前端软件包管理器,能够从指定的服务器自动下载 RPM 包并且安装,可以自动解决处理包依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,更方便的添加/删除/更新RPM包,便于管理系统的更新问题。

#rpm 选项 软件包完整名称
  • -i:install,安装
  • -v:显示进度条
  • -h:表示以“#”形式显示进度条
  • -e:卸载指定包名
  • -U:升级软件,若未软件尚未安装,则安装软件
  • -F:升级软件
  • -V:对RPM包进行验证
  • -nodeps:当存在依赖关系时,可以忽略依赖关系,强制卸载。
yum -y install/reinstall/update/remove 包12 … 包n

说明:若安装/重装/更新/卸载多个包,则使用包名之间使用空格隔开。安装/重装/更新/卸载过程中,yum会询问用户是否安装/重装/更新/卸载,使用yum -y选项,表示自动回答为yes。

如何查询完整包名及其所在路径:
通过lsblk命令找到存储安装包的光盘,然后通过ls "挂载点/Packages" | grep 包名"查找软件包的完整包名。
在这里插入图片描述

安装:
rpm需要完整包名:
在这里插入图片描述
在这里插入图片描述

6 cron/crontab 计划任务

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

语法:#crontab 选项
常用选项:

  • -l:list,列出指定用户的计划任务列表
  • -e:edit,编辑指定用户的计划任务列表
  • -u:user,指定用户名,如果不指定,则表示当前用户
  • -r:remove,删除指定用户的计划任务列表

(1) 编辑当前用户的计划任务
计划任务的规则语法格式,以行为单位,一行为一个计划:

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

例如每天的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

练习:
① 每月1、10、22日的4:45重启network服务

45 4 1,10,22 * * systemctl restart network

② 每周六、日的1:10重启network服务

10 1 6,0 * * systemctl restart network

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

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

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

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

很多时候,我们计划任务需要精确到秒来执行,根据以下命令实现每10秒执行一次:

* * * * * 命令
* * * * * sleep 10; 命令
* * * * * sleep 20; 命令
* * * * * sleep 30; 命令
* * * * * sleep 40; 命令
* * * * * sleep 50; 命令

实例:每10秒执行一次日期的追加
在这里插入图片描述
通过cat命令查看文件内容
在这里插入图片描述
也可以通过#tail -f 文件名 实时查看文件内容的变化。

crontab权限问题:本身是任何用户都可以创建自己的计划任务,但超级管理员可以通过配置来设置某些用户不允许设置计划任务,配置文件位于:/etc/cron.deny【在该文件中写用户名,一行一个】
首先查看操作系统中的用户,通过命令查看/etc/passwd 存储用户的关键信息,在这里,我们使用tail命令查看最后三个用户的信息:

tail -3 /etc/passwd

在这里插入图片描述
在我的操作系统中有一个用户叫做wangerma,现在设置该用户不允许设置计划任务(黑名单):

#vim /etc/cron.deny

在这里插入图片描述
还有一个配置文件(白名单):/etc/cron.allow(本身不存在,自己创建)
注:白名单优先级高于黑名单,如果一个用户同时存在两个名单文件中,则会默认允许创建计划任务。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值