ubuntu20 安装Go/go go定时任务
安装 Go
-
使用官方包管理器安装(版本可能不是最新):
查看版本:
apt list golang // 是1.13版本(太老了),直接从官网下载
sudo apt update sudo apt install -y golang
-
从官方网站下载安装(推荐,获取最新版本):
wget https://golang.org/dl/go1.22.2.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
请根据 Go 最新版本修改下载链接。
-
配置环境变量:
在
~/.bashrc
或~/.profile
中添加以下内容:export PATH=$PATH:/usr/local/go/bin export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin
然后执行:
source ~/.bashrc
-
检查安装是否成功:
go version
如果安装成功,会输出 Go 版本信息,例如:
使用cron执行xx.go
hello.go
package main
import (
"fmt"
"log"
"os"
)
func logs() {
// 打开文件,如果不存在就创建
file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
log.Fatal(err)
}
// 设置日志输出到文件
log.SetOutput(file)
log.Println("这是一条普通的日志")
defer file.Close()
}
func main() {
fmt.Println("开始了")
logs()
}
如果 Go 程序依赖某些环境变量(如 GOROOT 或 PATH),需要显式设置这些变量。
在 crontab 文件顶部添加如下 (一定添加,否则不执行)
# go程序测试
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/go/bin
GOPATH=/root/go
GOROOT=/usr/local/go
00 20 * * * root su - root -c "cd /root/go && /usr/local/go/bin/go run /root/go/hello.go"
02 20 * * * root su - root -c "cd /root/go && /usr/local/go/bin/go run /root/go/hello.go"
03 20 * * * root su - root -c "cd /root/go && /usr/local/go/bin/go run /root/go/hello.go"
eg :
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18597894