在Ubuntu中如何使用crontab执行Golang的.go文件
在Ubuntu中如何使用crontab执行Golang的.go文件 你好,我是Go语言的新手。我刚刚使用以下代码创建了一个程序文件。
package main
import (
"database/sql"
_ "mysql-master"
"fmt"
)
func main() {
db, err := sql.Open("mysql", "user:pass@/database?charset=utf8")
checkErr(err)
// insert
stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
checkErr(err)
res, err := stmt.Exec("astaxie", "astaxie", "2012-12-09")
checkErr(err)
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
当我使用命令 go run insert-data.go 时,它会向数据库中插入新行。
我如何在Ubuntu的crontab中使用相同的命令?这可能吗? 我知道有更适合cron的方法,但我希望这样使用。
请帮助我
更多关于在Ubuntu中如何使用crontab执行Golang的.go文件的实战教程也可以访问 https://www.itying.com/category-94-b0.html
它正常工作了,谢谢
更多关于在Ubuntu中如何使用crontab执行Golang的.go文件的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
您应该构建程序生成可执行文件。具体操作如下:
$ go build insert-data.go
这将生成一个名为 insert-data 的可执行文件。请将此可执行文件的完整路径添加到您的定时任务中。
同时建议查阅基础文档《如何编写Go代码》。
在Ubuntu中使用crontab执行Go程序时,你需要先编译Go文件生成可执行文件,然后在crontab中调用该可执行文件。以下是具体步骤:
-
编译Go文件: 在终端中运行以下命令编译你的Go程序:
go build -o insert-data insert-data.go这将生成名为
insert-data的可执行文件。 -
设置crontab任务: 打开crontab编辑器:
crontab -e添加一行来调度执行。例如,每天凌晨2点运行:
0 2 * * * /path/to/your/insert-data确保替换
/path/to/your/为可执行文件的实际路径。
完整示例:
假设你的Go文件位于/home/user/projects/目录,编译后生成insert-data。在crontab中添加:
0 2 * * * /home/user/projects/insert-data
注意事项:
- 确保可执行文件具有执行权限:
chmod +x /home/user/projects/insert-data。 - 如果程序依赖环境变量(如GOPATH),在crontab中设置它们,例如:
0 2 * * * export GOPATH=/your/gopath && /home/user/projects/insert-data - 使用
go run在crontab中不可靠,因为它依赖临时文件构建,可能引发权限或路径问题。编译为二进制文件是标准做法。
通过这种方式,cron将按计划执行你的Go程序。

