Windows文件打包上传到Linux

1.写测试demo

package main

import (
	"fmt"
	"net/http"
)

func main() {
    
    
	http.HandleFunc("/", hello)
	server := &http.Server{
    
    
		Addr: ":8888",
	}
	fmt.Println("server startup...")
	if err := server.ListenAndServe(); err != nil {
    
    
		fmt.Printf("server startup failed, err:%v\n", err)
	}
}

func hello(w http.ResponseWriter, _ *http.Request) {
    
    
	w.Write([]byte("hello golang.com!"))
}

2.编译成可执行文件demo

用makefile写

.PHONY: all build run gotool clean help

BINARY="appdemo"

all: gotool build

build:
#这个应该是mac上的命令,我们用win,用下面即可
#    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o ./bin/${
      
      BINARY}
	set CGO_ENABLED=0
	set GOOS=linux
	set GOARCH=amd64
	go build -ldflags "-s -w" -o ./bin/${
    
    BINARY}

目录结构如下,在当前项目目录命令行make命令即可生成appdemo文件,无后缀Linux可执行文件

在这里插入图片描述

Windows文件打包上传到Linux

在xshell里面拖拽也行(使用于单个文件),多个文件上传就要打包了,打包步骤如下:

1.在win先用把文件打包成xxx.tar
2.再把xxx.tar打包成xxx.tar.gz
3.用xshell将文件上传到Linux
4.解压文件
1、压缩命令:
	命令格式:
	tar -zcvf 压缩文件名 .tar.gz 被压缩文件名
	可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。
2、压缩命令:
tar -zxvf xxx.tar.gz -C /xxx/
	-z是使用gzip来解压或者压缩文件
	-x是释放文件,或者说叫解压文件
	-v是报告文件详情信息,如果不加这一条的话,就不会一直滚动的信息条了,建议加上,如果出了错还是会更加直观的看出来是什么原因
	-f是指定名字
	后续跟的是要解压的文件名,-C是指定目录,后续跟的也就是目标目录
3、解压缩命令:
	命令格式:
	tar -zxvf 压缩文件名.tar.gz
	解压缩后的文件只能放在当前的目录。
4、运行程序
打开腾讯云安全组 --自定义 --tcp --8888
设置appdemo权限
chmod 777 ./appdemo
运行程序:Linux程序没有后缀,执行./文件路径即可
./appdemo

关闭终端不停止运行

sudo nohup ./bin/appdemo  > nohup_appdemo.log 2>&1 &

在这里插入图片描述

杂项问题解决
Linux端口被占用怎么解决

FirewallD is not running原因与解决方法

猜你喜欢

转载自blog.csdn.net/weixin_46356409/article/details/127060519