0 0 1 * * cron ifadesi her ayın 1'inde gece yarısı çalışır. @monthly, ayın son günü geçici çözümü, artık yıl kenar durumları ve 29/30/31 atlamasını kapsar.
⏰At 12:00 AM, on day 1 of the month
*Herhangi bir değer,Liste ayracı-Aralık/Adım1-51 ile 5 arası*/15Her 15 birimde0 0 1 * * cron ifadesi, hangi ay veya yıl olursa olsun, her ayın 1. gününde 0. dakika 0. saatte çalışır. Bu, işin 1 Ocak, 1 Şubat, 1 Mart vb. gece yarısı, yılda tam olarak 12 kez (her takvim ayında bir kez) çalışması anlamına gelir.
Alan ayrıştırması:
| Alan | Değer | Anlamı |
|---|---|---|
| Dakika | 0 |
Saat başında |
| Saat | 0 |
Gece yarısı |
| Ayın günü | 1 |
Ayın 1. günü |
| Ay | * |
Her ay |
| Haftanın günü | * |
Herhangi bir gün |
@monthly, 0 0 1 * * için kısayoldur ve çoğu cron hizmeti tarafından desteklenir:
@monthly /opt/jobs/billing-cycle
# şuna eşdeğer:
0 0 1 * * /opt/jobs/billing-cycle
29, 30 veya 31. günler için bir iş zamanlarsanız, bu günlere sahip olmayan aylarda sessizce atlanır:
| İfade | Atlanan aylar |
|---|---|
0 0 29 * * |
Şubat (çoğu yıl) |
0 0 30 * * |
Şubat |
0 0 31 * * |
Şub, Nis, Haz, Eyl, Kas |
0 0 29 * *, artık olmayan yıllarda Şubat’ı tamamen atlar. Artık yıllarda 29 Şubat’ta çalışır.
Cron’un ‘ayın son günü’ için yerleşik sözdizimi yoktur. Pratik geçici çözüm, işi günlük çalıştırmak ve betikte tarihi kontrol etmektir:
#!/bin/bash
# Yarın ayın 1'i değilse çık (yani bugün ayın son günü)
if [ "$(date -d tomorrow +%d)" != "01" ]; then
exit 0
fi
# gerçek iş mantığı
Fatura oluşturma, abonelik yenilemeleri veya kullanım tabanlı ücretlerin yeniden hesaplanması tipik olarak fatura döngüsü sınırında, ayın 1’inde gerçekleşir.
Finans, satış ve operasyonel raporlar genellikle önceki ayın verilerini toplar.
Bir aydan eski verileri soğuk depolamaya taşımak, eski veritabanı kayıtlarını arşivlemek aylık cron için doğal kullanım alanlarıdır.
0 0 * * *0 0 * * 1-5Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.