如何从 crontab 运行 bash 脚本并将输出发送到桌面通知



每次启动到我的系统(Debian(时,我都会尝试获取RAID状态,并将输出作为通知发送到桌面。 这在终端按预期工作:sudo mdadm --detail /dev/md0 | grep 'Working Devices :' | while read OUTPUT; do notify-send "$OUTPUT"; done

但是如果我运行指向脚本的 crontab 作业,它将不起作用:

mdadm --detail /dev/md0 | grep 'Working Devices :' | while read OUTPUT; do notify-send "$OUTPUT"; done

该脚本设置为可执行,并从 crontab 根运行,如下所示:

@reboot /PATH/scripth.sh

这也行不通:

* * * * * /PATH/scripth.sh

在以下情况下不会生成日志:

* * * * * /PATH/scripth.sh > /PATH/crontab.log

这在我的电脑中工作(更改用户名(:

sudo mdadm --detail /dev/md0 | grep 'Working Devices :' | while read OUTPUT; do su - RealUserName -c "DISPLAY=':0.0' notify-send "$OUTPUT""; done

最新更新