Sim, cron
só executará um trabalho agendado para um horário específico se o computador estiver ligado nesse momento. O modo como funciona é que, a cada minuto, ele verifica todas as tarefas agendadas agendadas para ver se seus campos de hora correspondem ao minuto atual e, em caso afirmativo, executa o trabalho. Caso contrário, será ignorado. Não há nenhum conceito de "salvar" a execução de um trabalho para um tempo posterior.
O que você poderia fazer, para sua situação, é usar um arquivo de marcador para indicar a última vez que o trabalho foi executado. Crie um pequeno script ou programa que tenha esta aparência (esta é a sintaxe pseudo-Bash):
if (marker file was last modified > 1 week ago); then
run the job
touch marker file
fi
e você pode definir esse script como um cron job para ser executado todos os dias, todas as horas ou até mesmo todos os minutos - sempre que você precisar garantir que ele será executado pelo menos uma vez por semana durante o período em que tiver o computador .