日志管理,定时和延迟任务

1日志的采集和方法

##日志是系统记录系统内部重要的事情
日志管理,定时和延迟任务_第1张图片
##日志是由系统本身产生的,产生的日志是在内存中的,然后肯定有程序将内存的日志采集到硬盘中,然后分成各类文件保存在不同的位置,这个程序就是rsyslog服务,他不生成日志,他的任务是采集日志
[root@localhost Desktop]# > /var/log/messages##我们先清空日志
[root@localhost Desktop]# ssh [email protected]##我们远程连接下200ip
[root@localhost Desktop]# cat /var/log/secure##里面可以看到我们连接和退出的日志
[root@localhost Desktop]# logout
[root@localhost Desktop]# systemctl restart sshd.service##我们重新启动下sshd服务
[root@localhost Desktop]# cat /var/log/messages##可以看到重新启动的日志也可以看到

Jun 10 19:29:22 localhost systemd: Stopping OpenSSH server daemon...
Jun 10 19:29:22 localhost systemd: Stopped OpenSSH server daemon.
Jun 10 19:29:22 localhost systemd: Starting OpenSSH server daemon...
Jun 10 19:29:22 localhost systemd: Started OpenSSH server daemon.

[root@localhost ~]# systemctl status rsyslog.service##可以看到我们的传输日志的程序是打开的

● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-06-10 19:27:48 CST; 3min 4s ago
     Docs: man:rsyslogd(8)
           http://www.rsyslog.com/doc/
 Main PID: 7652 (rsyslogd)
    Tasks: 3
   CGroup: /system.slice/rsyslog.service
           └─7652 /usr/sbin/rsyslogd -n

Jun 10 19:27:47 localhost.localdomain systemd[1]: Starting System Logging Ser...
Jun 10 19:27:48 localhost.localdomain rsyslogd[7652]:  [origin software="rsys...
Jun 10 19:27:48 localhost.localdomain systemd[1]: Started System Logging Serv...
Hint: Some lines were ellipsized, use -l to show in full.

[root@localhost ~]# systemctl stop rsyslog.service#我们先停止rsyslog服务
[root@localhost ~]# > /var/log/messages##清空日志
[root@localhost ~]# systemctl restart rsyslog.service##再重启服务
[root@localhost ~]# cat /var/log/messages##没有日志,那就说明我们关闭rsyslog服务后,重启这个服务的日志没有被传输过来
[root@localhost ~]# systemctl start rsyslog.service##再开启rsyslog服务
[root@localhost ~]# cat /var/log/messages##查看日志

Jun 10 19:38:05 localhost systemd: Stopping System Logging Service...
Jun 10 19:38:05 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="9345" x-info="http://www.rsyslog.com"] exiting on signal 15.
Jun 10 19:38:05 localhost systemd: Stopped System Logging Service.
Jun 10 19:38:05 localhost systemd: Starting System Logging Service...
Jun 10 19:38:05 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="9450" x-info="http://www.rsyslog.com"] start
Jun 10 19:38:05 localhost systemd: Started System Logging Service.

##可以看到restart这个日志竟然被记录上了,那由此可见,当我们关闭rsyslog服务只能暂时关闭它日志的传输,当我们再次开启他的服务的时候,他前面没有传输的日志就一口气采集上来了
日志管理,定时和延迟任务_第2张图片
日志管理,定时和延迟任务_第3张图片
日志管理,定时和延迟任务_第4张图片
##我们如何设定我们的日志保存的分类和存放地址呢
[root@localhost ~]# vim /etc/rsyslog.conf##我们进入rsyslog的信息配置文件
日志管理,定时和延迟任务_第5张图片
##我们可以在里面编辑什么类型日志.什么级别 日志存放的目录 这种格式内容来指定不同日志的保存路径
##举例:下面这个就是*.* /var/log/westos##就是任何类型的日志,任何级别的日志都保存到log下的westos里面
日志管理,定时和延迟任务_第6张图片
##更多的设置类型在上面图片的日志类型分布和日志级别的图片
在这里插入图片描述
##这个auth就是我们的类型日志:系统的用户登录类型日志,级别为一般信息的级别日志保存到 westos1文件里面
[root@localhost ~]# ll /var/log/westos##可以看到我们的westos已经生成了,因为所有的日志信息都得在westos存储

-rw-------. 1 root root 808 Jun 10 19:53 /var/log/westos

