Ich verwende Folgendes unter Debian 10:
zfs-0.8.4-2~bpo10+1
zfs-kmod-0.8.4-2~bpo10+1
Ich habe einen 2 TB großen (mit Passphrase verschlüsselten) Datensatz, den viele Kollegen verwenden. Ich verwende auch Zabbix zur Überwachung und habe bestimmte Alarme implementiert, um zu wissen, ob zu viele Dateien gelöscht wurden. Dies ist das Skript, das ich einmal täglich als Cronjob ausführe, um zu überprüfen, wie viele Dateien geändert, gelöscht oder hinzugefügt wurden:
#!/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
Wenn ich das Skript manuell ausführe, funktioniert es in 90 % der Fälle. Manchmal tritt dieser Fehler auf (beim Ausführen des zfs diff
Befehls):
Key must be loaded to discover path names: Permission denied
Wenn das Skript über Cron ausgeführt wird, schlägt es fast immer fehl.es sei dennIch habe das Skript zuerst manuell ausgeführt. Dann funktioniert es 2 Tage lang und zeigt mir dann wieder den oben genannten Fehler an.
Außerdem dauert es sehr lange, den Diff-Test durchzuführen (15-20 Minuten) und ich bin nicht sicher, ob das etwas mit dem obigen Fehler zu tun hat oder nicht. Irgendwelche Ideen?