HCRM博客

CentOS 6系统导出最近30条命令历史至CSV文件教程

CentOS6查看最近30条命令历史并导出CSV

在CentOS6里,**history**默认只给1000条,想抠出最近30条还得再倒腾成Excel能打开的CSV,不少人第一反应是复制粘贴,结果换行全乱。下面这套办法一行指令就能搞定,**不装新包、不改配置、不挑终端**,老系统也能直接跑。

CentOS 6系统导出最近30条命令历史至CSV文件教程-图1

为什么只看30条就够

日志一多眼就花,**30条刚好覆盖半天操作**,排错时足够定位,文件体积也小,邮箱随手就能发出去。

一条命令完成提取

打开终端,直接粘下面这条:

history 30 | sed 's/^[[:space:]]*[0-9]*[[:space:]]*/"/;s/$/"/' > ~/last30.csv

解释:history 30先掐出最近30行;sed把行首序号删掉,再给每条命令套上双引号,**秒变标准CSV**;最后写到主目录下的last30.csv,**中文空格都不会炸列**。

CentOS 6系统导出最近30条命令历史至CSV文件教程-图2

验证文件对不对

cat ~/last30.csv看看有没有引号包裹,再执行file ~/last30.csv,只要输出带“ASCII text”就没问题。拖到Windows上用Excel打开,**分隔符自动识别,不会挤在一格**。

想带时间戳怎么办

CentOS6默认历史不记时间,**临时用可以export HISTTIMEFORMAT="%F %T "**,再执行一次history 30,时间就会插在命令前面,**CSV里多一列,排错更直观**。注意这条变量只影响当前会话,**重启终端就消失**,不会污染老环境。

定时自动导出

把下面内容写进crontab -e,每天9点整把30条命令发到指定目录,**文件名带日期,方便回溯**:

CentOS 6系统导出最近30条命令历史至CSV文件教程-图3

0 9 * * * history 30 | sed 's/^[[:space:]]*[0-9]*[[:space:]]*/"/;s/$/"/' > /var/log/cmd_$(date +\%Y\%m\%d).csv

多用户机器怎么各收各的

上面路径换成$HOME/last30.csv,crontab用各自账号建任务,**权限互不干扰**,导出文件直接落在自己家目录,**root也看不到普通用户细节**。

CSV后续还能怎么玩

last30.csv扔进LibreOffice,用过滤器筛scp、rm、dd等高危命令,**十分钟就能拉出一张风险报表**;再配合sendEmail,**附件一键发给运维组**,手机也能审。

常见坑速查

1. 引号漏写导致逗号被截断——**sed里第二个s/$/"/千万别省**。

2. Windows记事本打开没换行——**用Excel或Notepad++,选UTF-8换行符**。

3. history条数不够30——**检查HISTSIZE变量,临时提高到100即可**。

懒人总结

记住一句话:history 30 | sed 's/^[[:space:]]*[0-9]*[[:space:]]*/"/;s/$/"/' > last30.csv,**导出、打开、发邮件三分钟收工**,CentOS6再老也能玩得溜。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41711.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~