Cron ve MySQL zamanlama sorunun çözümü

POSTED IN Blog | TAGS : , , , ,
27.06.2009

Hayatımı kolaylaştıran iki önemli madde bu gün zorlaştırmaya çalıştı ama beceremedi -P Şüphesiz cron *nix sistemlerin vazgeçilmez özelliklerinden. MySQL NOW() function’ı da benim için öyle.
Eski sunucuda cron düzgün çalışıyordu, sunucu değiştirdikten sonra saat 12.00 da ve 00.00 da çalışan cron rule’lerim saat 14.00 ve 02:00 da çalışmaya başladı. Sorun saat farkından belli, GMT +2 olması gereken sunucu saati, GMT +0 olarak ayarlanmış.

root@server [~]# hwclock –show
Fri 29 Aug 2008 07:58:23 PM EEST -0.018611 seconds
root@server [~]# date
Fri Aug 29 19:58:41 EEST 2008
root@server [~]#

hwclock ve date ile baktığımda GMT +2 olarak görünüyor. Demek ki başka bir yerde sorun var.

*nix sistemlerde tarih/saat dosyası /etc/localtime’ dır. Sunucu kurulumunda aslında bunu sipariş veren kişinin ülkesine göre ayarlamaları gerekirdi.

Aşağıdaki komutlarla bu dosyayı silip, ‘GMT+2 Istanbul’ dosyasını /etc/localtime’a link ediyoruz.

# rm -rf /etc/localtime
# ln -sf /usr/share/zoneinfo/Asia/Istanbul /etc/localtime
# ls -la /etc/localtime
lrwxrwxrwx 1 root root 33 Aug 29 20:53 /etc/localtime -> /usr/share/zoneinfo/Asia/Istanbul

Son olarak tarihi saati bozuk olan servisleri yeniden başlatmanız gerekir. Ben aşağıdaki komutla crond’ı yeniden başlattım.

# /etc/init.d/crond restart

cPanel/WHM kullanıyorsanız, ‘Restart Services > SQL Server (MySQL) > Yes’ yolunu takip ederek de mysql i restart edebilirsiniz. Hangi servislerde sorun yaşadığınızı bilmiyorsanız bilgisayarı direkt reboot edin.
Hepsi bu kadar. Artık cron ve MySQL NOW() functionu gibi hayat kurtarıcılar doğru tarih ve saati anlayacak.

1 COMMENT

  1. hakan yakın diyor ki:

    tracert -d 198.2.xx.xxxx sunucu ip girince dökümanda da gözkür hacı abi telefononunu yolla bana kartım yandı msn girmeyen bir adamsın mail de atım