首页 > 解决方案 > 在 Cron 上运行 Bash 脚本:Centos7

问题描述

我在下面有以下脚本,它将发送关于 /tmp 和 /var/tmp 目录在 Cron 上运行的完整程度的桌面通知。下面是脚本。


tmpsize=`du -sm /tmp | cut -f1`
varsize=`du -sm /var/tmp | cut -f1`

if { [ $tmpsize -gt 1024 ] && [ $tmpsize -lt 7001 ]; } || { [ $varsize -gt 1024 ] && [ $varsize -lt 7001 ]; } then
/usr/bin/notify-send -- "Disk Warning" "/tmp folder is ${tmpsize}MB\n/var/tmp is ${varsize}MB"

elif [ $tmpsize -gt 7000 ] || [ $varsize -gt 7000 ] ; then
/usr/bin/notify-send -- "Disk Warning" "/tmp folder it ${tmpsize}MB out of 8GB\n/var/tmp is ${varsize}MB out of 8GB\n/Please Clear out your /tmp using rm -rf /tmp and your /var/tmp using rm -rf /var/tmp"

else
/usr/bin/notify-send -- "Disk Warning" "All clear ${tmpsize}MB"

fi

在我的 shell 上运行这个 bash 脚本时,它运行良好,并且以 root 身份运行。我正在使用以下 cron:sudo crontab -e 为了使它在我的 Centos7 机器上运行。*/1 * * * * PATH/to/file/user/tmp_warning.sh. 然而,随着这个 cron 每分钟运行一次,通知不会出现在我的桌面上。我什至尝试DISPLAY=:0在 cron 中使用。我还检查了/var/log/croncron 正在运行的,没有任何问题。关于我缺少什么的任何想法?

标签: linuxbashcentos7

解决方案


推荐阅读