RHCSA 系列(十): Yum 包管理、Cron 自动任务计划和监控系统日志

简介:

在这篇文章中,我们将回顾如何在 RHEL7 中安装,更新和删除软件包。我们还将介绍如何使用 cron 进行任务自动化,并完成如何查找和监控系统日志文件,以及为什么这些技能是系统管理员必备技能。

RHCSA: Yum包管理、任务计划和系统监控  Part 10

RHCSA: Yum包管理、任务计划和系统监控 – Part 10

使用yum 管理包

要安装一个包以及所有尚未安装的依赖包,您可以使用:

 
  1. # yum -y install package_name(s)

package_name(s) 需要是至少一个真实的软件包名

例如,安装 httpd 和 mlocate(按顺序),输入。

 
  1. # yum -y install httpd mlocate

注意: 字符 y 表示绕过执行下载和安装前的确认提示。如果需要提示,你可以不用它。

默认情况下,yum 将安装与操作系统体系结构相匹配的包,除非通过在包名加入架构名。

例如,在 64 位系统上,yum install package将安装包的 x86_64 版本,而 yum install package.x86(如果有的话)将安装 32 位的。

有时,你想安装一个包,但不知道它的确切名称。search all 选项可以在当前启用的软件库中的包名称和包描述中搜索它,或者search选项可以在包名称中搜索。

比如,

 
  1. # yum search log

将搜索安装的软件库中名字和摘要与该词(log)类似的软件,而

 
  1. # yum search all log

也将在包描述和网址中寻找寻找相同的关键字。

一旦搜索返回包列表,您可能希望在安装前显示一些信息。这时 info 选项派上了用场:

 
  1. # yum info logwatch

搜索包信息

搜索包信息

您可以定期用以下命令检查更新:

 
  1. # yum check-update

上述命令将返回可以更新的所有已安装的软件包。在下图所示的例子中,只有 rhel-7-server-rpms 有可用更新:

检查包更新

检查包更新

然后,您可以更新该包,

 
  1. # yum update rhel-7-server-rpms

如果有几个包可以一同更新,可以使用 yum update 一次性更新所有的包。

当你知道一个可执行文件的名称,如 ps2pdf,但不知道那个包提供了它?你可以通过 yum whatprovides “*/[executable]”找到:

 
  1. # yum whatprovides “*/ps2pdf

查找文件属于哪个包

查找文件属于哪个包

当删除包时,你可以使用 yum remove Package ,很简单吧?Yum 是一个完整而强大的包管理器。

 
  1. # yum remove httpd

文本式 RPM 工具

RPM(又名 RPM 包管理器,原意是 RedHat 软件包管理器)也可用于安装或更新独立的rpm格式的软件包。

往往使用 -Uvh 表明如果这个包没有安装就安装它,如果已存在就尝试更新。这里-U表示更新、-v表示显示详细输出,用-h显示进度条。例如

 
  1. # rpm -Uvh package.rpm

rpm 的另一个典型的使用方法是列出所有安装的软件包,

 
  1. # rpm -qa

查询所有包

查询所有包

使用 Cron 调度任务

Linux 和 UNIX 类操作系统包括一个称为 Cron 的工具,允许你周期性调度任务(即命令或 shell 脚本)。cron 会每分钟定时检查 /var/spool/cron 目录中有在 /etc/passwd 帐户文件中指定用户名的文件。

执行命令时,命令输出是发送到该 crontab 的所有者(或者可以在 /etc/crontab,通过 MAILTO 环境变量中指定用户)。

crontab 文件(可以通过键入 crontab -e并按 Enter 键创建)的格式如下:

crontab条目

crontab条目

因此,如果我们想在每个月第二天上午2:15更新本地文件数据库(用于按名字或通配模式定位文件),我们需要添加以下 crontab 条目:

 
  1. 15 02 2 * * /bin/updatedb

以上的条目的意思是:”每年每月第二天的凌晨 2:15 运行 /bin/updatedb,无论是周几”,我想你也猜到了。星号作为通配符。

正如我们前面所提到的,添加一个 cron 任务后,你可以看到一个名为 root 的文件被添加在 /var/spool/cron。该文件列出了所有的 crond 守护进程应该运行的任务:

 
  1. # ls -l /var/spool/cron

检查所有cron任务

检查所有cron任务

在上图中,显示当前用户的 crontab 可以使用 cat /var/spool/cron 或

 
  1. # crontab -l

如果你需要在一个更精细的时间上运行的任务(例如,一天两次或每月三次),cron 也可以做到。

例如,每个月1号和15号运行 /my/script 并将输出导出到 /dev/null (丢弃输出),您可以添加如下两个crontab 条目:

 
  1. 01 00 1 * * /myscript > /dev/null 2>&1
  2. 01 00 15 * * /my/script > /dev/null 2>&1

