NetApp does not support NTP, so we must set the system time via periodic "rdate" commands. We have found that running rdate too often (or at the wrong time of day) can cause regularly scheduled jobs (such as scrubs) to be missed.
Right now, we're setting the time three times a day, but that doesn't cut it. Some programs bitch that time is "going backwards" and other nonsense because the NetApp isn't synchronized with everything else. (*)
I'd like to know when NetApp cron jobs (other than scrubs -- I know when they happen) are scheduled, so we can run "rdate" more often, but without causing problems.
What I'm trying to do (fix the time problem we're having) is really futile, of course. You can't synchronize crap with rdate.
- Dan
(*) this is really easy to reproduce, by creating a file and running stat() on it immediately afterwards. This script shows the problem:
------- start of cut text -------------- #!/usr/local/bin/perl
require "ctime.pl"; require "stat.pl";
die "usage: $0 [filename]\n" unless $ARGV[0];
open(TEST, "> $ARGV[0]"); close(TEST); do Stat($ARGV[0]); $now = time();
print "atime = ", &ctime($st_atime); print "mtime = ", &ctime($st_mtime); print "ctime = ", &ctime($st_ctime);
print "adiff = ", ($now - $st_atime), "\n"; print "mdiff = ", ($now - $st_mtime), "\n"; print "cdiff = ", ($now - $st_ctime), "\n"; ------- end ----------------------------
Run it against a NetApp that is "synchronized":
------- start of cut text -------------- $ ./stat-test foo atime = Fri Oct 9 19:26:11 1998 mtime = Fri Oct 9 19:28:37 1998 ctime = Fri Oct 9 19:28:37 1998 adiff = 145 mdiff = -1 cdiff = -1 ------- end ----------------------------
$now should always be >= than all of the timestamps.