Cron gửi đầu ra cho một người gửi thư. Nếu bạn muốn xem đầu ra trong một thiết bị đầu cuối thì bạn có thể đăng nhập vào một tệp và sử dụng đuôi -f để xem đầu ra trong thiết bị đầu cuối mà bạn muốn xem đầu ra
Đăng nhập vào một tập tin
- Câu trả lời đơn giản nhất là đăng nhập trực tiếp vào một tệp có mục crontab như:
0 07-17 * * * /home/dat/scripts/cron.out > /path/to/log.txt 2> /path/to/error.txt
Các cách khác để đăng nhập:
- Nếu chương trình của bạn là một tập lệnh có thể được ghi vào, bạn có thể sửa đổi nó để chuyển hướng đầu ra thành một tệp nhật ký.
echo output > log.txt
hoặc bạn có thể sử dụng tập lệnh bao bọc được mô tả bên dưới.
- Nếu chương trình của bạn là nhị phân hoặc không thể ghi được, thì bạn phải viết tập lệnh bao bọc để thu đầu ra vào một tệp.
Ví dụ chương trình và tập lệnh bao bọc:
$ 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
Ví dụ chạy 1:
$ ./wrapper.sh 1 2 3 ; cat error.txt log.txt
sample error
arg 1=1 arg2=2 arg3=3
Ví dụ chạy 2:
$ ./wrapper.sh "A B C" D E ; cat error.txt log.txt
sample error
arg 1=A B C arg2=D arg3=E
Xem đầu ra trong thiết bị đầu cuối:
Giờ đây, khi bạn đăng nhập cả lỗi tiêu chuẩn và lỗi tiêu chuẩn vào một tệp, trong bất kỳ thiết bị đầu cuối nào, bạn có thể chạy tail -f
trên một hoặc cả hai tệp như vậy tail -f log.txt
hoặc tail -f log.txt error.txt
đuôi đó sẽ xem hoặc theo dõi (các) tệp để sửa đổi. đuôi người đàn ông
$ tail -f log.txt error.txt
==> log.txt <==
arg 1=1 arg2=2 arg3=3
==> error.txt <==
sample error
Các tệp nhật ký được nối thêm sau đó:
Nếu log.txt hoặc error.txt sau đó được nối từ chương trình của bạn hoặc từ thiết bị đầu cuối khác như thế $ echo "more output" >> log.txt
, thì đầu ra sẽ được nhìn thấy trên thiết bị đầu cuối đang chạy$ tail -f log.txt error.txt
==> log.txt <==
more output
Hơn nữa, $ echo code red >> error.txt
kết quả trong:
==> error.txt <==
code red