Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
The section 5 of the manual provides information about the crontab's syntax:
Code:
man 5 crontab
Anyway it will suggest how to run a cron job every sunday. Then you have to add an extra check for the day of the month, that has to be ≥ 15 and ≤ 21. You can add a conditional expression in the crontab entry itself or at the beginning of the script.
Last edited by colucix; 01-09-2011 at 11:50 AM.
Reason: Added extra information
[Just so everybody's clear, the reason for 15-21 is that the third Sunday is always one of those dates, and no other Sunday (2nd, 4th) can ever be those dates. ]
Nope. This will not work as intended. The two day fields (day of the month and day of the week) in a crontab entry add up: this means the suggested line will run every day between 15th and 21st plus every sunday. The man page (section 5) of crontab clearly states that. This is why I suggested an explicit check for the day of the month in my previous post.
Last edited by colucix; 01-09-2011 at 03:17 PM.
Reason: spelling corrected
Taking a solution from another forum does not necessarily mean it's correct even if they claim it works. Anyway, as clearly stated by the crontab man page:
Quote:
Note: The day of a command's execution can be specified by two fields — day of month, and day of week. If both fields are restricted (ie, aren't *), the command will be run when either field matches the current time. For example, ``30 4 1,15 * 5'' would cause a command to be run at 4:30 am on the 1st and 15th of each month, plus every Friday.
You can easily try that. Suppose now is 08:00 AM on January, 11st (Tuesday). You can set a cron job like this:
Code:
5 8 15-21 * 2 date >> $HOME/cron.log
and see if it runs. Practice is more helpful than theory!
You could at least show some effort and post what you've tried so far. Have you read the suggested documentation? Have you understood advices in post #6? Have you followed the further discussion? What are your shell scripting skills?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.