【问题标题】:How to run a bash script from crontab and send the output to desktop notifications如何从 crontab 运行 bash 脚本并将输出发送到桌面通知
【发布时间】:2020-02-06 17:37:42
【问题描述】:

每次我启动到我的系统 (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

【问题讨论】:

  • 尝试在您的脚本中添加第一个字符串:export DISPLAY=':0.0'
  • 将错误添加到日志中:"* * * * * /PATH/scripth.sh > /PATH/crontab.log 2>&1" 并检查 crontab.log

标签: linux bash cron cron-task raid


【解决方案1】:

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

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

【讨论】:

  • 如果对您有用,您可以考虑接受答案。
猜你喜欢
  • 2018-08-10
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 2017-12-02
  • 1970-01-01
相关资源
最近更新 更多