我试图用cronjob转换文件。
这是我迄今为止的剧本:

files=$(find /home/user/traces/*.pcap -mmin +10 -type f)
echo "$files" | tshark -r - -T ek > '/home/user/traces/converted/'-.json

我正在尝试转换超过10分钟的文件,并将它们放入tshark文件夹。
但它失败了:
tshark: The standard input isn't a capture file in a format TShark understands.

我认为将文件名传递到converted失败,但不确定。
作为参考,这个命令确实有效:
tshark -r /home/user/traces/trace.pcap -T ek > /home/user/traces/converted/trace.pcap.json

更新
似乎与for循环一起工作:
files=$(find /home/user/traces/*.pcap -mmin +10 -type f)

for file in $files
do
  echo "processing file: $file"
  tshark -r $file -T ek > "$file.json"
done

最佳答案

$files包含逐行基的文件。我相信echo "$files" | tshark -r -无法捕获多个文件。
看来你需要有一个循环

IFS=$'\n'       # make newlines the only separator
for f in $files
do
    ...
done

关于linux - 通过命令 shell 脚本与tshark转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54786776/

10-11 16:44