Cron çıktıyı bir postaya gönderir. Çıkışı bir terminalde görmek istiyorsanız, bir dosyaya giriş yapabilir ve çıktıyı görmek istediğiniz terminaldeki çıktıyı görüntülemek için tail -f komutunu kullanabilirsiniz.
Bir dosyaya giriş yapın
- En basit cevap, crontab girişi olan bir dosyaya doğrudan giriş yapmaktır:
0 07-17 * * * /home/dat/scripts/cron.out > /path/to/log.txt 2> /path/to/error.txt
Günlüğe kaydetmenin alternatif yolları:
- Programınız yazılabilecek bir komut dosyasıysa, çıktıyı bir günlük dosyasına yeniden yönlendirmek için değiştirebilirsiniz.
echo output > log.txt
veya aşağıda açıklanan bir sarmalayıcı komut dosyası kullanabilirsiniz .
- Programınız bir ikili veya başka türlü yazılamazsa, bir dosyaya çıktı yakalamak için sarıcı komut dosyası yazmalısınız .
Örnek program ve sarıcı komut dosyası:
$ cat program.sh wrapper.sh
#!/bin/bash
# sample program
echo "arg 1=$1 arg2=$2 arg3=$3"
echo "sample error" >&2
#!/bin/bash
# sample wrapper
exec ./program.sh "$@" >log.txt 2> error.txt
Örnek çalışma 1:
$ ./wrapper.sh 1 2 3 ; cat error.txt log.txt
sample error
arg 1=1 arg2=2 arg3=3
Örnek çalışma 2:
$ ./wrapper.sh "A B C" D E ; cat error.txt log.txt
sample error
arg 1=A B C arg2=D arg3=E
Terminaldeki çıkışı görüntüle:
Artık reklam herhangi terminalde bir dosyaya hem standart out ve standart hatayı, günlüğü göre, çalıştırabilir tail -f
gibi bir veya her iki dosyalar üzerinde tail -f log.txt
veya tail -f log.txt error.txt
kuyruk izlemek ya da daha doğrusu değişiklikler için dosya (lar) takip edecek şekilde yerleştirin. kuyruk adam sayfası
$ tail -f log.txt error.txt
==> log.txt <==
arg 1=1 arg2=2 arg3=3
==> error.txt <==
sample error
Sonradan eklenen dosyaları günlüğe kaydetme:
Log.txt veya error.txt dosyalarına daha sonra programınızdan veya benzeri bir terminalden eklenirse $ echo "more output" >> log.txt
, çıkış çalışan terminalde görülür$ tail -f log.txt error.txt
==> log.txt <==
more output
Ayrıca, $ echo code red >> error.txt
sonuç:
==> error.txt <==
code red