ubuntu20.04系统清理

ubuntu中,使用systemd-journald做日志中心库,使用rsyslog来持久化日志,使用logrotate来轮转日志文件

一、journald和rsyslog

journald:

systemd-journald.service: 记录与服务、开机引导有关的日志,服务在运行的时候才有相关的日志,它以二进制文件的形式保存在内存中,如果系统被重启或关机之后,systemd-journald.service保存的日志就没有了。这里的日志是没有分类的,分类是 rsyslog 干的事情。

查看当前日志占用内存情况:

#检查当前journal使用磁盘量
journalctl --disk-usage

手动按规则清理日志

#按时间清理
sudo journalctl --vacuum-time=1w	#日志保存一周内的数据
#或者按大小清理
sudo journalctl --vacuum-size=500M	#日志占用空间大小500MB
#或者直接全部删除
sudo rm -rf /var/log/journal/*		#手动删除日志(不推荐)

修改配置文件,自定义记录规则:

配置文件:/etc/systemd/journald.conf

修改配置文件:sudo vim /etc/systemd/journald.conf

#/etc/systemd/journald.conf
SystemMaxUse=500M
ForwardToSyslog=no

#重启

sudo systemctl restart systemd-journald.service

#检查journal是否运行正常以及日志文件是否完整无损坏

journalctl --verify

journald.conf各参数解析

#Storage=auto 是否保存系统日志
   #auto: 默认参数,rsyslog决定要使用持久存储还是易失性存储。如果/var/log/journal 目录存在,
           #那么rsyslog 会使用持久存储,否则使用易失性存储。
   #persistment: 将日志存储在 /var/log/journal 目录中,这可以在系统重启后持久保留。
   #volatile:将日志存储在易失性/run/log/journal 目录中
   #none: 表示不保存任何日志(直接丢弃所有收集到的日志), 但日志转发不受影响。

#Compress=yes 
    #将大于特定阈值的对象存储到日志中时先压缩再存储。

#Seal=yes 

#SplitMode=uid 设置如何按用户分割日志文件

#SyncIntervalSec=5m

#RateLimitIntervalSec=30s 用于限制日志的生成速度(设为零表示不作限制)。
#RateLimitBurst=10000 含义是在 RateLimitIntervalSec= 时间段内,每个服务最多允许产生 RateLimitBurst= 数量(条数)的日志。 
                #在同一个时间段内,超出数量限制的日志将被丢弃,直到下一个时间段才能再次开始记录。 
                #对于所有被丢弃的日志消息,仅用一条类似"xxx条消息被丢弃"的消息来代替。

#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#限制日志文件的大小上限。
    #以 "System" 开头的选项用于限制磁盘使用量, 也就 /var/log/journal 的使用量。
    #以 "Runtime" 开头的选项用于限制内存使用量, 也就是 /run/log/journal的使用量。
    #SystemMaxUse= 与 RuntimeMaxUse= 限制全部日志文件加在一起最多可以占用多少空间。
    #SystemMaxFileSize= 与 RuntimeMaxFileSize= 限制单个日志文件的最大体积, 到达此限制后日志文件将会自动滚动。 
    #默认值是对应的 SystemMaxUse= 与 RuntimeMaxUse= 值的1/8 , 这也意味着日志滚动默认保留7个历史文件。
    #SystemMaxFiles= 与 RuntimeMaxFiles= 限制最多允许同时存在多少个日志文件, 超出此限制后, 最老的日志文件将被删除, 
        #而当前的活动日志文件不受影响。 默认值为100个。

#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes

syslog:

不同的 Linux 版本,syslog 服务名可能为 syslog,也可能为 rsyslog;以下以 rsyslog为例说明。

rsyslog.service:就是把 systemd-journald.service 保存的二进制日志内容,整理转换成文本文档,并且会保存在 /var/log 中。

配置文件:/etc/rsyslog.conf 文件和/etc/rsyslog.d 目录下扩展名为.conf的任何文件。

二、logrotate 

Logrotate是一个管理日志文件自动轮转和压缩的系统工具,以防止/var/log/目录下的日志文件占用文件空间过多。如果日志文件没有被轮转、压缩和定期修建,它们最终可能占用系统上所有可用的磁盘空间。

参看/var/log/下各文件大小。(一般syslog和kern.log文件过大)

ll -h /var/log

logrotate 是如何工作的:

默认情况下,logrotate 命令作为放在 /etc/cron.daily 中的 cron 任务,每天运行一次,它会帮助你设置一个策略,其中超过某个时间或大小的日志文件被轮换。

可执行文件在:/usr/sbin/logrotate

配置文件:/etc/logrotate.conf

打开配置文件:sudo vim /etc/logrotate.conf

缺省的配置一般放在logrotate.conf文件的最开始处,影响整个系统。

daily 指定所有的日志文件每天转储一次,也可以设置为weekly

rotate 1 指定转储文件的保留1份,1天之前的日志将被删除。这里可以改成0,设为0则不保存

errors root 指定错误信息发送给root。

create 自动创建新的日志文件,新的日志文件具有和原来的文件相同的权限;因为日志被改名,因此要创建一个新的来继续存储之前的日志

compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。

size log-size当日志文件到达指定的大小时才转储,log-size能指定bytes(缺省)及KB (sizek)或MB(sizem). 例如size 5; size 100K; size 500M

#这里include其他软件的单独配置文件
include /etc/logrotate.d 这是你安装的任何需要日志旋转帮助的软件包的Logrotate配置。

修改完重启

三、ros缓存清理(安全清理)

可以放入程序自启脚本中

#!/bin/bash

rosclean purge <<EOF
y
EOF

四、回收站路径

~/.local/share/Trash/files

五、vscode

system_clean.sh。不要将脚本内容写入.bashrc或者设置自启动!!!!有可能删除系统,与rm -rf 执行路径有关,不要写相对路径,写绝对路径安全,rm -rf 也不要加入通配符*等,写具体文件或者文件夹,后续加入更多判断。

#!/bin/bash

# 清理vscode缓存
echo "###############################"
echo "[start cleaning up vscode cache]"
echo $(pwd)
pushd /home/chenjian/.config/Code/User/workspaceStorage/
files_size=$(du -s | awk '{print $1}')
echo ${files_size}
#byte
buff=$5242880
if [ $files_size -gt $buff ]; then
	rm -rf /home/chenjian/.config/Code/User/workspaceStorage
fi
popd
echo "[end ...]"
echo $(pwd)
echo "###############################"

#清理vscode-cpptools智能感知缓存
rm -rf /home/chenjian/.cache/vscode-cpptools/ipch

 

posted @ 2021-12-23 08:17  chenjian688  阅读(1227)  评论(0编辑  收藏  举报