“未find命令” – 无法运行bash脚本

可能重复:
找不到我的cron任务报告命令

我正在尝试运行一个bash脚本

#!/bin/bash export AWS_CLOUDWATCH_URL=https://monitoring.amazonaws.com # get ec2 instance id instanceid=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` memtotal=`free -m | grep 'Mem' | tr -s ' ' | cut -d ' ' -f 2` memfree=`free -m | grep 'buffers/cache' | tr -s ' ' | cut -d ' ' -f 4` let "memused=100-memfree*100/memtotal" mon-put-data --metric-name "FreeMemoryMBytes" --namespace "System/Linux" --dimensions "InstanceId=$instanceid" --value "$memfree" --u$ mon-put-data --metric-name "UsedMemoryPercent" --namespace "System/Linux" --dimensions "InstanceId=$instanceid" --value "$memused" --$ 

我已经在cron中添加了这个bash脚本,但是当我检查了cron时,它说没有find那个“mon-put-data”

当我只是input命令它运行良好。 有什么问题

mon-put-data命令可能不在标准path中。 从terminal,您可以通过inputwhich mon-put-data来检查,然后尝试使用脚本中的完整path。

这是因为从cron启动的bash脚本不会读取您的.bashrc.bash_profile ,这可能会覆盖默认path。

尝试添加mon-put-data的完整path。 从你的命令行你可以find这个:

which mon-put-data

问题是执行脚本的用户没有相同的环境(具体来说,不是相同的path),你所做的。

此外,我build议你使用$(command)而不是`command`,因为后者已被弃用,并且可能会引起引用问题。

你使用的是相同的shell吗? 检查。 您可能在terminal中使用csh ,脚本可能使用bash