加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_镇江站长网 (https://www.0511zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Linux定时清理和保留 history 记录优化性能

发布时间:2022-06-18 10:01:13 所属栏目:教程 来源:互联网
导读:Linux的历史记录可以让我们方便的查看系统的日常事务,但是当 history 记录多了之后会使Linux系统性能下降,那么我们可以通过定期清理和保留 history 记录优化Linux性能. 有经验的 Linux 系统工程师都喜欢把 Bash 的 HISTSIZE/HISTFILESIZE 设置的很大,这样
  Linux的历史记录可以让我们方便的查看系统的日常事务,但是当 history 记录多了之后会使Linux系统性能下降,那么我们可以通过定期清理和保留 history 记录优化Linux性能.
 
  有经验的 Linux 系统工程师都喜欢把 Bash 的 HISTSIZE/HISTFILESIZE 设置的很大,这样可以记录更多的历史命令以便以后查阅,这是个好习惯,但有个小问题就是 history 记录了的大量信息在系统启动后就被 load 到内存里,并且一直保存在内存里,这样浪费了不少内存,据统计100000条历史记录大概占用 10MB 左右的内存.
 
  要知道,现在的IT运维系统已经趋向于云计算和虚拟化,其特别就是根据你对硬件资源的需求为你定制的分配,因此,history所占用的内存完全是没必要的,10MB的可用内存可以干很多事情,比如启用一个 MySQL 服务,开个 syslogd等.
 
  那么如何保存尽量多的历史记录而又不浪费内存呢?一个办法就是把历史记录定期保存到硬盘上,bash 的当前历史记录保存在 .bash_history 里,只要定期清理这个文件的记录就可以了:
 
  #!/bin/bash
  # archive linux command history files
  
  umask 077
  maxlines=2000
  
  lines=$(wc -l < ~/.bash_history)
  --phpfensi.com
  if (($lines > $maxlines)); then
      cut=$(($lines - $maxlines))
      head -$cut ~/.bash_history >> ~/.bash_history.sav
      sed -e "1,${cut}d"  ~/.bash_history > ~/.bash_history.tmp
      mv ~/.bash_history.tmp ~/.bash_history
  fi
  上面脚本所做的事情很简单,检查 .bash_history 文件,如果行数超过2000行就剪裁2000行记录,这个值可以自定义,修改maxlines参数即可,并添加到 .bash_history.sav 这个文件里,这样我们就可以保存所有的历史记录,而且当前的历史记录不超过2000行,只占用少量资源.
 
 

(编辑:应用网_镇江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!