[root@localhost ~]# ll /var/log/westos1##westos1没有生成,因为我们重启服务,并没有认证信息,所有他没有从内存中提取出来日志

ls: cannot access /var/log/westos1: No such file or directory

[root@localhost ~]# ssh [email protected]##我们现在远程连接下192.168.0.100,这个有认证信息

root@192.168.0.100's password: 
Last login: Wed Jun 10 19:28:16 2020

[root@localhost ~]# ll /var/log/westos1##可以看到已经生成了westos1文件

-rw-------. 1 root root 131 Jun 10 19:58 /var/log/westos1

[root@localhost ~]# cat /var/log/westos1##westos1已经有登录和退出的记录了

Jun 10 19:57:38 localhost systemd-logind: New session 5 of user root.
Jun 10 19:58:23 localhost systemd-logind: Removed session 5.

[root@localhost ~]# cat /var/log/westos##westos也有记录

Jun 10 19:58:22 localhost sshd[9739]: Received connect from 192.168.0.100 port 54706:11: connected by user
Jun 10 19:58:23 localhost systemd-logind: Removed session 5.

2.日志的远程同步

##比如有多个电脑需要维护,我们就可以把每台电脑的日志都给我们管理员远程同步一份
[root@localhost ~]# man 5 rsyslog.conf##查看reyslog的帮助,里面搜索remote远程的信息

日志管理,定时和延迟任务_第7张图片
##可以看到里面有UDP传输,也有TCP传输,TCP确保收到信息,UDP的传输速度快,上面也说了用UDP是一个@,TCP是@@
[root@localhost ~]# vim /etc/rsyslog.conf##我们在里面加上将所有的日志信息都发送到192.168.0.200这台主机上,如果我们不想在本机保存日子,还可以吧下面的设置都删除掉
日志管理,定时和延迟任务_第8张图片
##接下来我们还要开启192.168.0.200这台主机的接收功能,把日志接收了
[root@localhost ~]# vim /etc/rsyslog.conf
日志管理,定时和延迟任务_第9张图片
##我们这里使用的是UDP的,MODLOAD 加载插件imudp,UDPserverRUN开启服务所用的端口为514,我们取消掉注释就行
日志管理,定时和延迟任务_第10张图片
localhost ~]# systemctl restart rsyslog.service##重启服务

[root@localhost ~]# netstat -antlupe |grep rsyslog##我们查看接口,确认接口514打开了,打开接受功能

udp        0      0 0.0.0.0:57542           0.0.0.0:*                           0          74855      11303/rsyslogd      
udp        0      0 0.0.0.0:514             0.0.0.0:*                           0          74448      11303/rsyslogd      
udp6       0      0 :::514                  :::*                                0          74449      11303/rsyslogd      

##如果发现还不能传输,就关闭防火墙
[root@localhost ~]# systemctl stop firewalld
##接下来就可以进行日志远程传输了
Jun 11 00:22:13 localhost root: test westos##我们传输的日志信息localhost这块显示的是用户名,如果我们管理多台主机的话,我们要是按照IP编号从1以后往后,这样我们哪台主机日志反应出来的问题我们也好迅速找到主机,这个时候就是我们的自定义日志采集格式
##我们如何设置采集格式呢?
日志管理,定时和延迟任务_第11张图片
##我们按照上面的设置加上这一行,第二个WESTOS是定义个名称WESTOS
日志管理,定时和延迟任务_第12张图片
##上面的顺序我们也可以更改,这个就是一个日志现实的顺序
##并且在我们最初设定保存日志文件的地方加上;WESTOS 意思是当我们把日志放到messages里面的时候用的是WESTOS这个格式
在这里插入图片描述
##westos是大写,已经修改
[root@localhost ~]# systemctl restart rsyslog.service##重启服务
[root@localhost ~]# cat /var/log/messages##查看日志信息

127.0.0.1 Jun 11 00:35:45 systemd: Stopping System Logging Service...
127.0.0.1 Jun 11 00:35:45 rsyslogd:  [origin software="rsyslogd" swVersion="8.24.0-34.el7" x-pid="11303" x-info="http://www.rsyslog.com"] exiting on signal 15.
127.0.0.1 Jun 11 00:35:46 systemd: Stopped System Logging Service.
127.0.0.1 Jun 11 00:35:46 systemd: Starting System Logging Service...

