1
egrep -w 'TCP|UDP' ~/IPsDenied.txt | sed 's/:[^:]* in/ in/' | awk '{cmd="echo "$5" | geoIP | fgrep 'Country:' | cut -c 16-43"; cmd | getline rslt; close(cmd); print $1" "$2" "$3" "$4" "$5" "$6" "rslt}' >> ~/IPtoCountry.txt

为什么当我使用 launchd 或 cron 时,我的语句中的 geoIP 脚本没有被调用?它手动运行良好...我尝试将完整的 PATH 用于 geoIP 之类的~/geoIPor./geoIP/Users/Admin/geoIP

#IPsDenied.txt
Apr 6 08:58:16 TCP 212.58.244.61:80 in

#IPtoCountry.txt
Apr 6 08:58:16 TCP 212.58.244.61 in United Kingdom

相反,我得到了

Apr 6 08:58:16 TCP 212.58.244.61 
4

1 回答 1

2

因为 cronjobs 通常使用有限的 '$PATH' 运行,所以尝试相同但提供 geoIP 应用程序的绝对路径。

于 2012-04-06T13:58:02.757 回答