我有一个脚本,每天更新一次服务器的一些统计信息。从命令行运行时,该脚本按预期工作,但从cron运行时,某些变量不会传递给curl。Shell脚本从命令行运行,而不是cron
下面是代码的例子:我不知道
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
/bin/sh /etc/profile
MACADDR=$(ifconfig en0 | grep ether | awk '{print $2}')
DISKUSED=$(df/| awk '{print $3}' | tail -n1)
DISKSIZE=$(df/| awk '{print $2}' | tail -n1)
# HTTP GET PARAMS
GET_DELIM="&"
GET_MAC="macaddr"
GET_DS="disk_size"
GET_DU="disk_used"
# Put together the query
QUERY1=$GET_MAC=$MACADDR$GET_DELIM$GET_DS=$DISKSIZE$GET_DELIM$GET_DU=$DISK_USED
curl http://192.168.100.150/status.php?$QUERY1
在cron作业的结果是http://192.168.100.150/status.php?macaddr=&disk_size=&disk_used=
如果是一些问题的变量,或者可能使用awk试图解析没有指定终端大小的数据等。
任何帮助表示赞赏。
UPWGFBA - 无用管道使用grep随后AWK :-)更好:'MACADDR = $(使用ifconfig了en0 | awk的 '/醚/ {打印$ 2}')' – Jens 2011-08-29 12:24:14