Forum Discussion
Schedule iRule
Im new in iRule. Im using a iRule and its ok, but i need to schedule this. I need that iRule to be enabled only a certain part of the day. How can I do that ? Thanks
15 Replies
- Michael_Yates
Nimbostratus
Hi Steve,
If you do not want to set the flag you can move the event from CLIENT_ACCEPTED to HTTP_REQUEST (First Example), but if you do want to use a variable you could use the Second Example).
The first example is more efficient (sorry...should have just told you to change the event, but I thought I would show you both).
I would suggest the first example.when RULE_INIT { Start of maintenance window in YYYY-mm-dd HH:MM format set static::start_date "2012-10-12 17:20" End of maintenance window in YYYY-mm-dd HH:MM format set static::end_date "2012-10-12 17:22" Convert start/end times to seconds from the epoch for easier date comparisons set static::start [clock scan $static::start_date] set static::end [clock scan $static::end_date] } when HTTP_REQUEST { set now [clock seconds] if { $now > $static::start and $now < $static::end } { HTTP::redirect "http://www.google.com" } } ------------------------------------------------------------------------------------------------------------ when RULE_INIT { Start of maintenance window in YYYY-mm-dd HH:MM format set static::start_date "2012-10-12 17:30" End of maintenance window in YYYY-mm-dd HH:MM format set static::end_date "2012-10-12 17:32" Convert start/end times to seconds from the epoch for easier date comparisons set static::start [clock scan $static::start_date] set static::end [clock scan $static::end_date] } when CLIENT_ACCEPTED { set now [clock seconds] if { $now > $static::start and $now < $static::end } { set maintflag "1" } else { set maintflag "0" } } when HTTP_REQUEST { if { $maintflag == 1 } { HTTP::redirect "http://www.google.com" } } - steve_88008
Nimbostratus
the first example is exactly what i have on my LTM ver 10.2.4. however the redirect piece isn't working at all, i tested the url with a simple redirect and that works fine.
when RULE_INIT { Start of maintenance window in YYYY-mm-dd HH:MM format set static::start_date "2012-10-12 03:50" End of maintenance window in YYYY-mm-dd HH:MM format set static::end_date "2012-10-12 04:55" Convert start/end times to seconds from the epoch for easier date comparisons set static::start [clock scan $static::start_date] set static::end [clock scan $static::start_end] } when HTTP_REQUEST { set now [clock seconds] if { $now > $static::start and $now < $static::end} { HTTP::redirect "http://www.orderkeystone.com/efiles/systemdown.html" } } - steve_88008
Nimbostratus
So my man Justin Clark at support got me hooked up with the correct syntax. I was running out of time to get this working....
also the LTM uses military time, i ddin't know that, so i had to adjust the time format. greatly appreciated the help, i've learned a TON from this experience.when RULE_INIT { Start of maintenance window in YYYY-mm-dd HH:MM format set static::start_date "2012-10-12 16:50" End of maintenance window in YYYY-mm-dd HH:MM format set static::end_date "2012-10-12 17:55" Convert start/end times to seconds from the epoch for easier date comparisons set static::start [clock scan $static::start_date] set static::end [clock scan $static::end_date] } when HTTP_REQUEST { set now [clock seconds] if { $now > $static::start and $now < $static::end} { HTTP::redirect "http://www.orderkeystone.com/efiles/systemdown.html" } } - BEdmunds_8904
Nimbostratus
When I apply Steve's irule (obviously modified for my own error page) I get a page reset.
Doesn't matter if it's in the scheduled time zone or not. I am still on version 9.4.8, could this likely be the cause? - Arie
Altostratus
If there's another HTTP:respond (including redirect) that is also activated on the same connection you'll get an error. Are you seeing an error in the logs?
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
