Do we want a periodic script for a zfs scrub?
Alexander Leidinger
Alexander at Leidinger.net
Thu Jun 10 15:38:37 UTC 2010
Quoting Artem Belevich <fbsdlist at src.cx> (from Thu, 10 Jun 2010
07:59:46 -0700):
>> Good idea! I even found a command line which does the calculation for the
>> number of days between "now" and the last run (not taking a leap year into
>> account, but an off-by-one day error here does not matter).
>
> You can get exactly one month difference by using -v option of 'date'
> command to figure out the time/date offset by arbitrary amount.
> Combined with +"%s" format to print number of seconds since Epoch and
> -r to specify the reference point in time it makes 'date' pretty
> useful in scripts.
What we have is the date of the last scrub (e.g. 2010-06-08.20:51:12),
and what we want to know is if between the last scrub and now we
passed a specific amount of days or not.
What I do is taking the year multiplied with 365 plus the day of the
year. Both of this for the last date of the scrub and "now". The
difference is the number of days between those two dates. This value I
can use with -le or -ge for the test command.
This is only off by one once in a leap year when the leap-day is
in-between the two dates (those people which want to scrub every 4
years are off by two when both leap-days are in-between, but a scrub
of every 4 years or more looks unreasonable to me, so I do not care
much about this).
This is done in one line with two calls to date (once for the last
scrub, once for "now") and a little bit of shell-buildin-arithmetic.
If you have a more correct version which is not significantly more
complex, feel free to share it here.
Bye,
Alexander.
--
"Who would have though hell would really exist? And that it would be in New
Jersey?" -Leela
"Actually..." - Fry
http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
More information about the freebsd-fs
mailing list