CentOS 清除 SSH 登录记录、历史命令及日志缓存

Eric 教程 1,449 次浏览 抢沙发

清除 SSH 登录记录

SSH 登录日志以二进制方式存储在下面文件内,需要使用对应命令查看,不然会显示乱码。

日志文件 查看命令 日志内容
/var/log/wtmp last 登录成功日志,包含用户名、IP 地址和时间记录
/var/log/btmp lastb 登录失败日志,包含信息同上
/var/log/lastlog lastlog 各用户的最近登录日志
/var/log/secure cat查看 各类需要输入口令的登录日志

清除 SSH 登录日志使用下面命令。

cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/btmp
cat /dev/null > /var/log/lastlog
cat /dev/null > /var/log/secure

清除 Bash 历史命令

Bash 执行过的命令存在用户目录下的 .bash_history 文件里,用 history 命令查看。

清除所有历史命令记录,并立即更新日志文件。

history -c
history -w

如果只需清除当前会话用过的命令记录,用 history -r 命令清除。

删除重复软件包

先安装 yum-utils 软件。

yum -y install yum-utils

列出所有重复的软件包。

package-cleanup --dupes

删除重复软件包,过程中需确认操作。

package-cleanup --cleandupes

清除 YUM 缓存

用法一:清除已启用软件仓库里的所有类型缓存。

yum clean all

延伸:Ubuntu / Debian 用 apt-get clean 命令清除缓存,还可用 apt-get autoremove 清除重复多余软件包。

用法二:添加 --enablerepo='*' 选项临时清除禁用状态的软件仓库缓存。

yum --enablerepo='*' clean all

用法三:清除指定类型 YUM 缓存。

命令 作用
yum clean expire-cache 清除元数据和镜像列表的获取时间,使下次使用 YUM 时重新验证缓存。如果缓存数据仍有效,则不会删除任何重要数据。
yum clean packages 清除缓存目录下的软件包。
yum clean headers 清除旧版 YUM 用来确认软件包依赖关系的文件,在下次运行 YUM 时重新下载。
yum clean metadata 清除 YUM 用于确认软件包远程可用性的文件,在下次运行 YUM 时重新下载。
yum clean dbcache 清除加速元数据访问的 sqlite 缓存,下次运行时重新创建(注:不适用仅包含 .xml 数据的软件仓库,其清除后不会重新创建)。
yum clean rpmdb 清除任何本地 rpmdb 中的缓存数据。
yum clean plugins 清除已启用 YUM 插件的缓存数据。
上述列表中的 expire-cache 是较温和选项,可以用来替代 clean all

清除系统日志文件

已排除上面提到的日志文件。其中 /var/log/messages 是重要日志文件,记录了几乎所有系统错误及重要的相关信息。如果系统出了问题,该文件是经常要检查的项目之一。

cat /dev/null > /var/log/boot.log
cat /dev/null > /var/log/cron
cat /dev/null > /var/log/dmesg
cat /dev/null > /var/log/firewalld
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/spooler
cat /dev/null > /var/log/syslog
cat /dev/null > /var/log/tallylog
cat /dev/null > /var/log/yum.log

关于系统日志文件的路径设置可以查看 /etc/rsyslog.conf 文件,CentOS 旧版本则是 /etc/syslog.conf

释放内存缓存

内存缓存分 Page Cache 和 Buffer Cache。前者从硬盘读取的文件缓存,譬如 find 查找文件首次速度慢,而后就变快了。后者是 slab 分配器中的对象(Dentry 缓存、Inode 缓存)。为避免清除缓存引发可能的内存 Buffer 数据丢失,清除前先运行 sync 命令使数据写到硬盘。

下面命令将同时清除两种类型缓存。如要选择性清除替换其中数字,1 表示 Page Cache,2表示 Buffer Cache。

sync && echo 3 > /proc/sys/vm/drop_caches

free -h 命令检查运行前后的内存 buff/cache 用量,available 表示剩余可用容量。

可以 crontab -e 添加定时释放内存缓存任务。例如每天凌晨 4 点运行一次。

0 4 * * * sync && echo 3 > /proc/sys/vm/drop_caches

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。