summaryrefslogtreecommitdiff
path: root/scrub
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2019-07-11 19:41:56 -0400
committerTheodore Ts'o <tytso@mit.edu>2019-07-11 19:41:56 -0400
commitf63a7add6b8c46f3cde32c13645626723ae9180f (patch)
treec6fe9c6bf6ca2342b303665b6f6e881285355973 /scrub
parent15c23fed7b871ab39d9bb64607e71aef53aec6aa (diff)
downloade2fsprogs-f63a7add6b8c46f3cde32c13645626723ae9180f.tar.gz
e2scrub_all: only run in service mode when periodic_e2scrub=1
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>
Diffstat (limited to 'scrub')
-rw-r--r--scrub/e2scrub.conf.in4
-rw-r--r--scrub/e2scrub_all.in6
2 files changed, 10 insertions, 0 deletions
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.