Linux基础——日志、日志远程同步、journalctl 命令、服务端客户端时间同步、

1、        *.*                     文件名称

日志类型.日志级别        日志存放文件


日志类型

auth                     #用户登陆日志(pam产生日志)
authpriv               #服务认证日志(sshd认证)
kern                     #内核日志
cron                     #定时任务日志
lpr                        #打印机日志
mail                     #邮件日志
news                   #新闻
user                     #用户相关程序日志
local 1-7              #用户自定义日志

日志级别
debug                  #系统调试信息
info                       #常规信息
warning                #警告信息
err                        #报错(级别低,阻止了某个功能不能正常工作)
crit                        #报错(级别高,阻止了整个软件或整个系统不能正常工作)
alert                      #需要立即修改的信息
emerg                  #内核崩溃
none                     #不采集任何日志信息

auth.debug           /var/log/westos
auth.*
*.*                          /var/log/log.all

清空日志:  > /var/log/messages
如果上个命令无法清空日志,则再输入这个:   > /etc/rc.d/rc.local

系统常用日志
/var/log/messages           #所有日志级别的常规信息(不包含邮件,服务认证,>定时任务)
/var/log/maillog               #邮件日志
/var/log/secure                #服务认证日志
/var/log/cron                   #定时任务日志

例:清空日志,查看日志:

2、日志远程同步

在日志发送方
vim    /etc/rsyslog.conf
*.*                   @172.25.254.161  #日志接收方地址

在日志接收方
vim    /etc/rsyslog.conf
15      $ModLoad imudp
16      $UDPServerRun 514

systemctl    restart    rsyslog
systemctl    stop        firewalld
systemctl    disable   firewalld

例:node1为日志接收方,node2为日志发送方

在node1 编辑  vim  /etc/rsyslog.conf  ,  将15、16行的#去掉

编辑完后保存,重启服务,关掉防火墙,并设置防火墙下次开机恢复:

node2中同样编辑 vim  /etc/rsyslog.conf ,设置将一切日志传至 node1:

编辑完后重启服务:

在node1中查看日志可以看到node2的日志:

3、vim /etc/rsyslog.conf
$template 格式名称,"日志采集格式"
*.info;mail.none;authpriv.none;cron.none    /var/log/message;格式名称

例:$template westos,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated%         #日志生成时间
%FROMHOST-IP%         #日志来源主机的IP
%syslogtag%                 #日志生成程序
%msg%                         #日志内容
\n                                  #换行
*.info;mail.none;authpriv.none;cron.none     /var/log/messages;westos

查看:less /var/log/messages  q退出

例:编辑vim   /etc/rsyslog.conf :

重启服务并查看日志:

4、journalctl


journalctl   -n  3                             #最新的3行日志
journalctl   -p  err                           #错误信息
journalctl   -f                                  #日志监控
journalctl   --since   --until             #具体到时间的日志
journalctl   -o  verbose                  #查看日志详细参数 _PID=651  journalctl _PID=651

对systemd-journald管理
默认此程序只负责对日志进行查看而不对日志进行保存和采集
那么关机后在开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机后是用journalctl看不到的

如何让systemd-journald保存日志到硬盘中
mkdir     /var/log/journal
chgrp     systemd-journal     /var/log/journal
chmod   g+s /var/log/journal
killall      -1   systemd-journald

journalctl    -n   3
date
reboot

journalctl

例:

查看日志:

日志监控:

查看ID

查看日志详细参数并寻找ID

5、时间同步
在服务器端共享时间
vim  /etc/chrony.conf
29   local   stratum  10                    #开启时间共享功能并设定共享级别
                                                      #这个参数开启后本机不去同步别人的时间到本机
22   allow  172.25.254.0/24              #允许那些客户端来访问本机共享的时间

systemctl   restart   chronyd

在客户端:
vim   /etc/chrony.conf
server  172.25.254.161 iburst

systemctl   restart   chronyd

chronyc   sources   -v                    

注:*则代表同步成功
服务端防火墙要关闭
客户端可关可不关

例:vim  /etc/chrony.conf

重启服务:

vim  /etc/chrony.conf

重启服务并查看:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
同步客户端服务端时间并保持时区一致,可以使用以下步骤: 1. 服务端获取当前时间戳,可以使用System.currentTimeMillis()方法获取。 2. 服务端将当前时间戳和时区信息发送给客户端。 3. 客户端获取当前时间戳,并将其与服务端发送的时间戳进行比较。如果客户端服务端时间戳差距在可接受的范围内,则表明客户端服务端时间是一致的;否则表明客户端服务端时间不一致。 4. 如果客户端服务端时间不一致,客户端可以使用Java的Calendar类来进行时区转换,将本地时间转换为服务端的时区对应的时间。 具体实现方式可以使用Java的Socket编程来实现。服务端可以使用ServerSocket类来监听客户端请求,客户端可以使用Socket类来与服务端建立连接。服务端客户端之间可以通过IO流来进行数据的传输。 实现代码如下: 服务端: ``` ServerSocket serverSocket = new ServerSocket(8888); Socket socket = serverSocket.accept(); long timestamp = System.currentTimeMillis(); String timezone = TimeZone.getDefault().getID(); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); out.writeLong(timestamp); out.writeUTF(timezone); out.flush(); socket.close(); ``` 客户端: ``` Socket socket = new Socket("localhost", 8888); DataInputStream in = new DataInputStream(socket.getInputStream()); long serverTimestamp = in.readLong(); String serverTimezone = in.readUTF(); long clientTimestamp = System.currentTimeMillis(); String clientTimezone = TimeZone.getDefault().getID(); if (Math.abs(clientTimestamp - serverTimestamp) <= ACCEPTABLE_DIFFERENCE) { System.out.println("客户端时间服务端时间一致"); } else { System.out.println("客户端时间服务端时间不一致"); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(clientTimestamp); TimeZone clientTimeZone = TimeZone.getTimeZone(clientTimezone); TimeZone serverTimeZone = TimeZone.getTimeZone(serverTimezone); int clientOffset = clientTimeZone.getOffset(clientTimestamp); int serverOffset = serverTimeZone.getOffset(serverTimestamp); long adjustedTimestamp = serverTimestamp - serverOffset + clientOffset; calendar.setTimeInMillis(adjustedTimestamp); System.out.println("调整后的客户端时间为:" + calendar.getTime()); } socket.close(); ``` 其中ACCEPTABLE_DIFFERENCE为可接受的时间戳差距。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值