diff options
author | Kevin P. Fleming <[email protected]> | 2020-06-24 19:57:13 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-24 16:57:13 -0700 |
commit | f21de6883fa53b83c065aaa1aca7122afafb3c90 (patch) | |
tree | 882ae8d320eaffdbb0082aa1e883084985b0707b | |
parent | 9192f27c1d7a8cb367d8691277573f2b756b47b6 (diff) |
Add trim_finish notify script for ZED
Allow users to configure notifications when TRIM operations are
completed on pools. Unlike resilver_finish and scrub_finish,
the trim_finish event is generated for each vdev in the pool
which was trimmed, so the script will generate a notification
for each one.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Kevin P. Fleming <[email protected]>
Closes #10491
-rw-r--r-- | cmd/zed/zed.d/Makefile.am | 3 | ||||
-rwxr-xr-x | cmd/zed/zed.d/trim_finish-notify.sh | 37 |
2 files changed, 39 insertions, 1 deletions
diff --git a/cmd/zed/zed.d/Makefile.am b/cmd/zed/zed.d/Makefile.am index fbfd562c2..5cf51e4fd 100644 --- a/cmd/zed/zed.d/Makefile.am +++ b/cmd/zed/zed.d/Makefile.am @@ -24,7 +24,8 @@ dist_zedexec_SCRIPTS = \ vdev_clear-led.sh \ vdev_attach-led.sh \ pool_import-led.sh \ - resilver_finish-start-scrub.sh + resilver_finish-start-scrub.sh \ + trim_finish-notify.sh nodist_zedexec_SCRIPTS = history_event-zfs-list-cacher.sh diff --git a/cmd/zed/zed.d/trim_finish-notify.sh b/cmd/zed/zed.d/trim_finish-notify.sh new file mode 100755 index 000000000..507530299 --- /dev/null +++ b/cmd/zed/zed.d/trim_finish-notify.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# +# Send notification in response to a TRIM_FINISH. The event +# will be received for each vdev in the pool which was trimmed. +# +# Exit codes: +# 0: notification sent +# 1: notification failed +# 2: notification not configured +# 9: internal error + +[ -f "${ZED_ZEDLET_DIR}/zed.rc" ] && . "${ZED_ZEDLET_DIR}/zed.rc" +. "${ZED_ZEDLET_DIR}/zed-functions.sh" + +[ -n "${ZEVENT_POOL}" ] || exit 9 +[ -n "${ZEVENT_SUBCLASS}" ] || exit 9 + +zed_check_cmd "${ZPOOL}" || exit 9 + +umask 077 +note_subject="ZFS ${ZEVENT_SUBCLASS} event for ${ZEVENT_POOL} on $(hostname)" +note_pathname="${TMPDIR:="/tmp"}/$(basename -- "$0").${ZEVENT_EID}.$$" +{ + echo "ZFS has finished a trim:" + echo + echo " eid: ${ZEVENT_EID}" + echo " class: ${ZEVENT_SUBCLASS}" + echo " host: $(hostname)" + echo " time: ${ZEVENT_TIME_STRING}" + + "${ZPOOL}" status -t "${ZEVENT_POOL}" + +} > "${note_pathname}" + +zed_notify "${note_subject}" "${note_pathname}"; rv=$? +rm -f "${note_pathname}" +exit "${rv}" |