linux - Cron 作业未运行

标签 linux bash shell cron

<分区>

我有一个 Cron Job 可以给我发送电子邮件,但它没有运行:

 #!/bin/bash
TotalMem=$(top -n 1 | grep Mem | awk 'NR==1{print $4}')
UsadoMem=$(top -n 1 | grep Mem | awk 'NR==1{print $8}')
PorcUsado=$(echo "scale=2;($UsadoMem/$TotalMem)*100"|bc)
echo $PorcUsado
UsoCpu=$(top -n 1 | grep Cpu | awk '{print $2}')
echo $UsoCpu

if [ $PorcUsado > 1 ] || [ $UsoCpu > 0 ]; then
   echo MEM: $PorcUsado CPU: $UsoCpu|mail -s "Recursos" "mymail@gmail.com"
fi

我在 crontab -e 中配置:

* ** * * peter sh /home/peter/scripts/check.sh

脚本直接通过 bash 正常运行,但我没有通过 cron 收到任何电子邮件

感谢任何帮助

最佳答案

失去彼得。该语法仅对/etc/crontab 有效,使用 crontab -e 创建/编辑的用户 crontab 中没有用户名。如果您的脚本已被 chmod +x 控制,则您也不需要 sh

* * * * * /home/peter/scripts/check.sh

P.S.:您可以大大简化您的脚本,节省 greps、两个 awk 和 bc ...

#!/bin/bash
read -r UsoCpu PorcUsado <<< "$(  top -n 1 | awk '/Cpu/{printf "%s\t", $2} /Mem/ {printf "%.2f\n", ($8 / $4)*100 ; nextfile}')"
if [ $PorcUsado > 1 ] || [ $UsoCpu > 0 ]; then
   echo MEM: $PorcUsado CPU: $UsoCpu
fi

关于linux - Cron 作业未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102906/

相关文章:

PHP 语音识别 API

linux - 如何在启动 Linux 的纯命令行界面后打开应用程序?

linux - "kill 0"和 "kill -‍- -$$"有什么区别?

python - 在 python 中运行 shell 脚本

linux - 如何读取逗号分隔的变量并将它们附加到 unix 中的字符串缓冲区中

Linux BlueZ 自定义制造扫描响应数据

linux - 如何通过ssh获取远程命令的退出代码

c++ - Linux 如何决定使用什么 `malloc`?

Bash 脚本,如何删除不区分大小写的尾随子字符串?

bash - 通过 unix shell 管道