1.问题说明
编写了一个golang程序,在shell脚本中定时进行执行,形成巡检表格,使用mailx邮件服务发送给相关人员。
结果发现每天的邮件并没有定时发送,但是手动执行shell脚本,golang程序是可以执行的。经排查发现,crontab定时执行shell脚本时,并没有执行golang程序,golang程序执行命令如下:
go run main.go
2.问题原因
使用crontab定时执行时,go命令无法被找到。
3.问题解决
go命令使用全路径,进行执行:
方法如下:
- 查询go命令所在路径
# which go
/usr/local/go/bin/go
- shell脚本中,填写go命令的绝对路径
/usr/local/go/bin/go run main.go
本文讲述了作者遇到的问题,即使用crontab定时执行shell脚本时,未执行嵌入的Golang程序。通过定位发现是由于`go`命令未被系统找到。解决方案是为shell脚本指定go命令的完整路径。
6万+

被折叠的 条评论
为什么被折叠?



