Php için Ubuntu Cron iş

2 Cevap php

Ben sunucu üzerinde Ubuntu kullanıyorum ve erişmek için Macun kullanıyorum. Benim php site için cronjobs oluşturmak istiyorum. Bunu nasıl yapabilirim?

2 Cevap

Eğer php site normal bazı görevleri yapmak istediğiniz anlamına, iki olası yolu vardır.

1) Düzenli, belirli bir sayfaya çekmek için cron kullanacak. Sen mesela, metin tabanlı bir tarayıcı ile yapabilirsiniz vaşak. Bu gibi komut çekin:

* * * * * /usr/bin/lynx http://yourhost.com/cron.php-dökümü> / Dev / null

(Bu, her dakika onu arayacak. Bu şekilde uygulama içerisinden kendi programınıza inşa edebilirsiniz)

2) Bu komut satırı php yorumlayıcısı ile komut çağırır:

* * * * * /usr/bin/php /path/to/cron.php > /dev/null

Genellikle çözüm iki iyidir. Ancak kutusuna erişimi gerekir. Eğer host crons yükleyemezsiniz eğer çözüm birinde cron, farklı bir konaktan tetiklenebilir.

Ayrıca php komut satırı sürümünü kullanarak ortak bir tuzak sakının. Debian (ve potansiyel olarak diğer sistemler) cgi, cli ve mod_php için ayrı php.ini dosyaları olabilir. Eğer özelleştirilmiş varsa yapılandırma komut satırı php, doğru birini kullanarak emin olun. Sen ile bu test edebilirsiniz:

/usr/bin/php -i | less

Dimo tarafından yorumuna cevaben ben bazı kriterler yaptı. Ben vaşak, wget ve php-cli ile basit bir yerel php script (sadece yankılanırken "test") 1000 kez aradı:

kbsilver: temp kbeyer $ zaman. wget.sh

real 0m14.223s user 0m2.906s sys 0m6.335s

(Komut: wget-O / dev / null "localhost / test.php"; 2> / dev / null)

kbsilver: temp kbeyer $ zaman. lynx.sh

real 0m26.511s user 0m5.789s sys 0m9.467s

(Komut: lynx-dump "localhost / test.php";> / dev / null)

kbsilver: temp kbeyer $ zaman. php_cli.sh

real 0m54.617s user 0m28.704s sys 0m18.403s

(Komut: / opt / local / bin / php / www / htdocs / test.php> / dev / null)

Sunucu (Mac OS X) APC ile lighttpd, php (Fastcgi) 'dir.

Gerçekten wget hız ile ilgili iş için en iyi araç olduğu ortaya çıkıyor.

Diğer yöntemler opcode önbellek ile zaten çalışan bir php konu yeniden Yani php-cli sonucu şaşırtıcı değildir.

Yani php-cli kullanarak tek gerçek avantajı docroot dışına koymak gibi komut dışından temin olmayacak gibi güvenlik.

(Bu test tabii ki% 100 doğru değil, ama fark bence oldukça açıktır)

Ben yedekleme için PHP site istiyorsun asssuming ediyorum? Kullanarak crontab'ın düzenleyin:

crontab -e

Bu ekleme modu için crontab basın i düzenleyebileceğiniz vi bir örneğini başlayacaktır. Daha sonra, örneğin, o anda çalıştırmak için cron giriş çalışacaktır zaman için bilgi ve komut koymak gerekir:

30 10 * * * tar -zcvf ./myphpsite.tar.gz /var/www/phpsite

Yani yukarıdaki komut her gün 10:30 / var / www / phpsite daki phpsite gziplemek tar olacaktır. Çık ve :wq ile vi çıkın

Daha fazla referans için bu bakınız:

http://www.adminschoice.com/docs/crontab.htm