annotate etc/periodic/daily/750.local-trim-zfs @ 392:68e3fce18202

FIX: daily_local_trim_zfs_default_threshold must be set always
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 23 Feb 2023 21:59:01 +0100
parents 84d2735fe7f6
children 1ccd7bf1ed06
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 #!/bin/sh
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 #
386
84d2735fe7f6 Simplified version tagging a lot: it is also faster now.
Franz Glasner <fzglas.hg@dom66.de>
parents: 356
diff changeset
3 # # @(#)@@SIMPLEVERSIONTAG@@
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
4 #
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
5 # Heavily inspired (aka "copied") from /etc/periodic/daily/800.scrub-zfs
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
6 #
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
7
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
8 # If there is a global system configuration file, suck it in.
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 #
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11 newline="
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12 " # A single newline
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14 if [ -r /etc/defaults/periodic.conf ]
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 then
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16 . /etc/defaults/periodic.conf
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17 source_periodic_confs
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18 fi
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
20 : ${daily_local_trim_zfs_enable:=NO}
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
21 : ${daily_local_trim_zfs_pools=}
392
68e3fce18202 FIX: daily_local_trim_zfs_default_threshold must be set always
Franz Glasner <fzglas.hg@dom66.de>
parents: 386
diff changeset
22 : ${daliy_local_trim_zfs_default_threshold:=35}
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
23 # \${daily_local_trim_zfs_$(echo "${pool}"|tr ".:-" "_")_threshold}
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
25 case "$daily_local_trim_zfs_enable" in
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26 [Yy][Ee][Ss])
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27 echo
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
28 echo 'TRIM of zfs pools:'
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
30 if [ -z "${daily_local_trim_zfs_pools}" ]; then
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
31 daily_local_trim_zfs_pools="$(zpool list -H -o name)"
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32 fi
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 rc=0
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
35 for pool in ${daily_local_trim_zfs_pools}; do
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 # sanity check
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37 _status=$(zpool list "${pool}" 2> /dev/null)
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 if [ $? -ne 0 ]; then
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 rc=2
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 echo " WARNING: pool '${pool}' specified in"
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
41 echo " '/etc/periodic.conf:daily_local_trim_zfs_pools'"
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42 echo " does not exist"
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 continue
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 fi
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 _status=${_status##*$newline}
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 case ${_status} in
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 *FAULTED*)
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 rc=3
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 echo "Skipping faulted pool: ${pool}"
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50 continue ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 *UNAVAIL*)
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52 rc=4
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53 echo "Skipping unavailable pool: ${pool}"
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 continue ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55 esac
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
57 # determine how many days shall be between trums
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
58 eval _pool_threshold=\${daily_local_trim_zfs_$(echo "${pool}"|tr ".:-" "_")_threshold}
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
59 if [ -z "${_pool_threshold}" ]; then
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
60 _pool_threshold=${daliy_local_trim_zfs_default_threshold}
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61 fi
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
63 _last_local_trim=$(zpool history ${pool} | \
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
64 egrep "^[0-9\.\:\-]{19} zpool trim( -w)? ${pool}\$" | tail -1 |\
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65 cut -d ' ' -f 1)
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
66 if [ -z "${_last_local_trim}" ]; then
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
67 # creation time of the pool if no trim was done
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
68 _last_local_trim=$(zpool history ${pool} | \
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
69 sed -ne '2s/ .*$//p')
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
70 fi
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
71 if [ -z "${_last_local_trim}" ]; then
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
72 echo " skipping TRIM of pool '${pool}':"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
73 echo " can't get last TRIM date"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
74 continue
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
75 fi
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
76
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
77 # Now minus last trim (both in seconds) converted to days.
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
78 _local_trim_diff=$(expr -e \( $(date +%s) - \
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
79 $(date -j -v -70M -f %F.%T ${_last_local_trim} +%s) \) / 60 / 60 / 24)
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
80 if [ ${_local_trim_diff} -lt ${_pool_threshold} ]; then
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
81 echo " skipping TRIM of pool '${pool}':"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
82 echo " last TRIM is ${_local_trim_diff} days ago, threshold is set to ${_pool_threshold} days"
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
83 continue
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
84 fi
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
85
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
86 # Check general pool status (as in scrub-zfs)
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
87 _status="$(zpool status ${pool} | grep scan:)"
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
88 case "${_status}" in
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
89 *"scrub in progress"*)
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
90 echo " scrubbing of pool '${pool}' in progress, skipping:"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
91 continue
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
92 ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
93 *"resilver in progress"*)
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
94 echo " resilvering of pool '${pool}' is in progress, skipping:"
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
95 continue
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
96 ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
97 *)
356
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
98 # VOID
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
99 ;;
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
100 esac
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
101
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
102 # Check whether a trim is already running
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
103 _status="$(zpool status ${pool} | fgrep trimming)"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
104 case "${_status}" in
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
105 *\(trimming\)*)
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
106 echo " TRIM of pool '${pool}' already in progress, skipping:"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
107 ;;
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
108 *)
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
109 echo " starting TRIM of pool '${pool}':"
2ba1072103f1 Implement a new periodic script (daily) to control the automatic TRIM of SSD that contain ZFS pools/datasets
Franz Glasner <fzglas.hg@dom66.de>
parents: 355
diff changeset
110 zpool trim -w ${pool}
354
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
111 [ $rc -eq 0 ] && rc=1
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
112 ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
113 esac
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
114 done
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
115 ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
116
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
117 *)
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
118 rc=0
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
119 ;;
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
120 esac
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
121
a7dfa074dae1 ADD: the original etc/periodic/daily/800.scrub-zfs from FreeBSD 13.1.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
122 exit $rc