How to schedule a biweekly cronjob?
Solution 1:
You can have the thing run by cron every wednesday, then have the thing run decide if it is an even week or an odd week. for example:
#!/bin/bash
week=$(date +%U)
if [ $(($week % 2)) == 0 ]; then
echo even week
else
echo odd week
fi
Solution 2:
Many crons (you didn't specify which you're using) support ranges. So something like
0 0 1-7,15-21 * 3
Would hit the first and third wednesdays of the month.
Solution 3:
For something that needs to run every other week use this one-liner:
0 0 * * 5 [ `expr \`date +\%V\` \% 2` -eq 0 ] && echo "execute script"
This particular script is scheduled to run on Fridays. The week to be executed on can be adjusted by using "-eq 0" or "-eq 1"
Solution 4:
If your needs aren't literally bi-weekly, you could simply run the cronjob on the 1st and 15th of the month:
15 8 1,15 * * /your/script.sh
Which runs at 8:15 a.m. on the first and fifteenth of each month regardless of the day of the week.