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