Cron ve MySQL Saat sorunu
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.
Yorum eklemek için çok geç, 24-08-2009 tarihinde yoruma kapatıldı.