Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 1 | This matches if the packet arrival time/date is within a given range. All |
Jan Engelhardt | db50b83 | 2011-05-23 18:38:09 +0200 | [diff] [blame] | 2 | options are optional, but are ANDed when specified. All times are interpreted |
| 3 | as UTC by default. |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 4 | .TP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 5 | \fB\-\-datestart\fP \fIYYYY\fP[\fB\-\fP\fIMM\fP[\fB\-\fP\fIDD\fP[\fBT\fP\fIhh\fP[\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]]]]] |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 6 | .TP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 7 | \fB\-\-datestop\fP \fIYYYY\fP[\fB\-\fP\fIMM\fP[\fB\-\fP\fIDD\fP[\fBT\fP\fIhh\fP[\fB:\fP\fImm\fP[\fB:\fP\fIss\fP]]]]] |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 8 | Only match during the given time, which must be in ISO 8601 "T" notation. |
| 9 | The possible time range is 1970-01-01T00:00:00 to 2038-01-19T04:17:07. |
| 10 | .IP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 11 | If \-\-datestart or \-\-datestop are not specified, it will default to 1970-01-01 |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 12 | and 2038-01-19, respectively. |
| 13 | .TP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 14 | \fB\-\-timestart\fP \fIhh\fP\fB:\fP\fImm\fP[\fB:\fP\fIss\fP] |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 15 | .TP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 16 | \fB\-\-timestop\fP \fIhh\fP\fB:\fP\fImm\fP[\fB:\fP\fIss\fP] |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 17 | Only match during the given daytime. The possible time range is 00:00:00 to |
| 18 | 23:59:59. Leading zeroes are allowed (e.g. "06:03") and correctly interpreted |
| 19 | as base-10. |
| 20 | .TP |
Jan Engelhardt | c6775d6 | 2010-07-23 21:23:05 +0200 | [diff] [blame] | 21 | [\fB!\fP] \fB\-\-monthdays\fP \fIday\fP[\fB,\fP\fIday\fP...] |
Jan Engelhardt | c6775d6 | 2010-07-23 21:23:05 +0200 | [diff] [blame] | 22 | Only match on the given days of the month. Possible values are \fB1\fP |
| 23 | to \fB31\fP. Note that specifying \fB31\fP will of course not match |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 24 | on months which do not have a 31st day; the same goes for 28- or 29-day |
| 25 | February. |
| 26 | .TP |
Jan Engelhardt | c6775d6 | 2010-07-23 21:23:05 +0200 | [diff] [blame] | 27 | [\fB!\fP] \fB\-\-weekdays\fP \fIday\fP[\fB,\fP\fIday\fP...] |
Jan Engelhardt | c6775d6 | 2010-07-23 21:23:05 +0200 | [diff] [blame] | 28 | Only match on the given weekdays. Possible values are \fBMon\fP, \fBTue\fP, |
| 29 | \fBWed\fP, \fBThu\fP, \fBFri\fP, \fBSat\fP, \fBSun\fP, or values from \fB1\fP |
| 30 | to \fB7\fP, respectively. You may also use two-character variants (\fBMo\fP, |
| 31 | \fBTu\fP, etc.). |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 32 | .TP |
Florian Westphal | 8d8896a | 2012-09-17 00:23:08 +0000 | [diff] [blame] | 33 | \fB\-\-contiguous\fP |
| 34 | When \fB\-\-timestop\fP is smaller than \fB\-\-timestart\fP value, match |
| 35 | this as a single time period instead distinct intervals. See EXAMPLES. |
| 36 | .TP |
Jan Engelhardt | db50b83 | 2011-05-23 18:38:09 +0200 | [diff] [blame] | 37 | \fB\-\-kerneltz\fP |
| 38 | Use the kernel timezone instead of UTC to determine whether a packet meets the |
| 39 | time regulations. |
| 40 | .PP |
| 41 | About kernel timezones: Linux keeps the system time in UTC, and always does so. |
| 42 | On boot, system time is initialized from a referential time source. Where this |
| 43 | time source has no timezone information, such as the x86 CMOS RTC, UTC will be |
| 44 | assumed. If the time source is however not in UTC, userspace should provide the |
| 45 | correct system time and timezone to the kernel once it has the information. |
| 46 | .PP |
| 47 | Local time is a feature on top of the (timezone independent) system time. Each |
| 48 | process has its own idea of local time, specified via the TZ environment |
| 49 | variable. The kernel also has its own timezone offset variable. The TZ |
| 50 | userspace environment variable specifies how the UTC-based system time is |
| 51 | displayed, e.g. when you run date(1), or what you see on your desktop clock. |
| 52 | The TZ string may resolve to different offsets at different dates, which is |
| 53 | what enables the automatic time-jumping in userspace. when DST changes. The |
| 54 | kernel's timezone offset variable is used when it has to convert between |
| 55 | non-UTC sources, such as FAT filesystems, to UTC (since the latter is what the |
| 56 | rest of the system uses). |
| 57 | .PP |
| 58 | The caveat with the kernel timezone is that Linux distributions may ignore to |
| 59 | set the kernel timezone, and instead only set the system time. Even if a |
| 60 | particular distribution does set the timezone at boot, it is usually does not |
| 61 | keep the kernel timezone offset - which is what changes on DST - up to date. |
| 62 | ntpd will not touch the kernel timezone, so running it will not resolve the |
| 63 | issue. As such, one may encounter a timezone that is always +0000, or one that |
| 64 | is wrong half of the time of the year. As such, \fBusing \-\-kerneltz is highly |
| 65 | discouraged.\fP |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 66 | .PP |
| 67 | EXAMPLES. To match on weekends, use: |
| 68 | .IP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 69 | \-m time \-\-weekdays Sa,Su |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 70 | .PP |
| 71 | Or, to match (once) on a national holiday block: |
| 72 | .IP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 73 | \-m time \-\-datestart 2007\-12\-24 \-\-datestop 2007\-12\-27 |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 74 | .PP |
| 75 | Since the stop time is actually inclusive, you would need the following stop |
| 76 | time to not match the first second of the new day: |
| 77 | .IP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 78 | \-m time \-\-datestart 2007\-01\-01T17:00 \-\-datestop 2007\-01\-01T23:59:59 |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 79 | .PP |
| 80 | During lunch hour: |
| 81 | .IP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 82 | \-m time \-\-timestart 12:30 \-\-timestop 13:30 |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 83 | .PP |
| 84 | The fourth Friday in the month: |
| 85 | .IP |
Jan Engelhardt | fea74bf | 2009-01-12 04:53:18 +0100 | [diff] [blame] | 86 | \-m time \-\-weekdays Fr \-\-monthdays 22,23,24,25,26,27,28 |
Jan Engelhardt | ad326ef | 2007-09-23 15:17:42 +0000 | [diff] [blame] | 87 | .PP |
| 88 | (Note that this exploits a certain mathematical property. It is not possible to |
| 89 | say "fourth Thursday OR fourth Friday" in one rule. It is possible with |
| 90 | multiple rules, though.) |
Florian Westphal | 8d8896a | 2012-09-17 00:23:08 +0000 | [diff] [blame] | 91 | .PP |
| 92 | Matching across days might not do what is expected. For instance, |
| 93 | .IP |
| 94 | \-m time \-\-weekdays Mo \-\-timestart 23:00 \-\-timestop 01:00 |
| 95 | Will match Monday, for one hour from midnight to 1 a.m., and then |
| 96 | again for another hour from 23:00 onwards. If this is unwanted, e.g. if you |
| 97 | would like 'match for two hours from Montay 23:00 onwards' you need to also specify |
| 98 | the \-\-contiguous option in the example above. |