##可以看到生成的日志按照ip,生成时间,记录目标,记录内容进行显示,还有换行符
##如果我们想让所有的日志信息都已WESTOS的格式显示怎么办?
我们继续进入vim /etc/rsyslog.conf
日志管理,定时和延迟任务_第13张图片
日志管理,定时和延迟任务_第14张图片
##这里我们可以先把原本的信息复制一遍,然后加上#注释下,防止我们修改错误后,忘记原本的设置信息,无法恢复,我们设置好后,再删除原本messages后面的;westos
[root@localhost ~]# systemctl restart rsyslog.service
[root@localhost ~]# cat /var/log/messages##查看日志信息

127.0.0.1 Jun 11 00:45:49 systemd: Started System Logging Service.
127.0.0.1 Jun 11 00:45:56 journal: unable to get EDID for xrandr-Virtual1: unable to get EDID for output
127.0.0.1 Jun 11 00:45:56 journal: unable to get EDID for xrandr-Virtual1: unable to get EDID for output
127.0.0.1 Jun 11 00:45:56 journal: unable to get EDID for xrandr-Virtual1: unable to get EDID for output

[root@localhost ~]# ssh [email protected]##我们远程连接下

root@192.168.0.100's password: 
Last login: Wed Jun 10 19:57:39 2020 from 192.168.0.100

[root@localhost ~]# logout##然后再关掉
[root@localhost ~]# cat /var/log/secure##查看secure

127.0.0.1 Jun 11 00:47:39 systemd-logind: New session 41 of user root.
127.0.0.1 Jun 11 00:47:43 systemd-logind: Removed session 41.

##可以看到secure的格式也已经修改了

##总结上面的方法一个是修改单独的几个日志信息的格式,一个是将所有的信息格式进行修改


3.日志的时间设置调整

日志管理,定时和延迟任务_第15张图片
[root@localhost ~]# timedatectl

      Local time: Thu 2020-06-11 01:00:27 CST
  Universal time: Wed 2020-06-10 17:00:27 UTC
        RTC time: Wed 2020-06-10 17:00:27
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

##第一行本地时间,第二行世界时间,相当于格林威治时间,RTC time是硬件时间(相当于系统时间),time zone时区,NTP enable 是否开启时间的网络同步功能,NTP synchronized 是否跟网络时间同步过
[root@localhost ~]# timedatectl list-timezones##列出我们都存在的时区
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
[root@localhost ~]# timedatectl##我们可以看到时区已经列为上海了,并且我看可以看到本地时间等于世界时间与时区的和或者减(这就是系统设置的UTC时间的计算方式)

   Local time: Thu 2020-06-11 23:43:00 CST
  Universal time: Thu 2020-06-11 15:43:00 UTC
        RTC time: Thu 2020-06-11 15:43:00
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

##我们如何让系统时间显示的不是世界时间而是本地时间呢?(实质就是打开RTC in local TZ)
[root@localhost ~]# timedatectl set-local-rtc 1##这个后面输入1为设置为本地时间,输入0为设置为世界时间(也就是上面那个RTC in local TZ的打开和关闭)
[root@localhost ~]# timedatectl##可以看到RTCtime已经为本地时间了

   Local time: Thu 2020-06-11 23:49:34 CST
  Universal time: Thu 2020-06-11 15:49:34 UTC
        RTC time: Thu 2020-06-11 23:49:34
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: yes
      DST active: n/a

##这种情况针对于我们装双系统,切换系统的时候可能遇到的时间错误的问题,我们只要让他同步本地时间就可以避免这个问题
[root@localhost ~]# timedatectl

list-timezones  set-ntp         set-timezone    
set-local-rtc   set-time        status          

[root@localhost ~]# timedatectl set-ntp true##这个是修改NTP enabled,开启网络同步时间的,

Failed to parse NTP setting:

##显示失败了,那是因为我们刚刚设置同步到本地的时间,同步本地时间的同时不能同步网络时间
[root@localhost ~]# timedatectl set-local-rtc 0##关掉同步本地时间
[root@localhost ~]# timedatectl set-ntp true##再次打开
[root@localhost ~]# timedatectl##NTP enabled已经修改,并且我们已经和世界时间相同

      Local time: Thu 2020-06-11 16:00:46 CST
  Universal time: Thu 2020-06-11 08:00:46 UTC
        RTC time: Thu 2020-06-11 08:00:46
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

