我需要每五分钟运行一次脚本来解析csv中的值,但不应该一直解析最后一点的所有值。

最佳答案

真的只是在@hek2mgl的建议上加些肉,然后为你实现它。
我将日志文件的最后一个已知长度存储在另一个名为lastlength的文件中。

#!/bin/bash

LOGFILE=somelog.csv
LASTLEN=lastlength

# Pre-set seek to start of file...
seek=0

# ... but overwrite if there was a previously seen value
[ -f lastlength ] && seek=$(cat lastlength)

echo DEBUG: Starting from offset $seek

# Update last seen length into file - parameters to "stat" will differ on Linux
stat -f "%Dz" "$LOGFILE" > "$LASTLEN"

# Get last line of file starting from previous position
dd if="$LOGFILE" bs=$seek skip=1 2> /dev/null | tail -1

我使用的是osx,因此如果您使用的是linux,那么最后一行stat命令的参数可能会有所不同
stat -c%s "$LOGFILE"  > "$LASTLEN"

我让你把它放在你的crontab里,这样每5分钟就有一次。

关于linux - 如何每五分钟从CSV解析最后一个值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30556598/

10-10 17:53