我正在尝试编写一个 bash 脚本,该脚本将读取日志并在找到字符串时执行命令。该脚本需要能够在日志运行时找到字符串,从日志行中打印 1 个字段,从字段中删除第一个和最后一个字符,然后将返回移动到其他位置。我这样做了,但它不起作用。变量“error”是 /srv/files 中的文件名,当日志将其报告为错误时,我需要将其移动到 /tmp/error。
#!/bin/bash
for error in $(tail -fn0 /var/log/test-$(date +%Y%m%d).log | grep FAILED | awk '{print $8}' | cut -d "'" -f); do mv /srv/files/$error /tmp/error; done