[root@localhost ~]# timedatectl set-time "2019-10-19 11:20:05"##这个是将本地时间设置为这个时间
##我们现在遇到的问题是:我们在管理多台主机的时候,每个主机显示的 时间不同,当我们多个主机把日志传送到一个主机时候,如何保证时间不会乱呢,到底最后以哪个时间为准呢?如何保持传送过来的日志时间一致呢?让一台主机把时间共享出来,让其他主机去看这个时间,然后让他把他时间同步出来
日志管理,定时和延迟任务_第16张图片
[root@localhost ~]# vim /etc/chrony.conf
日志管理,定时和延迟任务_第17张图片
##让200这个IP同步我们本机的时间将这部分内容修改为这样
日志管理,定时和延迟任务_第18张图片
##再把这个功能打开,作为一个时间源
[root@localhost ~]# systemctl restart chronyd.service##重启chronyd服务,再关闭火墙

##再在另一台ip为100的主机上操作
[root@localhost ~]# vim /etc/chrony.conf##编辑chrony服务

日志管理,定时和延迟任务_第19张图片
删除掉多余的,让时间服务刚出来的(iburst)马上同步到本机这个IP,再加上前面允许200IP
[root@localhost ~]# systemctl restart chronyd.service
[root@localhost ~]# chronyc sources -v##查看是否同步

210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^#192.168.0.200        10   6     3     1    -12us[  -12us] +/-   19us

##^#192.168.0.200这个出现的意思就是同步到了200这个IP证明已经同步了

4.journalctl命令的使用

日志管理,定时和延迟任务_第20张图片
[root@localhost ~]# ps aux |grep journal##可以看到系统存在一个systemctl-journald命令对系统提供运行支持

root       3536  0.0  0.2  40560  4488 ?        Ss   05:02   0:01 /usr/lib/systemd/systemd-journald
root      14127  0.0  0.0 112712   976 pts/0    S+   10:52   0:00 grep --color=auto journal

