매달 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