Bu makalemizde Windows sunucu (veya bilgisayar) üzerinde bulunan ve belirli bir tarihten eski olan logları (veya diğer dosyaları) task scheduler ile nasıl otomatik sileceğimizi göreceğiz.
Senaryo:
Windows IIS sunucumuz üzerindeki C:\inetpub\logs\LogFiles klasörü altında bulunan ve w3svc formatında tutulan iis loglarımızın 6 aydan eski olanları her hafta Cumartesi saat 03:00'de çalıştıracağımız bir script ile bulup siliyoruz.
1) BATCH SCRIPT DOSYASINI OLUŞTURMA:
Notepad ile yeni bir dosya oluşturalım ve içeriğini aşağıdaki şekilde belirleyelim:
forfiles -p "C:\inetpub\logs\LogFiles" -s -m *.* -d -180 -c "cmd /c del @path"
Not: Yukardaki -d -180 parametresi 180 gün yani 6 ay anlamına gelmektedir.
Bu dosyayı "save as" yaparak dosya adını "delete_log_files_olderthan_6months.bat" şeklinde çift tırnak içerisinde yazalım ve aşağıdaki ayarları yapıp kaydedelim:
Kayıt türü: tüm dosyalar
Kodlama: ANSI
Bu dosyayı "C:\inetpub" dizini altına koyalım.
Test işlemi:
Başlat --> Command Prompt programına shift tuşu ile beraber sağ tıklayarak "run as different user" seçelim ve scripti çalıştıracağımız kullanıcının giriş bilgilerini (bu örnekte administrator) girelim.
Komut satırında aşağıdaki komutu yazıp enter'a bastığımızda eski log dosyalarını listelemesi gerekiyor:
forfiles -p "C:\inetpub\logs\LogFiles" -s -m *.* -d -180 -c
2) TASK (GÖREV) OLUŞTURMA
"Task scheduler" programını çalıştıralım ve sırayla aşağıdaki ayarları yapalım:
"Create Basic Task" seçelim:
Gelen ekranda görevimize isim verelim:
Görevimizi her cumartesi saat 03:00'da çalıştıracağız o nedenle aşağıdaki ayarları sırayla yapalım:
Görevimiz bir scripti çalıştırmak olduğundan "start a program seçeceğiz"
"Browse" a tıklayarak scriptimizin yerini gösteriyoruz:
Yetkilendirme ayarlarını yapacağımızdan, "Open the properties dialog..." kutusunu işaretliyor ve "Finish"e tıklıyoruz.
"General" sekmesi altında "Change user or Group" tıklayarak scriptimizi çalıştırma yetkisi olan (aynı zamanda ilgili eski log dosyalarını silebilme yetkisine de sahip) bir kullanıcıyı seçiyoruz (bu örnekte administrator hesabını verdik) "Run with the highest privileges" kutusunu da dolduruyoruz:
Son olarak "Settings" bölümüne girip "Stop the task if it runs longer than:" seçeneğini "2 hours" ( 2 saat) seçiyoruz ki görevimizin bir nedenle tamamlanması uzun sürdüğünde 2 saat sonra kendiliğinden dursun ve sunucumuzu meşgul etmesin:
"Task scheduler" programı üzerindeki task'ın üzerine sağ tuş yapıp "Run" diyelim ve görevimizin düzgün çalıştığını ve dosyaları sildiğini kontrol edelim:
Umarım Faydalı olmuştur.
Murat TAŞ
Hiç yorum yok:
Yorum Gönder