Windows Görev Zamanlayıcı ile İlgili İleri Düzey Konular
Managed Service Accounts (gMSA) kullanımı, güvenlik bağlamında otomasyon, Event Viewer log takibi ve PowerShell 7.4+ entegrasyonu.
2026'nın modern sunucu yönetimi standartlarıyla tanışın. Windows VDS ve fiziksel sunucularınızda tekrarlayan işleri otomatize edin, PHP cron job'ları oluşturun ve PowerShell ile sistem bakımını zahmetsizce yönetin. Eka Sunucu'nun yüksek performanslı altyapısıyla otomasyonun gücünü keşfedin.
Windows Görev Zamanlayıcı (Task Scheduler), Windows işletim sistemlerinde önceden tanımlanmış zamanlarda veya belirli olaylar gerçekleştiğinde (bilgisayarın açılması, bir kullanıcının oturum açması vb.) programların veya komut dosyalarının otomatik olarak çalıştırılmasını sağlayan güçlü bir yönetim aracıdır. Linux sistemlerindeki Cron Job yapısının Windows karşılığıdır ve modern Windows VDS yönetiminin belkemiğidir.
Günlük, haftalık veya aylık raporlamalar, veritabanı temizliği ve sistem güncellemeleri gibi rutin işleri otomatikleştirin.
Web sitenizin arka plan işlemlerini (e-posta gönderimi, sipariş kontrolü) tarayıcıya ihtiyaç duymadan sunucu tarafında çalıştırın.
Kritik dosyalarınızı ve SQL veritabanlarınızı insan hatası olmadan düzenli olarak yedekleyin ve güvenli alanlara taşıyın.
Sunucu kaynaklarını izleyen ve belirli durumlarda (yüksek CPU, düşük disk) otomatik müdahale eden scriptler oluşturun.
Windows Server 2019, 2022 veya 2025 üzerinde Görev Zamanlayıcı'ya erişmek oldukça basittir. Doğru yapılandırma, sunucunuzun güvenliği ve performansı için kritiktir.
# Görev Zamanlayıcıyı komut satırından hızlıca açmak için: Start-Process "taskschd.msc" # Veya mevcut görevleri listelemek için PowerShell kullanabilirsiniz: Get-ScheduledTask | Where-Object { $_.State -eq 'Running' }
Web geliştiricilerin en sık ihtiyaç duyduğu özelliklerden biri, belirli PHP dosyalarının (örneğin fatura oluşturma, mail kuyruğu işleme) otomatik çalışmasıdır. Windows'ta bunu yapmak için php.exe'yi kullanırız.
Öncelikle otomatik çalışacak basit bir PHP dosyamız olsun. Bu dosya bir log dosyasına kayıt atacak.
<?php // Zaman dilimi ayarı date_default_timezone_set('Europe/Istanbul'); // Log dosyasının yolu $logFile = __DIR__ . '/gorev_loglari.txt'; $time = date('Y-m-d H:i:s'); // Yapılacak işlem (Örn: Veritabanı temizliği, mail gönderimi) // Simülasyon: $message = "[{$time}] Otomatik gorev basariyla calisti." . PHP_EOL; // Log dosyasına yaz file_put_contents($logFile, $message, FILE_APPEND); echo "İşlem tamamlandı."; ?>
Doğrudan PHP'yi çağırmak yerine, bir .bat dosyası oluşturup Task Scheduler'a bunu tanıtmak yönetim açısından daha kolaydır ve hata ayıklamayı basitleştirir.
:: Eka Sunucu Otomasyon Scripti @echo off :: PHP.exe'nin tam yolu (Sunucunuzdaki yola göre değiştirin) set PHP_BIN="C:\Program Files\PHP\v8.3\php.exe" :: Çalıştırılacak PHP dosyasının yolu set SCRIPT="C:\inetpub\wwwroot\otomasyon\cron.php" :: Scripti çalıştır %PHP_BIN% -f %SCRIPT% :: İsteğe bağlı: Pencereyi kapat exit
run_cron.bat dosyasının tam yolunu gösterin..bat dosyasının bulunduğu klasör yolunu yazın (Örn: C:\inetpub\wwwroot\otomasyon\). Bu, dosya yollarının (include/require) bozulmaması için kritiktir.Windows sunucularda en güçlü araç PowerShell'dir. Aşağıdaki script, web sitenizin dosyalarını sıkıştırır (ZIP) ve tarih damgalı olarak yedek klasörüne taşır. Ayrıca 7 günden eski yedekleri otomatik siler.
# --- Eka Sunucu Otomatik Yedekleme Scripti --- # Ayarlar $Source = "C:\inetpub\wwwroot\projem" # Yedeklenecek Klasör $Destination = "D:\Yedekler" # Yedeğin Atılacağı Yer $Date = Get-Date -Format "yyyy-MM-dd_HH-mm" $ZipPath = "$Destination\Yedek_$Date.zip" # Klasör yoksa oluştur if (!(Test-Path -Path $Destination)) { New-Item -ItemType Directory -Path $Destination } # Dosyaları Sıkıştır Compress-Archive -Path $Source -DestinationPath $ZipPath -Force Write-Host "Yedekleme Tamamlandı: $ZipPath" # 7 Günden eski dosyaları temizle (Disk doluluğunu önlemek için) $DaysLimit = 7 Get-ChildItem -Path $Destination -Filter "*.zip" | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$DaysLimit) } | Remove-Item Write-Host "Eski yedekler temizlendi."
Bu Scripti Görev Zamanlayıcıya Eklemek İçin:
Action kısmında Program/script olarak: powershell.exe
Add arguments kısmında: -ExecutionPolicy Bypass -File "C:\Scripts\Backup-Web.ps1"
Otomasyon işlemleriniz için yüksek performanslı, NVMe SSD diskli Windows sunucular.
0x1 hata kodu genellikle bir "yetki" veya "yol" hatasıdır. Şunları kontrol edin: 1) Görev özelliklerinde "Run with highest privileges" (En yüksek ayrıcalıklarla çalıştır) seçili mi? 2) "Start in" (Başlama yeri) klasör yolu scriptin bulunduğu klasör olarak tanımlı mı? 3) Kullandığınız kullanıcı hesabının scripti çalıştırma yetkisi var mı?
Windows işletim sistemlerinde "Cron Job" terimi yerine "Görev Zamanlayıcı" (Task Scheduler) kullanılır. Linux'taki crontab komutları ile yaptığınız her şeyi, Task Scheduler'ın görsel arayüzü veya PowerShell komutları ile yapabilirsiniz.
Evet, görevi oluştururken Tetikleyici (Trigger) olarak "At Startup" (Başlangıçta) seçeneğini seçerseniz, sunucu her yeniden başladığında göreviniz otomatik olarak çalışacaktır. Web sunucusu servislerinin (IIS, Apache, Nginx) başlaması için gecikme eklemek iyi bir pratik olabilir.
Tüm fiziksel ve sanal sunucu paketlerimizde, ilk kurulum ve optimizasyon desteği ücretsizdir. İleri seviye otomasyon kurguları ve özel script yazılımları için profesyonel destek ekibimizle iletişime geçebilirsiniz.
Otomasyonun gücünü yüksek performanslı Eka Sunucu altyapısıyla birleştirin.
Hosting Çözümleri Bize Ulaşın