zfs diff 在加密数据集上给出错误(必须加载密钥才能发现路径名:权限被拒绝)

zfs diff 在加密数据集上给出错误(必须加载密钥才能发现路径名:权限被拒绝)

我在 Debian 10 上运行以下命令:

zfs-0.8.4-2~bpo10+1
zfs-kmod-0.8.4-2~bpo10+1

我有一个 2TB(密码加密)的数据集,许多同事都在使用。我还使用 Zabbix 进行监控,并实施了某些警报以了解是否删除了太多文件。这是我每天作为 cronjob 运行一次的脚本,用于检查修改、删除或添加了多少文件:

#!/bin/bash
LIST="/tmp/snaplist.txt"
DIFF="/tmp/diff.txt"
zfs list -t snapshot | grep production_dataset | grep 'snap_31' | awk '{print $1}' | tail -2 > $LIST && echo "Snapshot list saved"

while read -r SNAP; do
        snaps+=("$SNAP")
done < $LIST

zfs diff "${snaps[0]}" "${snaps[1]}" > $DIFF && echo "Diff saved successfully"

status=(M - + R)
trappers=(mod rem add ren)

for ((n=0;n<${#status[@]};n++)); do
        RESULT=$(cat $DIFF | grep -E "^${status[n]}" | wc -l)
        TRAPPER="zfsdiff_${trappers[n]}"
        /usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k "$TRAPPER" -o "$RESULT"
done

rm $LIST
rm $DIFF

如果我手动运行该脚本,90% 的时间它都能正常工作。有时它会出现此错误(运行以下命令时zfs diff

Key must be loaded to discover path names: Permission denied

通过 cron 运行脚本时,几乎每次都会失败,除非我先手动运行了脚本。然后它运行了两天,然后又出现了上面的错误。

做 diff 也需要很长时间(15-20 分钟),我不确定这是否与上述错误有关。有什么想法吗?

相关内容