[root@localhost ~]# journalctl##这个命令是查看我们的所有日志

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 10:52:10 CST. --
Jun 11 23:30:46 localhost.localdomain systemd-journal[93]: Runtime journal is using 8.0M
Jun 11 23:30:46 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Jun 11 23:30:46 localhost.localdomain kernel: Initializing cgroup subsys cpu
Jun 11 23:30:46 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Jun 11 23:30:46 localhost.localdomain kernel: Linux version 3.10.0-957.el7.x86_64 (mockb
Jun 11 23:30:46 localhost.localdomain kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-9
Jun 11 23:30:46 localhost.localdomain kernel: Disabled fast string operations

[root@localhost ~]# journalctl -n##查看最近十条日志

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 10:53:45 CST. --
Jun 12 10:53:02 localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.
Jun 12 10:53:02 localhost.localdomain chronyd[11856]: Source 192.168.0.100 online
Jun 12 10:53:02 localhost.localdomain nm-dispatcher[14244]: req:4 'connectivity-change':
Jun 12 10:53:02 localhost.localdomain NetworkManager[7153]: <warn>  [1591930382.5930] ac
Jun 12 10:53:02 localhost.localdomain PackageKit[8206]: get-updates transaction /101_aba
Jun 12 10:53:03 localhost.localdomain avahi-daemon[7010]: Registering new address record
Jun 12 10:53:40 localhost.localdomain nautilus-deskto[9357]: g_simple_action_set_enabled
Jun 12 10:53:40 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:40 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:45 localhost.localdomain gnome-software[9391]: failed to call gs_plugin_ref
...skipping...
-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 10:53:45 CST. --
Jun 12 10:53:02 localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.
Jun 12 10:53:02 localhost.localdomain chronyd[11856]: Source 192.168.0.100 online
Jun 12 10:53:02 localhost.localdomain nm-dispatcher[14244]: req:4 'connectivity-change':
Jun 12 10:53:02 localhost.localdomain NetworkManager[7153]: <warn>  [1591930382.5930] ac
Jun 12 10:53:02 localhost.localdomain PackageKit[8206]: get-updates transaction /101_aba
Jun 12 10:53:03 localhost.localdomain avahi-daemon[7010]: Registering new address record
Jun 12 10:53:40 localhost.localdomain nautilus-deskto[9357]: g_simple_action_set_enabled
Jun 12 10:53:40 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:40 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:45 localhost.localdomain gnome-software[9391]: failed to call gs_plugin_ref

[root@localhost ~]# journalctl -n 3##查看最近三条日志

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 10:53:45 CST. --
Jun 12 10:53:40 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:40 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:45 localhost.localdomain gnome-software[9391]: failed to call gs_plugin_ref

[root@localhost ~]# journalctl --since 10:53##这个是查看从10点53开始的日志

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 10:54:40 CST. --
Jun 12 10:53:00 localhost.localdomain systemd[1]: Stopping LSB: Bring up/down networking
Jun 12 10:53:01 localhost.localdomain NetworkManager[7153]: <warn>  [1591930381.0286] if
Jun 12 10:53:01 localhost.localdomain NetworkManager[7153]: <info>  [1591930381.1416] de
Jun 12 10:53:01 localhost.localdomain NetworkManager[7153]: <info>  [1591930381.1439] ma
Jun 12 10:53:01 localhost.localdomain NetworkManager[7153]: <info>  [1591930381.1441] au
Jun 12 10:53:01 localhost.localdomain NetworkManager[7153]: <info>  [1591930381.1442] de
Jun 12 10:53:01 localhost.localdomain avahi-daemon[7010]: Withdrawing address record for
Jun 12 10:53:01 localhost.localdomain avahi-daemon[7010]: Withdrawing address record for
Jun 12 10:53:01 localhost.localdomain avahi-daemon[7010]: Leaving mDNS multicast group o
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' resumed (module 
Jun 12 10:53:01 localhost.localdomain rsyslogd[7646]: action 'action 2' suspended, next 
Jun 12 10:53:01 localhost.localdomain dbus[6989]: [system] Activating via systemd: servi
Jun 12 10:53:01 localhost.localdomain systemd[1]: Starting Network Manager Script Dispat
Jun 12 10:53:01 localhost.localdomain avahi-daemon[7010]: Interface ens33.IPv4 no longer
Jun 12 10:53:01 localhost.localdomain dbus[6989]: [system] Successfully activated servic
Jun 12 10:53:01 localhost.localdomain systemd[1]: Started Network Manager Script Dispatc

[root@localhost ~]# journalctl --until 10:53##查看到10.53为止的日志

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 10:56:20 CST. --
Jun 11 23:30:46 localhost.localdomain systemd-journal[93]: Runtime journal is using 8.0M
Jun 11 23:30:46 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Jun 11 23:30:46 localhost.localdomain kernel: Initializing cgroup subsys cpu
Jun 11 23:30:46 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Jun 11 23:30:46 localhost.localdomain kernel: Linux version 3.10.0-957.el7.x86_64 (mockb
Jun 11 23:30:46 localhost.localdomain kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-9
Jun 11 23:30:46 localhost.localdomain kernel: Disabled fast string operations
Jun 11 23:30:46 localhost.localdomain kernel: e820: BIOS-provided physical RAM map:
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009e800-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000dc000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x000000007fee0000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x000000007feff000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x000000007ff00000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000f0000000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000fec00000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000fee00000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000fffe0000-0x00000
Jun 11 23:30:46 localhost.localdomain kernel: NX (Execute Disable) protection: active
Jun 11 23:30:46 localhost.localdomain kernel: SMBIOS 2.7 present.
Jun 11 23:30:46 localhost.localdomain kernel: DMI: VMware, Inc. VMware Virtual Platform/
Jun 11 23:30:46 localhost.localdomain kernel: Hypervisor detected: VMware
Jun 11 23:30:46 localhost.localdomain kernel: vmware: TSC freq read from hypervisor : 23

##怎么查看系统指定日志的信息
[root@localhost ~]# systemctl status sshd.service##sshd的pid为7643

● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-06-11 23:31:21 CST; 11h ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 7643 (sshd)
    Tasks: 1
   CGroup: /system.slice/sshd.service
           └─7643 /usr/sbin/sshd -D

[root@localhost ~]# journalctl -o verbose ##这个可以查看这个机器的日志的详细参数信息

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 11:00:01 CST. --
Thu 2020-06-11 23:30:46.572379 CST [s=f5744b331f4d4d4f862bbf7038c02168;i=1;b=12b2423c874
    PRIORITY=6
    _TRANSPORT=driver
    MESSAGE=Runtime journal is using 8.0M (max allowed 99.0M, trying to leave 148.5M fre
    MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6
    _PID=93
    _UID=0
    _GID=0
    _COMM=systemd-journal
    _EXE=/usr/lib/systemd/systemd-journald
    _CMDLINE=/usr/lib/systemd/systemd-journald
    _CAP_EFFECTIVE=5402800cf
    _SYSTEMD_CGROUP=/system.slice/systemd-journald.service
    _SYSTEMD_UNIT=systemd-journald.service
    _SYSTEMD_SLICE=system.slice
    _BOOT_ID=12b2423c874544dcbdccf9f86f052212
    _MACHINE_ID=4dd8bf0a62964b709726bb3d5cdda54e
    _HOSTNAME=localhost.localdomain
Thu 2020-06-11 23:30:46.572444 CST [s=f5744b331f4d4d4f862bbf7038c02168;i=2;b=12b2423c874
    PRIORITY=6
    _BOOT_ID=12b2423c874544dcbdccf9f86f052212
    _MACHINE_ID=4dd8bf0a62964b709726bb3d5cdda54e
    _HOSTNAME=localhost.localdomain
    _SOURCE_MONOTONIC_TIMESTAMP=0

##能看到是哪个PID,UID产生的日志,查询7643就可以看到sshd在7643这个pid上的相关信息
日志管理,定时和延迟任务_第21张图片
##进程的名字是COMM=sshd
[root@localhost ~]# journalctl _PID=7643 _COMM=sshd##我们输入shhd的pid和comm就可以查看单独查看他的进程信息了

-- Logs begin at Thu 2020-06-11 23:30:46 CST, end at Fri 2020-06-12 11:07:36 CST. --
Jun 11 23:31:21 localhost.localdomain sshd[7643]: Server listening on 0.0.0.0 port 22.
Jun 11 23:31:21 localhost.localdomain sshd[7643]: Server listening on :: port 22.

日志管理,定时和延迟任务_第22张图片
##但是我们重启后,内存信息就被清理了,因为journalctl命令是直接查看内存中的信息的,因为内存的信息,在关机后就会被全部清理掉,所有我们要查看更早的日志信息还是需要将内存信息采集到硬盘的rsyslog命令才行
##我们的journctl命令可以采集内存的信息到硬盘吗?可以
[root@localhost ~]# mkdir /var/log/journal##先创建采集的目录
[root@localhost ~]# chgrp systemd-journal /var/log/journal/##先把目录的组归属改为systed-journal
[root@localhost ~]# ps aux |grep journal##因为/usr/lib/systemd/systemd-journald智能识别组为systemd-journal的所有目录,所以才改他的组归属

root       3536  0.0  0.3  40564  8048 ?        Ss   05:02   0:01 /usr/lib/systemd/systemd-journald
root      14811  0.0  0.1 147036  2704 pts/0    S+   11:06   0:00 journalctl -o verbose
root      14993  0.0  0.0 112712   976 pts/1    S+   11:19   0:00 grep --color=auto journal

[root@localhost ~]# chmod 2755 /var/log/journal##我们将组权限改为2755,打开她的s权限,让他的组systed-journal写进入的日志文件都是输入这个组的
[root@localhost ~]# killall -1 systemd-journald##在不关闭进程的情况下刷新下这个进程
[root@localhost ~]# cd /var/log/journal/
[root@localhost journal]# ls##可以看到这个主机的机器码

4dd8bf0a62964b709726bb3d5cdda54e

##这个时候之后生成的日志都会被采集到这个目录里面
[root@localhost ~]# reboot##重启后再使用journalctl查看日志
[root@localhost ~]# journalctl -n 500##可以看到重启之前的日志都可以看到了

Jun 12 11:20:01 localhost.localdomain CROND[15010]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Jun 12 11:23:11 localhost.localdomain nautilus-deskto[9357]: g_simple_action_set_enabled: assertion 'G_IS_SIMPLE_ACTION (simple)' failed
Jun 12 11:23:32 localhost.localdomain nautilus-deskto[9357]: g_simple_action_set_enabled: assertion 'G_IS_SIMPLE_ACTION (simple)' failed
Jun 12 11:26:06 localhost.localdomain systemd-journal[15105]: Permanent journal is using 16.0M (max allowed 1.6G, trying to leave 2.5G free 
Jun 12 11:26:06 localhost.localdomain systemd-journal[15105]: Journal started
Jun 12 11:26:06 localhost.localdomain rsyslogd[7646]: sd_journal_get_cursor() failed: 'Cannot assign requested address'  [v8.24.0-34.el7]
Jun 12 11:26:06 localhost.localdomain rsyslogd[7646]: imjournal: journal reloaded... [v8.24.0-34.el7 try http://www.rsyslog.com/e/0 ]
Jun 12 11:26:06 localhost.localdomain systemd[1]: Starting Flush Journal to Persistent Storage...

5.延迟任务和定时任务

[root@localhost Desktop]# touch file{1..100}##比如我们再桌面创建100个文件
[root@localhost Desktop]# at 11:56##这样在11.53分就会自动删除这个文件

at> rm -fr /Desktop/*
at>
job 1 at Fri Jun 12 11:53:00 2020

##这个是在键盘上按ctrl+d来进行的
[root@localhost Desktop]# at -l##查看延时任务

2	Fri Jun 12 11:53:00 2020 a root

[root@localhost Desktop]# at -c 2##at -c 加上job号(这里是2)可以查看进程信息
[root@localhost Desktop]# at -r 2##可以取消掉任务
[root@localhost Desktop]# at now+1min##这个是一分钟后创建任务
at> touch /root/Desktop/file{1..10}##一分钟后创建文件file1到10
at>
job 5 at Fri Jun 12 14:34:00 2020
[root@localhost Desktop]# ll##到34分我们查看后发现文件已经创建

total 0
-rw-r--r--. 1 root root 0 Jun 12 14:34 file1
-rw-r--r--. 1 root root 0 Jun 12 14:34 file10
-rw-r--r--. 1 root root 0 Jun 12 14:34 file2
-rw-r--r--. 1 root root 0 Jun 12 14:34 file3
-rw-r--r--. 1 root root 0 Jun 12 14:34 file4
-rw-r--r--. 1 root root 0 Jun 12 14:34 file5
-rw-r--r--. 1 root root 0 Jun 12 14:34 file6
-rw-r--r--. 1 root root 0 Jun 12 14:34 file7
-rw-r--r--. 1 root root 0 Jun 12 14:34 file8
-rw-r--r--. 1 root root 0 Jun 12 14:34 file9

[root@localhost Desktop]# at -r 4##这个任务编号为4,at -r取消掉任务

[root@localhost Desktop]# useradd westos##我们新建两个用户
[root@localhost Desktop]# useradd lee
[root@localhost Desktop]# su - westos
[westos@localhost ~]$ at now+1min##可以看到系统默认的普通用户可以使用延时命令
at> ^C[westos@localhost ~]$
##那么我们如何限制某个用户不能使用延时功能

[root@localhost Desktop]# ll /etc/at.deny ##etc下的at.deny就是我们演示命令的文件,也是我们延迟命令的黑名单

-rw-r--r--. 1 root root 1 May 23  2018 /etc/at.deny

[root@localhost Desktop]# vim /etc/at.deny##我们进入这个延时文件
日志管理,定时和延迟任务_第23张图片
##输入需要黑名单的用户lee,然后lee就不能使用延迟任务了
[root@localhost Desktop]# su - lee
[lee@localhost ~]$ at now+1min##lee用户不能使用延迟命令了

You do not have permission to use at.

##除了黑名单,也有白名单
[root@localhost Desktop]# ll /etc/at.allow##这个是延迟任务的白名单,但是他默认情况下是不存在的,因为如果存在一个白名单,那名单外的用户都相当于是黑名单了,我们新建的用户都会变成黑名单,很不方便,白名单存在后,黑名单里面的东西就失效了

ls: cannot access /etc/at.allow: No such file or directory

[root@localhost Desktop]# touch /etc/at.allow##我们把这个白名单的文件创建出来
[westos@localhost ~]$ at now+1min##切换成westos用户后,发现已经不能使用延迟功能了

You do not have permission to use at.

[root@localhost Desktop]# vim /etc/at.allow##我们对白名单进行编辑

在这里插入图片描述
[root@localhost Desktop]# su - westos##可以看到westos已经被加入白名单后就可以使用延迟功能了

Last login: Fri Jun 12 14:50:05 CST 2020 on pts/0

[westos@localhost ~]$ at now+1min
at>[root@localhost Desktop]# su - lee##而lee没有在白名单里面,所以没有延迟功能

Last login: Fri Jun 12 14:51:16 CST 2020 on pts/0

[lee@localhost ~]$ at now+1min

You do not have permission to use at.

##但是他对超级用户不会进行限制

6.用户系统定时任务

##记录在硬盘信息的任务都是永久的,硬盘满了,我们的运行就会停止
[lee@localhost ~]$ systemctl status crond.service##因此就提供了一个crond服务

● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2020-06-12 11:29:08 CST; 3h 27min ago
 Main PID: 7642 (crond)
    Tasks: 1
   CGroup: /system.slice/crond.service
           └─7642 /usr/sbin/crond -n

[root@localhost Desktop]# crondtab -e -u root##它提供了一个服务为crondtab,-e表示编辑,-u 指定用户执行这个任务 ,root表示指定的执行的用户
* * * * * rm-fr /mnt/*##这个里面输入这么多的意思就是每分钟清空一次/mnt/
下的目录
*/2 * * * * rm -fr /root/Desktop##这个是每2分钟清空下桌面的内容
*/2 09-17 * * *##这个是从早上9点到下午17点每两分钟
*/2 09-17 1,15 * *##这个是每月的1号和15号,从早上9点到下午17点每两分钟
*/2 09-17 1,15 3-5 *##这个是从3月到5月,每月的1号和15号,从早上9点到下午17点每两分钟

*/2 09-17 1,15 3-5 5##这个是从3月到5月的1号和15号和每个星期5从早上9点到下午17点每两分钟

##我们先对* * * * * rm-fr /mnt/*设置
[root@localhost Desktop]# cat /var/spool/cron/root##crontab -e -u root这个crontab服务保存的文件就在这个文件目录,后面的root的原因是执行的用户是root
* * * * * rm-fr /mnt/*

[root@localhost Desktop]# crontab -u root -l##这个是查看存在的crontab命令内容,和上面输出一样
* * * * * rm-fr /mnt/*

[root@localhost Desktop]# crontab -r -u root##这个是将root任务的所有定时任务都清除掉
[root@localhost spool]# cd /var/spool/cron##我们清楚掉这个进程后
[root@localhost cron]# ls进入cron查看发现文件已经空了


##临时文件的管理
##我们文件运行的过程中会产生临时文件,临时文件就相当于我们的垃圾了
[root@localhost cron]# systemd-tmpfiles##这个就是我们临时文件的清理命令程序了
[root@localhost cron]# cd /usr/lib/tmpfiles.d
[root@localhost tmpfiles.d]# ls##这些文件都是我们临时文件的策略

abrt.conf                 legacy.conf          rpcbind.conf               systemd.conf
colord.conf               libselinux.conf      rpm.conf                   systemd-nologin.conf
cryptsetup.conf           libstoragemgmt.conf  samba.conf                 tmp.conf
cups.conf                 lvm2.conf            sap.conf                   tuned.conf
cups-lp.conf              mdadm.conf           selinux-policy.conf        var.conf
etc.conf                  pam.conf             setroubleshoot.conf        x11.conf
gvfsd-fuse-tmpfiles.conf  ppp.conf             spice-vdagentd.conf
initscripts.conf          python.conf          subscription-manager.conf
iscsi.conf                radvd.conf           sudo.conf

[root@localhost tmpfiles.d]# vim tmp.conf

日志管理,定时和延迟任务_第24张图片
##这个tmp 1777就是u是满权限,然后root用户和组,他的生命周期是10天,所以这个tmp在生命周期结束的时候会被清理的,tmp里面的内容存在超过10天就会被清理
[root@localhost tmpfiles.d]# vim westos.conf##我们自己创建一个定期清理的命令,
在这里插入图片描述
##/mnt/westos为目录地址 ,最后为30秒
[root@localhost ~]# watch -n 1 ls -lR /mnt/##在另外一个terminal里面查看mnt的信息
[root@localhost tmpfiles.d]# systemd-tmpfiles --create /usr/lib/tmpfiles.d/*##再创建这个命令,类似于激活这里面的命令一样,至于执行在我们下面clean执行
[root@localhost tmpfiles.d]# touch /mnt/westos/file##先创建一个文件
[root@localhost tmpfiles.d]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*##第一次执行发现文件没有被删除掉,

[root@localhost tmpfiles.d]# systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*##我们经过30秒后再执行发现就被清理掉了

你可能感兴趣的:(q'we,linux)