awk - 从 tail -f /var/logmessage 创建变量
问题描述
当字符串“Attached”出现在/var/log/messages 中时,我试图从/var/log/messages 中获取一个变量。
我到目前为止,并坚持:
sudo stdbuf -o0 tail -f -n0 /var/log/messages | awk '{if ($9 == "Attached") print$8}'
当插入 USB 设备时,这会提供 USB 设备设备 ID,例如 [sdc]。从这里我计划将设备安装为 exfat。我正在使用 Centos 7,它不会自动挂载 exfat。fuse-exfat 和 exfat-utils 已安装。
解决方案
您正在使用永远不会终止的“tail -f”(它将等待其他日志消息)。您可能想从文件中“grep”,然后选择第一个(或最后一个)
device=$(sudo cat /var/log/messages | awk '{if ($9 == "Attached") print $8 ; exit}')
'exit' 可用于选择第一个匹配项。
推荐阅读
- reactjs - 如何使用 ant 设计框架动态更新 Select Options 值
- python - 将字符串拆分为 2 列,但保留分隔符
- r - 如何拥有 2 个或更多 scale_linetype_manual
- api - Youtube API 上传 noauth_local_webserver
- java - 如何通过服务器在 jsp 网页中创建可移植的 url
- jquery - JsonConvert 忽略 DateTime Utc 设置?
- node.js - NestJS Azure WebApp
- c# - 在 POST 内容中引用导致错误请求
- javascript - 在 React 中改变 PrevState(带函数的 setState)
- reactjs - 在反应初始化之前无法访问'ref'