10.日志管理系统

1.journald
服务名称:systemd-journald.service
journalctl
默认日志存放路径: /run/log
##实验1 journalctl命令的用法##
journalctl
-n 3 ##日志的最新3条
在这里插入图片描述

–since “2020-05-01 11:00:00” ##显示11:00后的日志
在这里插入图片描述

–until “2020-05-01 11:05:00” ##显示日志到11:05
在这里插入图片描述

-o ##设定日志的显示方式
short 经典模式显示日志
在这里插入图片描述

#verbose 显示日志的全部字节
#export 适合传出和备份的二进制格式
#json js格式显示输出

-p ##显示制定级别的日志
#0 emerg 系统的严重问题日志
#1 alert 系统中立即要更改的信息
#2 crit 严重级别会导致系统软件不能正常工作
#3 err 程序报错
#4 warning 程序警告
在这里插入图片描述

#5 notice 重要信息的普通日志
#6 info 普通信息
在这里插入图片描述

#7 debug 程序拍错信息
在这里插入图片描述

-F PRIORITY ##查看可控日志级别
在这里插入图片描述

-u sshd ##指定查看服务
在这里插入图片描述

–disk-usage ##查看日志大小
在这里插入图片描述

–vacuum-size=1G ##设定日志存放大
–vacuum-time=1W ##日志在系统中最长存放时间
在这里插入图片描述

-f ##监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service
在这里插入图片描述

实验2 用journald服务永久存放日志########
系统中默认日志在:/run/log/journal中
默认方式在系统重启后日志会被清理要永久保存日志请完成以下操作:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service
当服务重启日志存放路径会被制定到:/var/log/journal
在这里插入图片描述
测试:
1.在操作以上步骤之前查看日志
2.重启系统
3.再次查看日志
4.可以看到日志是不会被保存下来的只能看到重启之后的日志
5.完成以上操作后再次重启系统可以看到日志是被保存下来的
在这里插入图片描述

2.rsyslog
服务名称:rsyslog.service
日志存放:
/var/log/messages #系统服务日志,常规信息,服务报错
/var/log/secure #系统认证信息日志
/var/log/maillog #系统邮件日志信息
/var/log/cron #系统定时任务信息
/var/log/boot.log #系统启动日志信息
配置文件:/etc/rsyslog.conf

#实验1.自定义日志采集路径
vim /etc/rsyslog.conf
日志类型.日志级别 日志存放路径
. /var/log/westos ##把系统中所有级别的日志存放到westos中
.;authpriv.none /var/log/westos ##把系统中所有级别的日志存放到westos中
##但是authpriv不存放到westos中
在这里插入图片描述

日志类型
auth #用户认证
authpriv #服务认证
cron #时间任务
kern #内核类型
mail #邮件
news #系统更新信息
user #用户
日志级别
debug #程序排错信息
info #程序常规运行信息
notice #重要信息的普通日志
waring #程序警告
err #程序报错
crit #严重级别会导致系统软件不能正常工作
alert #系统中立即要更改的信息
emerg #系统的严重问题日志
none #不采集

实验2.如何更改日志采集格式###########
1定义日志采集格式
$template WESTOS_FORMAT, “%FROMHOST-IP% %timegenerated% %FROMHOST-IP%
%syslogtag% %msg%\n”
#WESTOS_FORMAT: 格式名称
#%FROMHOST-IP%: 日志来源主机IP
#%timegenerated%: 日志生成时间
#%syslogtag%: 日志生成服务
#%msg%: 日志内容
#\n: 换行
2设定日志采集格式应用
.;authpriv.none /var/log/
westos;WESTOS
module(load=“builtin:omfile” Template=“WESTOS_FORMAT”) ##默认采用WESTOS_FORMAT格式

1.在westos_node1中设定接受所有人的日志
systemctl stop firewalld
vim /etc/rsyslog.conf
19 module(load=“imudp”) ##打开日志接受插件
20 input(type=“imudp” port=“514”) ##指定插件使用接口
systemctl restart rsyslog
在这里插入图片描述

查询端口:
root@rhel7_node1 ~]# netstat -antlupe | grep rsyslog
udp 0 0 0.0.0.0:514
0.0.0.0:* 0 67600 11115/
rsyslogd
udp6 0 0 :::
514 ::😗 0
67601 11115/rsyslogd
在这里插入图片描述
2.westos_linux中设定发送日志到westos_node1中
vim /etc/rsyslog.conf
. @172.25.254.10
systemctl restart rsyslog
@ 表示使用udp传输日志
@@ 表示使用tcp传输日志
@172.25.254.10 把本机日志用udp的传输方式发送到172.25.254.10主机

3.timedatectl
###############################
timedatectl set-time “2020-02-13 10:41:55” ##设定系统时间
在这里插入图片描述

