at
cron
tekrarlayan görevler için kullanılırken, at
komutu belirli komutların veya betiklerin gelecekte belirli bir zamanda sadece bir kez çalıştırılmasını sağlamak için kullanılır.
atd
Servisi
atd
Servisiat
komutu ile zamanlanan görevlerin çalıştırılabilmesi için sistemde atd
(at daemon) servisinin çalışıyor olması gerekir. Çoğu dağıtımda varsayılan olarak kurulu ve etkin olabilir, ancak kontrol etmek gerekebilir:
Görev Zamanlama
at
komutuna çalıştırılacak zaman parametre olarak verilir. Zaman belirtildikten sonra, at
komutu standart girdiden çalıştırılacak komutları okumaya başlar. Komutları girdikten sonra, genellikle yeni bir satırda Ctrl+D
tuş kombinasyonuna basarak girdi sonlandırılır ve görev zamanlanır.
Zaman Belirtme Formatları:
at
komutu oldukça esnek bir zaman belirtme formatını anlar:
Kesin Zaman:
HH:MM
: Bugün belirtilen saatte (eğer saat geçmişse yarın). Örn:at 14:30
HH:MM YYYY-MM-DD
: Belirtilen tarih ve saatte. Örn:at 09:00 2025-12-25
noon
(öğlen),midnight
(gece yarısı),teatime
(16:00) gibi anahtar kelimeler.HH:MM <gün_adı>
: Gelecek belirtilen günde. Örn:at 11:00 Sunday
Göreceli Zaman:
now + <sayı> <birim>
: Şu andan itibaren belirtilen süre sonra. Birimler:minutes
,hours
,days
,weeks
. Örn:at now + 1 hour
,at now + 30 minutes
HH:MM tomorrow
: Yarın belirtilen saatte.HH:MM next <birim>
: Gelecek hafta/ay/yıl belirtilen saatte. Örn:at 10:00 next week
Örnek Kullanım (İnteraktif):
Bu komutlar, belirtilen zamanda (Mon Mar 31 10:30:00 2025
) /bin/sh
kabuğu kullanılarak çalıştırılacaktır.
Örnek Kullanım (Pipe ile):
Tek bir komutu zamanlamak için echo
ve pipe kullanılabilir:
Örnek Kullanım (Dosyadan):
Çalıştırılacak komutları içeren bir dosyayı -f
seçeneği ile belirtebilirsiniz:
Zamanlanmış Görevleri Yönetme
Görevleri Listeleme (
atq
veyaat -l
): Kullanıcının bekleyenat
görevlerini listeler. Her görevin bir iş numarası (job ID) vardır.Görevi Silme (
atrm
veyaat -d
): Belirtilen iş numarasına sahip görevi kuyruktan kaldırır.Görevin İçeriğini Görme (
at -c
): Belirtilen iş numarasına sahip görevin çalıştıracağı komutları (ve ortam değişkenlerini) gösterir.
Erişim Kontrolü
Hangi kullanıcıların at
komutunu kullanabileceği /etc/at.allow
ve /etc/at.deny
dosyaları ile kontrol edilebilir:
Eğer
/etc/at.allow
dosyası varsa, sadece bu dosyada listelenen kullanıcılarat
kullanabilir.Eğer
/etc/at.allow
yoksa ama/etc/at.deny
varsa, bu dosyada listelenen kullanıcılar dışındaki herkesat
kullanabilir.Eğer iki dosya da yoksa, genellikle sadece root kullanıcısı
at
kullanabilir (dağıtıma göre değişebilir).
at
komutu, tek seferlik görevleri basitçe zamanlamak için kullanışlı bir araçtır. Tekrarlayan görevler için cron
veya systemd timer'ları daha uygundur.
Last updated