e2scrub_all: only run in service mode when periodic_e2scrub=1
diff mbox series

Message ID 20190711234346.30454-1-tytso@mit.edu
State Accepted
Headers show
Series
  • e2scrub_all: only run in service mode when periodic_e2scrub=1
Related show

Commit Message

Theodore Y. Ts'o July 11, 2019, 11:43 p.m. UTC
By default, e2scrub_all will not actually trigger online scrubs unless
periodic_e2scrub=1 is set in /etc/e2scrub.conf.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
 scrub/e2scrub.conf.in | 4 ++++
 scrub/e2scrub_all.in  | 6 ++++++
 2 files changed, 10 insertions(+)

Patch
diff mbox series

diff --git a/scrub/e2scrub.conf.in b/scrub/e2scrub.conf.in
index 5c030877..661fc13f 100644
--- a/scrub/e2scrub.conf.in
+++ b/scrub/e2scrub.conf.in
@@ -1,5 +1,9 @@ 
 # e2scrub configuration file
 
+# Uncomment to enable automatic periodic runs of e2scrub_all
+# (either via cron or via a systemd timer)
+# periodic_e2scrub=1
+
 # e-mail destination used by e2scrub_fail when problems are found with
 # the file system.
 # recipient=root
diff --git a/scrub/e2scrub_all.in b/scrub/e2scrub_all.in
index f342faf2..5bdbd116 100644
--- a/scrub/e2scrub_all.in
+++ b/scrub/e2scrub_all.in
@@ -25,6 +25,7 @@  if (( $EUID != 0 )); then
     exit 1
 fi
 
+periodic_e2scrub=0
 scrub_all=0
 snap_size_mb=256
 reap=0
@@ -79,6 +80,11 @@  while getopts "nrAV" opt; do
 done
 shift "$((OPTIND - 1))"
 
+if [ -n "${SERVICE_MODE}" -a "${reap}" -ne 1 -a "${periodic_e2scrub}" -ne 1 ]
+then
+    exitcode 0
+fi
+
 # If some prerequisite packages are not installed, exit with a code
 # indicating success to avoid spamming the sysadmin with fail messages
 # when e2scrub_all is run out of cron or a systemd timer.