timedatectl list-timezones ##显示系统的所有时区
在这里插入图片描述

timedatectl set-timezone “Asia/Shanghai” ##设定系统时区
在这里插入图片描述

timedatectl set-local-rtc 0|1 ##设定系统时间计算方式

                                            ##0表示使用utc时间计算方式

4.时间同步服务
在rhel7中
vim /etc/chrony.conf
26 allow 172.25.254.0/24 ##允许172.25.254.0网段主机同步时间
29 local stratum 10 ##开启时间同步服务器功能并设定级别为10
在这里插入图片描述
重启服务 systemctl restart chronyd.service
systemctl stop firewalld

在rhel8中
vim /etc/chrony.conf
pool 172.25.254.11 iburst
systemctl restart chronyd

          在rhel8中查看时间:

现实已经变成rhel7中时间
在这里插入图片描述

使用chronyc 命令查看时间效果:
[root@rhel8_node1 ~]# chronyc sources -v
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较典型的个人事务管理系统,可以使用Python编写实现。下面是一个简单的实现思路: 1. 通讯录管理 我们可以使用Python的字典来存储好友信息,键值对分别为姓名和联系方式。通过读取和写入文件来实现信息的永久化存储。 添加好友信息: ```python def add_contact(name, contact): contacts = load_contacts() # 读取联系人信息 contacts[name] = contact # 添加新联系人 save_contacts(contacts) # 保存联系人信息 ``` 更新好友信息: ```python def update_contact(name, contact): contacts = load_contacts() # 读取联系人信息 if name in contacts: contacts[name] = contact # 更新联系人信息 save_contacts(contacts) # 保存联系人信息 ``` 删除好友信息: ```python def delete_contact(name): contacts = load_contacts() # 读取联系人信息 if name in contacts: del contacts[name] # 删除联系人信息 save_contacts(contacts) # 保存联系人信息 ``` 查询好友信息: ```python def search_contact(name): contacts = load_contacts() # 读取联系人信息 if name in contacts: return contacts[name] # 返回联系人信息 else: return None ``` 报表输出: ```python def generate_report(): contacts = load_contacts() # 读取联系人信息 for name, contact in contacts.items(): print(name, contact) # 输出联系人信息 ``` 2. 日志管理 我们可以使用Python的列表来存储日志信息,每个元素表示一条日志。同样,通过读取和写入文件来实现信息的永久化存储。 添加日志: ```python def add_log(log): logs = load_logs() # 读取日志信息 logs.append(log) # 添加新日志 save_logs(logs) # 保存日志信息 ``` 更新日志: ```python def update_log(index, log): logs = load_logs() # 读取日志信息 if index >= 0 and index < len(logs): logs[index] = log # 更新日志信息 save_logs(logs) # 保存日志信息 ``` 删除日志: ```python def delete_log(index): logs = load_logs() # 读取日志信息 if index >= 0 and index < len(logs): del logs[index] # 删除日志信息 save_logs(logs) # 保存日志信息 ``` 查询日志: ```python def search_log(keywords): logs = load_logs() # 读取日志信息 results = [] for log in logs: if keywords in log: results.append(log) # 添加匹配的日志信息 return results ``` 3. 个人财务管理 我们可以使用Python的类来实现个人财务信息的维护。每个对象表示一条收入或支出信息。同样,通过读取和写入文件来实现信息的永久化存储。 ```python class Transaction: def __init__(self, date, amount, category, note): self.date = date # 日期 self.amount = amount # 金额 self.category = category # 类别 self.note = note # 备注 def __str__(self): return '{} {} {} {}'.format(self.date, self.amount, self.category, self.note) def to_dict(self): return { 'date': self.date, 'amount': self.amount, 'category': self.category, 'note': self.note } def add_transaction(transaction): transactions = load_transactions() # 读取财务信息 transactions.append(transaction.to_dict()) # 添加新财务信息 save_transactions(transactions) # 保存财务信息 def update_transaction(index, transaction): transactions = load_transactions() # 读取财务信息 if index >= 0 and index < len(transactions): transactions[index] = transaction.to_dict() # 更新财务信息 save_transactions(transactions) # 保存财务信息 def delete_transaction(index): transactions = load_transactions() # 读取财务信息 if index >= 0 and index < len(transactions): del transactions[index] # 删除财务信息 save_transactions(transactions) # 保存财务信息 def search_transaction(category): transactions = load_transactions() # 读取财务信息 results = [] for transaction in transactions: if transaction['category'] == category: results.append(Transaction(**transaction)) # 添加匹配的财务信息 return results ``` 以上是一个简单的个人事务管理系统的实现思路,还有很多细节需要考虑,比如异常处理、用户界面等。可以根据实际需求进行扩展和改进。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值