Müzakirə

Linux Systemd Timer ile Script Çalıştırma

Başladan IronSpecter · 24 avq 2026 08:27 · 20 Baxış · 0 Cavablar
Mövzunu Açan #0
Linux sistemlerinde belirli zaman aralıklarında görevleri otomatik olarak çalıştırmak için systemd'nin timer birimini kullanmak oldukça pratik bir yöntemdir. Systemd, modern Linux dağıtımlarında yaygın olarak kullanılan bir init sistemidir ve pek çok yönetim işlevini kolaylaştırır. Bu yazıda, basit bir scriptin nasıl zamanlama ile çalıştırılacağını adım adım inceleyeceğiz.

İlk olarak, bir script oluşturalım. Aşağıdaki örnekte, basit bir "hello_world.sh" scripti oluşturacağız:

CODE
123
#!/bin/bash
echo "Hello, World! $(date)" >> /tmp/hello_world.log


Bu script, çalıştırıldığında "Hello, World!" mesajını ve o anki tarihi "/tmp/hello_world.log" dosyasına yazacaktır. Scripti oluşturduktan sonra, çalıştırılabilir hale getirmek için gerekli izinleri vermeliyiz:

CODE
12
chmod +x /path/to/hello_world.sh


Ardından, systemd hizmet birimi (service unit) dosyası oluşturmalıyız. Bu dosya, scriptin nasıl çalıştırılacağını tanımlar. Aşağıdaki örnekte "hello_world.service" dosyasını "/etc/systemd/system" dizininde oluşturuyoruz:

CODE
1234567
[Unit]
Description=Hello World Script

[Service]
Type=oneshot
ExecStart=/path/to/hello_world.sh


Burada, "ExecStart" satırı scriptin tam yolunu belirtir. Şimdi, timer dosyasını oluşturalım. "hello_world.timer" adlı bir dosya daha oluşturmalıyız:

CODE
12345678910
[Unit]
Description=Runs Hello World Script every minute

[Timer]
OnActiveSec=1min
OnUnitActiveSec=1min

[Install]
WantedBy=timers.target


Bu timer dosyası, timer aktif olduktan 1 dakika sonra scripti çalıştıracak ve ardından her 1 dakikada bir tekrar edecektir.

Son olarak, yeni oluşturduğumuz service ve timer birimlerini etkinleştirmek için şu komutları çalıştırmalıyız:

CODE
123
systemctl enable hello_world.timer
systemctl start hello_world.timer


Timer'ın durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:

CODE
12
systemctl list-timers


Bu adımları tamamladıktan sonra, istediğimiz zaman aralıklarında scriptimizin otomatik olarak çalıştığını göreceğiz. Systemd timer'lar, cron gibi geleneksel zamanlama araçlarına göre daha fazla esneklik ve yönetim kolaylığı sunar.

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi