» » » » DLE Cron Kullanımı

DLE Cron Kullanımı

MaRZoCHi
MaRZoCHi Kurucu 9-01-2015, 14:12
DLE'de Cronjob ile Otomatik İşlemler

DLE'de bazı işlemleri belirlenen zaman aralıkları ile otomatik olarak yapmaya olanak sağlayan cron modülü bulunmaktadır.
Sitenizin ana dizinindeki cron.php dosyası kullanılarak yapılabilen işlemler şunlardır :
  • Sitemap oluşturma ve Pingleme
  • Veritabanı yedeğini kaydetme
  • Veritabanını optimize etme
  • Antivirüs sistemi için dosya tarama ve değişiklikleri mail ile bildirme


cron.php dosyasındaki yaptığım açıklamalar yardımıyla işlemleri yapabilirsiniz. Fakat buradan daha ayrıntılı açıklama yapacağım.

İlk olarak
$allow_cron = 0; Değerini 1 olarak değiştirmelisiniz.


1) İşlemi yapabilmeniz için gerekli desteğin olması gerekir Cron uygulamasının olup olmadığı ve nasıl çalıştırılacağı hakkında ki bilgiyi hosting sağlayıcınızdan edinebilirsiniz. Anlatım Cpanel ve Cronjob ile yapılacaktır

2) Güvenlik amacıyla bu dosyanın adını değiştirmenizi öneririz cron.php yi farklı bir isimle, PHP uzantısı ile değiştiriniz. Aksi halde sürekli olarak sitenizdeki bu dosyayı çalıştıranlar veritabanı yedeğini kaydetme imkanı bulacaklar. Bu yedeği göremeseler bile sürekli olarak çalıştırılması siteniz için zararlı olacaktır.

İşlemler için parametreler sitemap, optimize ve antivirus
Bu işlemleri aşağıdaki gibi adres satırına yazarak deneyebilirsiniz.
http://siteniz.com/cron.php?cronmode=sitemap

Böylece o işlemin verdiği uyarı ve hatayı görüp, otomatiğe bağlamadan önce giderebilirsiniz.

İkinci ve asıl üzerinde duracağımız konu cronjob'a eklemek. Aşağıdaki kod ile çalıştırma yapabilirsiniz. Fakat çalışıp çalışmadığını kontrol etmek için farklı yollar denemeniz gerekebilir.
php -f cron.php sitemap


Eğer bu kod çalışmazsa sunucudaki dizininizi öğrenin, örneğin kullanıcı adlı kullanıcı için deneyebileceğiniz bir kod. PHP dosyasının tam adresini girerek çalıştırabilirsiniz.
php -f /home/kullanıcı/public_html/cron.php sitemap

veya o dizine gidip çalıştırabilirsiniz
cd /home/kullanıcı/public_html/; php -f cron.php sitemap


Çalıştırdıktan sonra ekranda gözüken kodları bir log dosyasına kaydetmek isterseniz.
cd /home/kullanıcı/public_html/;

ile başlayan kodlardan biri için aşağıdaki kodu :
cd /home/kullanıcı/public_html/; php -f cron.php sitemap >> cron.log

Diğerleri için log dizini belirtilerek aşağıdaki gibi girilmelidir.
php -f cron.php cronmode=sitemap >> /home/kullanıcı/public_html/cron.log


Eğer en başta denediğiniz bu kod çalışıyor ise :
php -f cron.php sitemap

Log dosyası cron.php ile aynı dizine kaydedilecektir.
php -f cron.php sitemap >> cron.log


Kontrol etme işlemi için ilk olarak her dakika çalışacak şekilde bir kural belirleyin ve kodu girin. Aldığınız log kayıtlarına göre gerekli periyot belirlemesini yapınız.

Tavsiye ettiğim kod biçimi için örnekler
cd /home/kullanıcı/public_html/; php -f cron.php sitemap >> cron.log

cd /home/kullanıcı/public_html/; php -f cron.php optimize >> cron.log

cd /home/kullanıcı/public_html/; php -f cron.php antivirus >> cron.log

cd /home/kullanıcı/public_html/; php -f cron.php >> cron.log


Bu işlemleri yapınca artık log dosyanızda done yazısını görebilirsiniz. Tabi doğru olarak çalışıyorsa. Fakat bu done yazılarının hangi işleme ait olduğu anlamak için cron.php dosyanızda birtakım düzenelemeler yapmalısınız.

Örneğin :
include_once ROOT_DIR.'/engine/inc/dumper.php';
die ("done" );

olan kodu aşağıdaki gibi değiştirerek done yazısının veritabanı yedeklemeye ait olduğunu ve işlemin gerçekleştirilme tarihini görebilirsiniz.
include_once ROOT_DIR.'/engine/inc/dumper.php';
die ("backup:done " . date( "d-m-Y H:i:s", $_TIME  ) . "\n" );


