Why not simply using : classes: "Last_Saturday" expression => "Saturday.((Day31|Day30|Day29|Day28|Day27|Day26|Day25)|(Day24.(April|June|September|November)|(Day23.Day22.February))";
commands: Last_Saturday:: "do something"; It does not take into account leap year, but it should not fail until 2020, enough time to find a better solution... Nicolas Mark Burgess wrote: > I never recommend using pipes in cfengine. You can do classmatch, AND, OR > on the existing dates to accomplish the result. > > Perhaps first and last Mon-Sun are useful classes to build in. > > Matt Richards wrote: > >> okay, I got it. Kinda hacky with all the pipes: >> >> vars: >> "year" string => execresult("/usr/bin/date +%Y","noshell"); >> "month" string => execresult("/usr/bin/date +%m","noshell"); >> "last_day" string => execresult("/usr/bin/cal $(month) $(year) | >> awk '{print $7}' | grep -E "^[0-9]" | tail -1","useshell"); >> >> classes: >> "Last_Saturday" expression => classify("Day$(last_day)"); >> >> On Wed, Mar 3, 2010 at 8:26 AM, Matt Richards <defraya...@gmail.com> wrote: >> >>> Interesting. I had something similar with how to schedule for the last >>> day of the month (ya, the shell commands are cheating a bit): >>> >>> vars: >>> "year" string => execresult("/usr/bin/date +%Y","noshell"); >>> "month" string => execresult("/usr/bin/date +%m","noshell"); >>> "last_day" string => execresult("/usr/bin/cal $(month) $(year) | >>> grep . | fmt -1 | tail -1","useshell"); >>> >>> classes: >>> "End_Of_Month" expression => classify("Day$(last_day)"); >>> >>> . >>> . >>> . >>> >>> End_of_Month.Hr23:: >>> >>> So basically at 11:00pm on the last day of the month, it would fire >>> off. I am thinking something similar might be possible for the last >>> Saturday. >>> >>> >>> 2010/3/3 <nwat...@symcor.com>: >>> >>>> Over at Ars there was a discussion about scheduling a cron job for the >>>> last Saturday of each month. Alas, cron cannot do this on its own. What >>>> followed as a lot of short scripts to help but very few were portable. >>>> >>>> One of the newer goals of Cfengine is to be an enterprise scheduler. For >>>> fun and reputation how would you use Cfengine to schedule a job on the >>>> last Saturday of each month? >>>> >>>> Sincerely, >>>> -- >>>> Neil Watson >>>> 416-673-3465 >>>> >>>> >>>> >>>> CONFIDENTIALITY WARNING >>>> This communication, including any attachments, is for the exclusive use of >>>> addressee and may contain proprietary and/or confidential information. If >>>> you are not the intended recipient, any use, copying, disclosure, >>>> dissemination or distribution is strictly prohibited. If you are not the >>>> intended recipient, please notify the sender immediately by return e-mail, >>>> delete this communication and destroy all copies. >>>> >>>> AVERTISSEMENT RELATIF À LA CONFIDENTIALITÉ >>>> Ce message, ainsi que les pièces qui y sont jointes, est destiné à l’usage >>>> exclusif de la personne à laquelle il s’adresse et peut contenir de >>>> l’information personnelle ou confidentielle. Si le lecteur de ce message >>>> n’en est pas le destinataire, nous l’avisons par la présente que toute >>>> diffusion, distribution, reproduction ou utilisation de son contenu est >>>> strictement interdite. Veuillez avertir sur-le-champ l’expéditeur par >>>> retour de courrier électronique et supprimez ce message ainsi que toutes >>>> les pièces jointes. >>>> >>>> _______________________________________________ >>>> Help-cfengine mailing list >>>> Help-cfengine@cfengine.org >>>> https://cfengine.org/mailman/listinfo/help-cfengine >>>> >>>> >>>> >> _______________________________________________ >> Help-cfengine mailing list >> Help-cfengine@cfengine.org >> https://cfengine.org/mailman/listinfo/help-cfengine >> > > _______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine