Cron neden / root'ta, ne zaman / var / www'da saklanır?


1

Neden benim cronum */1 * * * * /usr/bin/php /var/www/query/query.php &> /root/querylog.log query.php çıktısını / root / klasörüne kaydeder?

(bu komut dosyası * .txt dosyasını konumunda kaydetmelidir)

It should do so at /var/www

Klasör sahibi var/www/query/ olduğu web-data.

Debian Squeeze 6.0 ile Çalıştırmak


Meraktan sorgu.php çıktı nedir? Belki de çıkışının doğru yolunu php kodunuzun içinde belirtmelisiniz?

Hangi kullanıcı cron olarak çalışıyor?
danio

Yanıtlar:


3

querylog.log dosya /root dizin, tam olarak belirttiğiniz yerin kaydedilmesi gerektiği içindir.

Konumunu değiştirmek isterseniz, istediğiniz konumun yolunu düzenleyin; /var/www/querylog.log.


query.php çıktısı 2 * .txt dosyasıdır. Yerel makineme ateşlendiğinde, query.php ile aynı dizinde oluşturulurlar. Fakat cron onları oraya kaydeder, günlüğün kaydedildiği yer - neden? (çıkış ve kütük ateşi btw olarak 2 ayrı şeydir)
Szymon Toda

Sanırım .log dosyası hakkında değil, query.php dosyasının çıktısını alıyor, log istediği gibi kökünden giriyor.

1

Bunun nedeni cron işinin root kullanıcısı olarak çalıştırılması, dolayısıyla root kullanıcısının $ HOME, yani çalıştırılmasıdır. /root.

Eğer cron işinin başka bir yerde çalışmasını istiyorsanız, çıktının orada üretilmesini istiyorsanız, önce oraya taşınmalısınız, örneğin her şeyi yapan bir komut dosyası yazmak ve cron'dan çalıştırmak:

my_query.bash

cd /var/www
/var/www/query/query.php &> /root/querylog.log

Ve cron çizgisi olur

*/1 * * * * /bin/bash /path/to/script/my_query.bash

Bu cevabın aşağı oylarını anlamıyorum: tam olarak ne olduğunu söylüyor gibi gözüküyor (query.php çalıştırıldığı dizine çıktı kaydetti, cron root olarak çalıştırır, böylece script .roo'da çalışır.
danio
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.