Cron wysyła dane wyjściowe do programu pocztowego. Jeśli chcesz zobaczyć dane wyjściowe w terminalu, możesz zalogować się do pliku i użyć tail -f, aby wyświetlić dane wyjściowe w terminalu, który chcesz zobaczyć dane wyjściowe
Zaloguj się do pliku
- Najprostszą odpowiedzią jest zalogowanie się bezpośrednio do pliku z wpisem crontab, takim jak:
0 07-17 * * * /home/dat/scripts/cron.out > /path/to/log.txt 2> /path/to/error.txt
Alternatywne sposoby logowania:
- Jeśli twój program jest skryptem, w którym można zapisać, możesz go zmodyfikować, aby przekierować dane wyjściowe do pliku dziennika za pomocą.
echo output > log.txt
lub możesz użyć skryptu opakowania opisanego poniżej.
- Jeśli twój program jest binarny lub w inny sposób nie można go zapisać, musisz napisać skrypt opakowujący, aby przechwycić dane wyjściowe do pliku.
Przykładowy program i skrypt opakowania:
$ 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
Przykładowy przebieg 1:
$ ./wrapper.sh 1 2 3 ; cat error.txt log.txt
sample error
arg 1=1 arg2=2 arg3=3
Przykładowy przebieg 2:
$ ./wrapper.sh "A B C" D E ; cat error.txt log.txt
sample error
arg 1=A B C arg2=D arg3=E
Wyświetl dane wyjściowe w terminalu:
Teraz, gdy zalogowaniu zarówno standardowe wyjście oraz standardowy błąd w pliku, w każdym terminalu, można uruchomić tail -f
na jednym lub obu plików jak tail -f log.txt
i tail -f log.txt error.txt
tak, że ogon będzie obserwować czy raczej śledzić plik (ów) do poprawek. strona ogona
$ tail -f log.txt error.txt
==> log.txt <==
arg 1=1 arg2=2 arg3=3
==> error.txt <==
sample error
Pliki dziennika dołączane później:
Jeśli później log.txt lub error.txt zostaną później dołączone z programu lub innego terminala $ echo "more output" >> log.txt
, dane wyjściowe są widoczne na uruchomionym terminalu$ tail -f log.txt error.txt
==> log.txt <==
more output
Ponadto $ echo code red >> error.txt
skutkuje:
==> error.txt <==
code red