#!/bin/bash error_ids="" # Only run if this is the only instance of this script running # note: since this script forks to run pgrep, we need -eq 2 here if [[ $(pgrep -f "${0}" | wc -l) -eq 2 ]]; then # We sleep a deterministic amount of time, which will be between 0 an 128 m and allways the same within # a specific host, but will differ between hosts sleep $((16#$(ip a | grep "link/ether" | head -1 | awk -F ':' '{print $6}' | awk '{print $1}') / 2))m for container in $(get_containers); do for id in $(nocc "${container}" files_external:list --all --output json | jq '.[].mount_id' | jq .); do nocc "${container}" files_external:scan "${id}" | grep Error # shellcheck disable=SC2181 if [[ ${?} -eq 0 ]]; then error_ids="${error_ids} ${id}" fi done done fi if [[ -n "${error_ids}" ]]; then echo "Errors found in the following mounts: ${error_ids}" exit 1 fi exit 0