不过为了简单,你可以将他们合并:

 
  1. 01 00 1,15 * * /my/script > /dev/null 2>&1

跟着前面的例子,我们可以在每三个月的第一天的凌晨1:30运行 /my/other/script。

 
  1. 30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

但是当你必须每隔某分钟、小时、天或月来重复某个任务时,你可以通过所需的频率来划分正确的时间。以下与前一个 crontab 条目具有相同的意义:

 
  1. 30 01 1 */3 * /my/other/script > /dev/null 2>&1

或者也许你需要在一个固定的频率或系统启动后运行某个固定的工作,你可以使用下列五个字符串中的一个字符串来指示你想让你的任务计划工作的确切时间:

 
  1. @reboot 仅系统启动时运行
  2. @yearly 一年一次, 类似与 00 00 1 1 *
  3. @monthly 一月一次, 类似与 00 00 1 * *
  4. @weekly 一周一次, 类似与 00 00 * * 0
  5. @daily 一天一次, 类似与 00 00 * * *
  6. @hourly 一小时一次, 类似与 00 * * * *

定位和查看日志

系统日志存放(并轮转)在 /var/log 目录。根据 Linux 的文件系统层次标准(Linux Filesystem Hierarchy Standard),这个目录包括各种日志文件,并包含一些必要的子目录(如 audit、 httpd 或 samba ,如下图),并由相应的系统守护进程操作:

 
  1. # ls /var/log

Linux 日志的位置

Linux 日志的位置

其他感兴趣的日志比如 dmesg(包括了所有内核层缓冲区的消息),secure(记录要求用户认证的连接请求),messages(系统级信息),和 wtmp(记录了所有用户的登录、登出)。

日志是非常重要的,它们让你可以看到任何时刻发生在你的系统的事情,以及已经过去的事情。他们是无价的工具,可以排错和监测一个 Linux 服务器,通常使用 tail -f 命令来实时显示正在发生和写入日志的事件。

举个例子,如果你想看你的内核相关的日志,你需要输入如下命令:

 
  1. # tail -f /var/log/dmesg

同样的,如果你想查看你的 Web 服务器日志,你需要输入如下命令:

 
  1. # tail -f /var/log/httpd/access.log

总结

如果你知道如何有效的管理包、调度任务、以及知道在哪寻找系统当前和过去操作的信息,你可以放松工作而不会总被吓到。我希望这篇文章能够帮你学习或回顾这些基础知识。


本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-09-26 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
关系型数据库 物联网 PostgreSQL
沉浸式学习PostgreSQL|PolarDB 11: 物联网(IoT)、监控系统、应用日志、用户行为记录等场景 - 时序数据高吞吐存取分析
物联网场景, 通常有大量的传感器(例如水质监控、气象监测、新能源汽车上的大量传感器)不断探测最新数据并上报到数据库. 监控系统, 通常也会有采集程序不断的读取被监控指标(例如CPU、网络数据包转发、磁盘的IOPS和BW占用情况、内存的使用率等等), 同时将监控数据上报到数据库. 应用日志、用户行为日志, 也就有同样的特征, 不断产生并上报到数据库. 以上数据具有时序特征, 对数据库的关键能力要求如下: 数据高速写入 高速按时间区间读取和分析, 目的是发现异常, 分析规律. 尽量节省存储空间
604 1
|
监控 数据安全/隐私保护 安全
|
21天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
75 1
|
23天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
77 1
|
26天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
1月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
【Shell 命令集合 系统管理 】Linux 自动轮转(log rotation)日志文件 logrotate命令 使用指南
49 0
|
1月前
|
存储 数据库
ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。
`ALTER MATERIALIZED VIEW LOG` 语句用于修改已有的物化视图日志的存储属性或类型。配合示例中的动画图像(由于格式限制无法显示),该语句帮助优化数据库的性能和管理。
44 0
|
1天前
|
Java
log4j异常日志过滤规则配置
log4j异常日志过滤规则配置
7 0
|
14天前
|
运维 安全 Ubuntu
`/var/log/syslog` 和 `/var/log/messages` 日志详解
`/var/log/syslog` 和 `/var/log/messages` 是Linux系统的日志文件,分别在Debian和Red Hat系发行版中记录系统事件和错误。它们包含时间戳、日志级别、PID及消息内容,由`rsyslog`等守护进程管理。常用命令如`tail`和`grep`用于查看和搜索日志。日志级别从低到高包括`debug`到`emerg`,表示不同严重程度的信息。注意保护日志文件的安全,防止未授权访问,并定期使用`logrotate`进行文件轮转以管理磁盘空间。
19 1
|
14天前
|
网络协议 应用服务中间件 Linux
centos7 Nginx Log日志统计分析 常用命令
centos7 Nginx Log日志统计分析 常用命令
27 2

热门文章

最新文章