Запланировать задание cron на компьютере, который не включен постоянно?

Запланировать задание cron на компьютере, который не включен постоянно?

Я хочу запустить скрипт 1-го числа каждого месяца.
Если компьютер был выключен, я хотел бы выполнить его при следующем включении.

Anacron подходит для варианта использования "выключено", но он предоставляет только ежедневные, еженедельные, ежемесячные интервалы. Ежемесячно слишком поздно, а еженедельно слишком рано.

Я проверил fcron, но этот пакет конфликтует с Timeshift, так что это не вариант.

Я думал, что если cron может запустить задачу один раз, в любое время между 1-м и 4-м числом каждого месяца, это тоже было бы нормально. Я посмотрел на синтаксис cron и думаю, что это на самом деле невозможно.

Кто-нибудь знает, как решить эту проблему?

Я использую Arch Linux (Manjaro).

решение1

Что-то вроде этого (непроверенный)

#!/bin/bash
# run this via crontab on days 1-4 and @reboot
#
# Store the run_month here, or somewhere writable on disk not /tmp
runfile="$HOME/run_month"
# make sure $runfile exists, initalize to a non-month if 1st run ever 
[[ ! -f "$runfile" ]] && echo "init" >"$runfile"
#
# get the last month we ran
rf="$(cat "$runfile")"
# get the current month
cm="$(date "+%b")"
# if $rf is the same as $cm, quit
if [[ "$cm" = "$rf" ]] ; then
  exit
fi
# Remember we ran this month
echo "$cm" >"$runfile"
#
# Left  as an exercise for the student 

Связанный контент