Hazırlayan: Mehmet Hanoğlu
Bilgilendirme
Yorum Ekleyebilmeniz için Sitemize Kayıt Olmanız Gerekmektedir.
3 779
MaRZoCHi 17 Haziran 2016 01:18
@KCA, hayır sistemde bir yerde belirtmeye gerek yok. Sadece yukarıda anlatımını yaptığım cPanel kısmında kullanılıyor.

--------------------
0
KCA 17 Haziran 2016 01:05
Cron.php ismini degiştirdigimizde yeni ismi bir herhangi *.php dosyasinda belirtmemiz gerekiyormu. sadece adini degiştirmek yeterlimi ?
3 779
MaRZoCHi 6 Aralık 2015 14:07
"Tavsiye ettiğim kod biçimi için örnekler" altında bulunan 4 örnekten sonuncusu db için.

--------------------
3 779
MaRZoCHi 9 Kasım 2015 13:34
@Rainbow, çözmenize sevindim. Dediğiniz gibi iyi okumak gerekli. Amacımız yazıyı uzatmak olmadığı için ne yazıldıysa bir işlevi vardır demektir.

Genel Duyuru: 1 Haftalık sürede fazla online olamayacağım.. Biriken sorularla bu süreden sonra sonra ilgileneceğim..

--------------------
0
Rainbow 8 Kasım 2015 19:41
olayı çözdüm ve şuan problemsiz çalışıyor, teşekkür ederim hocam, aslında birşeyleri iyi anlayıp, iyi okuyunca üstesinden gelinebiliyor bunu şimdi daha iyi anladım :)
0
Rainbow 8 Kasım 2015 12:16
@MaRZoCHi, kırmızı ile yazılanı yaptım hocam, done die cevap verdi, fakat anlamadığım olay şu defalarcaa okudum ama php bilgimin yeteri kadar olmamasından kaynaklanıyor.

şimdi sitemap pingsiz otomatik olarak güncellenecekmi sadece kırmızı ile yazılanı yaptım. 0 iken 1 yaptım.
3 779
MaRZoCHi 19 Mayıs 2015 10:36
@Eftimis, yanlış anlamayın ama yazılanları okumak zor olmasa gerek. Sonuçta konuda dosya da yok ki indir-geç yapasınız. En azından kırmızı yazı ile yazılan bilgiyi okumuş olmanızı beklerdim.

--------------------
0
Eftimis 19 Mayıs 2015 10:25
10.4'de yapmaya calıstım ama cron.php dosyasında kodlar yok :) cron calıstırınca Cron not allowed diyor.
0
Sembolbu 9 Ocak 2015 17:20
@MaRZoCHi, o cpnel sayfasında google translate çevirici açık kalmış olduğundan öyle gösteriyor. yoksa kodlar sizin yayında olduğu gibi. herhangi bir sorun yok yani.
3 779
MaRZoCHi 9 Ocak 2015 16:16
@Sembolbu, nasıl çalıştı anlamadım fakat
cdBOŞLUKhome/kullanıcı/public_html/;BOŞLUKphpBOŞLUK-fBOŞLUKcron.phpBOŞLUKcronmode=optimizeBOŞLUK>>BOŞLUKcron.log

olması gerekli. Boşlukları nasıl kopyaladınız anlamadım. Konuda boşluklu olarak gösterilmiyor.

--------------------
0
Sembolbu 9 Ocak 2015 15:56
@MaRZoCHi,
bu şekilde ayarladım. Kodlar çalıştı. Tekrar teşekkürler iyi çalışmalar...
3 779
MaRZoCHi 9 Ocak 2015 15:36
@Sembolbu, tam olarak kod o. Boşluklar önemli değil. O kod eklenmeden önce çalışmaz. Anlatımda o şekilde bir bilgi yok.
İşlemler için parametreler sitemap, optimize ve antivirus
Bu işlemleri aşağıdaki gibi adres satırına yazarak deneyebilirsiniz.

Altındaki kodu inceleyin çalıştırmak için.

--------------------
0
Sembolbu 9 Ocak 2015 15:07
@MaRZoCHi, Kodlar arasında boşluklar var oralara ne gelecek ? yani ben
cd /home/kullanıcı/public_html/; php -f cron.php cronmode=optimize >> cron.log

bu kodu eklemeden önce çalıştırmak istedim ama olmuyor sizinde anlayacağınız üzere.Tam olarak cron ekranında eklenmesi gereken kod yapısını verirseniz sevinirim. Teşekkürler anlatım için.
3 779
MaRZoCHi 9 Ocak 2015 14:12
Tüm sorularınızı buradan sorabilirsiniz.

--------------------
deneme bonusu veren siteler