tail -f命令(基础实时监控)tail -f是Ubuntu中最常用的实时日志监控工具,可持续输出日志文件的最新内容(默认显示末尾10行)。适用于快速查看日志的实时更新,例如监控系统通用日志:
sudo tail -f /var/log/syslog
若需监控特定服务的日志(如Apache的访问日志),可替换为对应路径:
sudo tail -f /var/log/apache2/access.log
按Ctrl+C可停止监控。
watch命令(定期刷新查看)watch命令可定期执行指定命令并刷新输出,适合需要固定间隔查看日志变化的场景。例如,每秒刷新一次日志文件内容:
watch -n 1 "tail -n 20 /var/log/syslog"
其中-n 1表示刷新间隔为1秒,tail -n 20限制显示最后20行(避免输出过长)。
multitail工具(多文件/高级过滤)multitail支持同时监控多个日志文件,并提供颜色高亮、过滤、分屏等功能,适合需要对比或筛选多个日志的场景。
sudo apt-get install multitail
multitail /var/log/syslog /var/log/auth.log
multitail -e "ERROR" /var/log/syslog
更多功能可通过man multitail查看手册。journalctl命令(Systemd系统专用)若系统使用systemd(Ubuntu 16.04及以上版本默认),journalctl可统一管理所有通过systemd记录的日志(包括内核、服务、系统消息)。
sudo journalctl -f
nginx):sudo journalctl -u nginx -f
sudo journalctl -p err -f
日志级别包括emerg(紧急)、alert(警报)、crit(严重)、err(错误)、warning(警告)、notice(通知)、info(信息)、debug(调试)。grep过滤关键信息若只需关注日志中的特定内容(如错误、警告),可将grep与tail -f结合使用。例如,实时监控syslog中的错误信息:
sudo tail -f /var/log/syslog | grep -i "error"
-i表示忽略大小写,可根据需要调整关键字(如"fail"、“warning”)。
若偏好图形界面,可选择以下工具:
sudo apt-get install glogg
运行后通过“File→Open”选择日志文件即可。sudo apt-get install kde-log-viewer
运行后即可查看系统日志。inotifywait(实时触发操作)inotifywait可监控日志文件的修改、创建、删除等事件,并触发自定义操作(如发送警报、备份日志)。需先安装inotify-tools:
sudo apt-get install inotify-tools
示例:监控syslog文件的修改事件并输出提示:
sudo inotifywait -m /var/log/syslog -e modify |
while read path action file; do
echo "[`date`] The file '$file' was modified in directory '$path'"
# 此处可添加自定义操作(如调用脚本分析日志)
done
该工具适合需要自动化响应日志变化的场景(如安全监控)。
sudo apt-get install logwatch
运行示例:生成文本格式的报告并输出到终端:sudo logwatch --output text
设置每日邮件报告(需配置邮件服务):sudo logwatch --output mail --mailto your-email@example.com --service all