Estoy ejecutando lo siguiente en Debian 10:
zfs-0.8.4-2~bpo10+1
zfs-kmod-0.8.4-2~bpo10+1
Tengo un conjunto de datos de 2 TB (frase de contraseña cifrada) que utilizan muchos colegas. También estoy usando Zabbix para monitorear y he implementado ciertas alarmas para saber si se han eliminado demasiados archivos. Este es el script que estoy ejecutando como cronjob una vez al día para comprobar cuántos archivos se han modificado, eliminado o agregado:
#!/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
Si ejecuto el script manualmente, funciona el 90% del tiempo. A veces da este error (al ejecutar el zfs diff
comando:
Key must be loaded to discover path names: Permission denied
Cuando se ejecuta el script mediante cron, falla casi todo el tiempo,a menos quePrimero ejecuté el script manualmente. Luego funciona durante 2 días y vuelve a darme el error anterior.
También lleva mucho tiempo hacer la diferenciación (15-20 minutos) y no estoy seguro de si tiene algo que ver con el error anterior o no. ¿Algunas ideas?