Sådan kører du en cron-job kl. 8.30 den første mandag i måneden - Trin-for-trin guide

Hvordan kan en cron-job køres kl. 8.30 den første mandag i hver måned, når både "dag i måneden" og "ugedag" ikke kan være begrænset samtidig?

For at køre en cron-job kl. 8.30 den første mandag i hver måned, skal du oprette en cron-job, der kører hver mandag kl. 8.30, og tilføje logik i dit script til at kontrollere, om det er den første mandag i måneden.

Sådan kan en cron-job køres kl. 8.30 den første mandag i hver måned

For at køre en cron-job kl. 8.30 den første mandag i hver måned, kan du ikke direkte specificere både "dag i måneden" og "ugedag" i en enkelt cron-udtryk. I stedet kan du bruge en kombination af cron-udtryk og et script til at kontrollere betingelserne. Her er en trin-for-trin guide:

  1. Opret en cron-job, der kører kl. 8.30 hver mandag:

    30 8 * * 1 /path/to/your/script.sh
  2. Tilføj logik i dit script til at kontrollere, om det er den første mandag i måneden:

    
    #!/bin/bash
    
    # Få den aktuelle dag i måneden
    DAY_OF_MONTH=$(date +%d)
    
    # Få den aktuelle ugedag (1 = mandag, 2 = tirsdag, ..., 7 = søndag)
    DAY_OF_WEEK=$(date +%u)
    
    # Tjek om det er den første mandag i måneden
    if [ "$DAY_OF_MONTH" -le 7 ] && [ "$DAY_OF_WEEK" -eq 1 ]; then
      # Kør din ønskede kommando her
      /path/to/your/command
    fi
        

Med denne opsætning vil cron-jobbet køre hver mandag kl. 8.30, men scriptet vil kun udføre den ønskede kommando, hvis det er den første mandag i måneden.