Cron Job içinde dışarıya log dosyası oluşturtmadan wget kullanımı



2 dakikalık okuma
June 6, 2017

Senaryomuz şöyle:

Linux sunucusu yönetiyorsunuz. WHM CPanel yüklü. Cron job oluşturma ihtiyacı hissettiniz ve belli bir php script dosyanızı belirli aralıklarla çalıştırmak istiyorsunuz. Bunun için wget kullandınız ama wget ile çalıştırdığınız php script dosyanızın log çıktısını devamlı surette dışarıya yazmakta. Böylece sunucu dizininizde bir sürü log dosyası olacak. Bu durum çok can sıkıcı ve kurtulmak istiyorsunuz.

Sadece bu olsa üstüne bir de tanımlı root mail adresine her cron job işlemi çalıştığında mail gönderiyor. Düşünsenize cron job 10 dakikada bir çalışacaksa her 10 dakikada bir mail göndererek mail kutunuzu şişirecek 🙂 Ne yapacaksınız?

Çözüm:

Wget’i çalıştırırken aşağıdaki şekilde kullanacaksınız:

wget -q --spider 'http://www.xxx.com/islet.php'

İşin sırrı –q –-spider parametrelerinde.

q: sessiz mod demek.

spider: çalıştırdığın scriptin çıktısını alma ve sunucu dizininde log tutma demek.

spider parametresini kullanmazsanız gereksiz yere sunucu dizininde bir sürü dosya olacak. Her cron job işleminden sonra dosya dosya islet.php.xx adında loglayacak. Gerek var mı ? Bence yok. Güvenlik için falan desek bu log dosyalarıyla başa çıkamayız…

Her çalıştırmada mail göndermeyi de iptal edelim. Bunun için kullanacağımız komut da >/dev/null 2>&1

wget -q --spider 'http://www.xxx.com/islet.php' >/dev/null 2>&1

Artık programladığımız cron job işleri sunucuyu yormadan, gereksiz log çıktıları ve mail uyarılarıyla sistemi yormadan sessiz sedasız işini yapacak.


Etiketler: