Einen Cron-Job auf einem Computer planen, der nicht dauerhaft eingeschaltet ist?

Einen Cron-Job auf einem Computer planen, der nicht dauerhaft eingeschaltet ist?

Ich möchte am 1. jedes Monats ein Skript ausführen.
Wenn der Computer ausgeschaltet war, möchte ich es beim nächsten Einschalten ausführen.

Anacron passt in Bezug auf den Anwendungsfall „ausgeschaltet“, bietet aber nur tägliche, wöchentliche und monatliche Intervalle. Monatlich ist zu spät und wöchentlich viel zu früh.

Ich habe fcron überprüft, aber dieses Paket kollidiert mit Timeshift, daher ist das keine Option.

Ich dachte, wenn Cron die Aufgabe einmal ausführen kann, irgendwann zwischen dem 1. und 4. eines jeden Monats, wäre das auch ok. Ich habe mir die Cron-Syntax angesehen und denke, dass das eigentlich nicht möglich ist.

Weiß jemand, wie man das löst?

Ich verwende Arch Linux (Manjaro).

Antwort1

Etwas wie das (ungetestet)

#!/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 

verwandte Informationen