##日志是系统记录系统内部重要的事情
##日志是由系统本身产生的,产生的日志是在内存中的,然后肯定有程序将内存的日志采集到硬盘中,然后分成各类文件保存在不同的位置,这个程序就是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服务只能暂时关闭它日志的传输,当我们再次开启他的服务的时候,他前面没有传输的日志就一口气采集上来了
##我们如何设定我们的日志保存的分类和存放地址呢
[root@localhost ~]# vim /etc/rsyslog.conf
##我们进入rsyslog的信息配置文件
##我们可以在里面编辑什么类型日志.什么级别 日志存放的目录 这种格式内容来指定不同日志的保存路径
##举例:下面这个就是*.* /var/log/westos
##就是任何类型的日志,任何级别的日志都保存到log下的westos里面
##更多的设置类型在上面图片的日志类型分布和日志级别的图片
##这个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.
##比如有多个电脑需要维护,我们就可以把每台电脑的日志都给我们管理员远程同步一份
[root@localhost ~]# man 5 rsyslog.conf
##查看reyslog的帮助,里面搜索remote
远程的信息
##可以看到里面有UDP传输,也有TCP传输,TCP确保收到信息,UDP的传输速度快,上面也说了用UDP是一个@,TCP是@@
[root@localhost ~]# vim /etc/rsyslog.conf
##我们在里面加上将所有的日志信息都发送到192.168.0.200这台主机上,如果我们不想在本机保存日子,还可以吧下面的设置都删除掉
##接下来我们还要开启192.168.0.200这台主机的接收功能,把日志接收了
[root@localhost ~]# vim /etc/rsyslog.conf
##我们这里使用的是UDP的,MODLOAD 加载插件imudp,UDPserverRUN开启服务所用的端口为514,我们取消掉注释就行
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以后往后,这样我们哪台主机日志反应出来的问题我们也好迅速找到主机,这个时候就是我们的自定义日志采集格式
##我们如何设置采集格式呢?
##我们按照上面的设置加上这一行,第二个WESTOS是定义个名称WESTOS
##上面的顺序我们也可以更改,这个就是一个日志现实的顺序
##并且在我们最初设定保存日志文件的地方加上;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
##这里我们可以先把原本的信息复制一遍,然后加上#注释下,防止我们修改错误后,忘记原本的设置信息,无法恢复,我们设置好后,再删除原本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的格式也已经修改了
##总结上面的方法一个是修改单独的几个日志信息的格式,一个是将所有的信息格式进行修改
[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"
##这个是将本地时间设置为这个时间
##我们现在遇到的问题是:我们在管理多台主机的时候,每个主机显示的 时间不同,当我们多个主机把日志传送到一个主机时候,如何保证时间不会乱呢,到底最后以哪个时间为准呢?如何保持传送过来的日志时间一致呢?让一台主机把时间共享出来,让其他主机去看这个时间,然后让他把他时间同步出来
[root@localhost ~]# vim /etc/chrony.conf
##让200这个IP同步我们本机的时间将这部分内容修改为这样
##再把这个功能打开,作为一个时间源
[root@localhost ~]# systemctl restart chronyd.service
##重启chronyd服务,再关闭火墙
##再在另一台ip为100的主机上操作
[root@localhost ~]# vim /etc/chrony.conf
##编辑chrony服务
删除掉多余的,让时间服务刚出来的(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证明已经同步了
[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上的相关信息
##进程的名字是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.
##但是我们重启后,内存信息就被清理了,因为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...
[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
##我们进入这个延时文件
##输入需要黑名单的用户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.
##但是他对超级用户不会进行限制
##记录在硬盘信息的任务都是永久的,硬盘满了,我们的运行就会停止
[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
##这个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秒后再执行发现就被清理掉了