如何将 cron 作业输出重定向到标准输出
How to redirect cron job output to stdout
我有一个 cron 作业,它的输出现在被重定向到一个文件中。看起来像下面这样
0 9 * * * /bin/sh /bin/cleanup.sh > /home/darkknight/cleanup.log
任何人都可以帮助我将其输出重定向到标准输出吗?
运行 cat /home/darkknight/cleanup.log
然后你在 STDOUT 上得到输出。
如果你看不到你期望的输出,也许你需要修改 cron 如下:
0 9 * * * /bin/sh /bin/cleanup.sh > /home/darkknight/cleanup.log 2>&1
获取 cleanup.sh
在其 STDERR 上写入的内容。
如果不想丢失昨天的输出,修改如下:
0 9 * * * /bin/sh /bin/cleanup.sh >> /home/darkknight/cleanup.log 2>&1
或者,只需执行 /bin/sh /bin/cleanup.sh
,然后您就会在终端上同时获得 STDOUT 和 STDERR。
在任何终端上输入 tty
,我们将获得该特定终端 window 的设备文件,例如 /dev/pts/1
。将 cron 作业重定向到此文件中
cleanup.sh > /dev/pts/1
运行 进程有一个 PID,它的 fd(文件描述符)映射到 /proc/<PID>/fd
。我们可以在 /var/run/crond.pid
.
找到 运行 cron 进程的 PID
要将 cron 日志发送到 stdout,我们可以将日志写入 cron 启动的进程的 fd 编号 1。
0 9 * * * /bin/sh /bin/cleanup.sh > /proc/$(cat /var/run/crond.pid)/fd/1 2>&1
我有一个 cron 作业,它的输出现在被重定向到一个文件中。看起来像下面这样
0 9 * * * /bin/sh /bin/cleanup.sh > /home/darkknight/cleanup.log
任何人都可以帮助我将其输出重定向到标准输出吗?
运行 cat /home/darkknight/cleanup.log
然后你在 STDOUT 上得到输出。
如果你看不到你期望的输出,也许你需要修改 cron 如下:
0 9 * * * /bin/sh /bin/cleanup.sh > /home/darkknight/cleanup.log 2>&1
获取 cleanup.sh
在其 STDERR 上写入的内容。
如果不想丢失昨天的输出,修改如下:
0 9 * * * /bin/sh /bin/cleanup.sh >> /home/darkknight/cleanup.log 2>&1
或者,只需执行 /bin/sh /bin/cleanup.sh
,然后您就会在终端上同时获得 STDOUT 和 STDERR。
在任何终端上输入 tty
,我们将获得该特定终端 window 的设备文件,例如 /dev/pts/1
。将 cron 作业重定向到此文件中
cleanup.sh > /dev/pts/1
运行 进程有一个 PID,它的 fd(文件描述符)映射到 /proc/<PID>/fd
。我们可以在 /var/run/crond.pid
.
要将 cron 日志发送到 stdout,我们可以将日志写入 cron 启动的进程的 fd 编号 1。
0 9 * * * /bin/sh /bin/cleanup.sh > /proc/$(cat /var/run/crond.pid)/fd/1 2>&1