В те времена, когда не было crontabs для каждого пользователя, я часто выполнял это, используя (1).
#!/bin/sh
... do stuff...
at -f /path/to/me 5pm tomorrow
Таким образом, ваш скрипт запускается и планирует себя для следующего вызова.
Я не думаю, что вы можете указать временной интервал «следующих выходных», поэтому вам просто придется каждый день перепланировать график и выполнять свой скрипт (после планирования следующего на работе), если это не выходные. 1006 *
Редактировать: Или вместо того, чтобы планировать каждый день, выясните, что сегодня такое, и составьте соответствующее расписание. например, * +1008 *
day=Saturday
if [ $(date +%u) -eq 6 ] ; then day=Sunday ; fi
at -f /path/to/me 5pm next $day
Если этот сценарий запускается в субботу, он планирует следующий запуск на следующее воскресенье, в противном случае он запускается в следующую субботу. [ $(date +%A) = Saturday ]
может быть более читабельным, но% A выдаст строку, зависящую от локали, поэтому может не работать, если вы измените локаль.