我正在尝试通过网络套接字从网络设备获取一些数据。在命令行上,该命令运行良好。但是,当从 cron 执行时,唯一发生的事情是创建的输出文件中包含 0 字节。我尝试过使用/不使用SHELL
变量。如何捕获/重定向命令的输出?
SHELL=/bin/bash
#
# m h dom mon dow command
*/1 * * * * /usr/bin/wscat -c ws://therm9.local/ws -w 1 >/dev/shm/outsideTelem 2>&1
# or
*/1 * * * * websocat -U --one-message ws://therm9.local/ws >/dev/shm/outsideTelem
文件:
-rw-r--r-- 1 pi pi 0 Aug 7 12:40 outsideTelem
系统日志:
Aug 7 12:45:01 raspberrypi CRON[21791]: (pi) CMD (/usr/bin/wscat -c ws://therm9.local/ws -w 1 > /dev/shm/outsideTelem 2>&1)
答案1
使用 bash 作为 shell,输出重定向看起来略有不同。
&>
与>
因此,下面开始将消息放入文件中/dev/shm/outsideTelem
:
websocat -U --one-message ws://therm9.local/ws &>/dev/shm/outsideTelem