mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 10:01:01 +03:00
Change delimiter for ZED email scripts
When the ZED_EMAIL_INTERVAL_SECS="3600" option is set in zed.rc configuration file then notification emails should be rate limited. Rate limiting is accomplished by maintaining a colon delimited state file which includes the device name. Unfortunately there are valid device names which include a colon and therefore prevent the rate limiting for working properly. For this reason the delimiter has been changed to a semi-colon. Signed-off-by: louwrentius <louwrentius@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Chris Dunlap <cdunlap@llnl.gov> Closes #2645
This commit is contained in:
parent
76c3a61642
commit
bcd9624d0f
@ -12,7 +12,7 @@
|
|||||||
# 4: unsupported event class
|
# 4: unsupported event class
|
||||||
# 5: internal error
|
# 5: internal error
|
||||||
# State File Format:
|
# State File Format:
|
||||||
# POOL:TIME_OF_LAST_EMAIL
|
# POOL;TIME_OF_LAST_EMAIL
|
||||||
#
|
#
|
||||||
test -f "${ZED_SCRIPT_DIR}/zed.rc" && . "${ZED_SCRIPT_DIR}/zed.rc"
|
test -f "${ZED_SCRIPT_DIR}/zed.rc" && . "${ZED_SCRIPT_DIR}/zed.rc"
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ flock -x 8
|
|||||||
|
|
||||||
# Query state for last time email was sent for this pool.
|
# Query state for last time email was sent for this pool.
|
||||||
TIME_NOW=`date +%s`
|
TIME_NOW=`date +%s`
|
||||||
TIME_LAST=`egrep "^${ZEVENT_POOL}:" "${STATEFILE}" 2>/dev/null | cut -d: -f2`
|
TIME_LAST=`egrep "^${ZEVENT_POOL};" "${STATEFILE}" 2>/dev/null | cut -d ";" -f2`
|
||||||
if test -n "${TIME_LAST}"; then
|
if test -n "${TIME_LAST}"; then
|
||||||
TIME_DELTA=`expr "${TIME_NOW}" - "${TIME_LAST}"`
|
TIME_DELTA=`expr "${TIME_NOW}" - "${TIME_LAST}"`
|
||||||
if test "${TIME_DELTA}" -lt "${ZED_EMAIL_INTERVAL_SECS:=3600}"; then
|
if test "${TIME_DELTA}" -lt "${ZED_EMAIL_INTERVAL_SECS:=3600}"; then
|
||||||
@ -67,8 +67,8 @@ EOF
|
|||||||
MAIL_STATUS=$?
|
MAIL_STATUS=$?
|
||||||
|
|
||||||
# Update state.
|
# Update state.
|
||||||
egrep -v "^${ZEVENT_POOL}:" "${STATEFILE}" 2>/dev/null > "${STATEFILE}.$$"
|
egrep -v "^${ZEVENT_POOL};" "${STATEFILE}" 2>/dev/null > "${STATEFILE}.$$"
|
||||||
echo "${ZEVENT_POOL}:${TIME_NOW}" >> "${STATEFILE}.$$"
|
echo "${ZEVENT_POOL};${TIME_NOW}" >> "${STATEFILE}.$$"
|
||||||
mv -f "${STATEFILE}.$$" "${STATEFILE}"
|
mv -f "${STATEFILE}.$$" "${STATEFILE}"
|
||||||
|
|
||||||
if test "${MAIL_STATUS}" -ne 0; then
|
if test "${MAIL_STATUS}" -ne 0; then
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
# 4: unsupported event class
|
# 4: unsupported event class
|
||||||
# 5: internal error
|
# 5: internal error
|
||||||
# State File Format:
|
# State File Format:
|
||||||
# POOL:VDEV_PATH:TIME_OF_LAST_EMAIL
|
# POOL;VDEV_PATH;TIME_OF_LAST_EMAIL
|
||||||
#
|
#
|
||||||
test -f "${ZED_SCRIPT_DIR}/zed.rc" && . "${ZED_SCRIPT_DIR}/zed.rc"
|
test -f "${ZED_SCRIPT_DIR}/zed.rc" && . "${ZED_SCRIPT_DIR}/zed.rc"
|
||||||
|
|
||||||
@ -49,8 +49,8 @@ flock -x 8
|
|||||||
|
|
||||||
# Query state for last time email was sent for this pool/vdev.
|
# Query state for last time email was sent for this pool/vdev.
|
||||||
TIME_NOW=`date +%s`
|
TIME_NOW=`date +%s`
|
||||||
TIME_LAST=`egrep "^${ZEVENT_POOL}:${ZEVENT_VDEV_PATH}:" "${STATEFILE}" \
|
TIME_LAST=`egrep "^${ZEVENT_POOL};${ZEVENT_VDEV_PATH};" "${STATEFILE}" \
|
||||||
2>/dev/null | cut -d: -f3`
|
2>/dev/null | cut -d ";" -f3`
|
||||||
if test -n "${TIME_LAST}"; then
|
if test -n "${TIME_LAST}"; then
|
||||||
TIME_DELTA=`expr "${TIME_NOW}" - "${TIME_LAST}"`
|
TIME_DELTA=`expr "${TIME_NOW}" - "${TIME_LAST}"`
|
||||||
if test "${TIME_DELTA}" -lt "${ZED_EMAIL_INTERVAL_SECS:=3600}"; then
|
if test "${TIME_DELTA}" -lt "${ZED_EMAIL_INTERVAL_SECS:=3600}"; then
|
||||||
@ -71,9 +71,9 @@ EOF
|
|||||||
MAIL_STATUS=$?
|
MAIL_STATUS=$?
|
||||||
|
|
||||||
# Update state.
|
# Update state.
|
||||||
egrep -v "^${ZEVENT_POOL}:${ZEVENT_VDEV_PATH}:" "${STATEFILE}" \
|
egrep -v "^${ZEVENT_POOL};${ZEVENT_VDEV_PATH};" "${STATEFILE}" \
|
||||||
2>/dev/null > "${STATEFILE}.$$"
|
2>/dev/null > "${STATEFILE}.$$"
|
||||||
echo "${ZEVENT_POOL}:${ZEVENT_VDEV_PATH}:${TIME_NOW}" >> "${STATEFILE}.$$"
|
echo "${ZEVENT_POOL};${ZEVENT_VDEV_PATH};${TIME_NOW}" >> "${STATEFILE}.$$"
|
||||||
mv -f "${STATEFILE}.$$" "${STATEFILE}"
|
mv -f "${STATEFILE}.$$" "${STATEFILE}"
|
||||||
|
|
||||||
if test "${MAIL_STATUS}" -ne 0; then
|
if test "${MAIL_STATUS}" -ne 0; then
|
||||||
|
Loading…
Reference in New Issue
Block a user