Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
annotate etc/periodic/daily/750.local-trim-zfs @ 725:33293795caa6
farray.sh: style
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 06 Oct 2024 05:56:27 +0200 |
| parents | 1ccd7bf1ed06 |
| children |
| 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 |
|
402
1ccd7bf1ed06
Make ZFS uppercased in output messages and in the documentation
Franz Glasner <fzglas.hg@dom66.de>
parents:
392
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 |
