Go语言中文网 为您找到相关结果 567

Golang语法探索-声明结构体

1 匿名声明。 tests := []struct { key, val string ok bool }{ {"имя", "v", false}, // key must be ascii {"name", "валю", true}, // value may be non-ascii {"", "v", false}, // key must be non-empty {"k", "", true}, // value may be empty } 这种模式常用。定义一张常量表,表的格式就这个地方用一下就可以。 2 集体声明: type ( // Echo is the top-level framework instance. Echo struct { server engine...阅读全文

博文 2017-01-08 06:00:13 shengjuntu

Go homework

<p>Hi gophers!</p> <p>I&#39;m a budding developer who&#39;s been trained in ruby/rails/javascript. I&#39;ve recently been teaching myself Go and its been very pleasurable, however I&#39;m at a loss of what to create now that I can write a little Go. </p> <p>It would be awesome if anyone has a list of ...阅读全文

使用GO语言灵活批量ssh登录服务器执行操作

go语言是一门新兴语言,能够在很多地方发挥总用。初学go语言,做了这么一个小工具,也算是练练手了。 这个小程序实现的功能是从用户指定的文件中读取相关配置,然后根据用户指令执行相关操作。 代码如下: package main import ( "fmt" "golang.org/x/crypto/ssh" "os" "io" "bufio" "encoding/csv" "strings" "container/list" ) var ( num int ) func main() { if len(os.Args) == 1{ fmt.Println("请输入文件名参数") return } list := listNode(os.Args[1]) fmt.Println("请选择执行的语句...阅读全文

博文 2016-10-11 03:00:59 jiangmitiao

Fabric kafka多机部署总结

部署多机之前,请先下载docker-ce、docker-compose、golang、fabric,并完成基本的配置工作。 可参考如下教程: ubuntu下部署hyperledger fabric release-1.2教程(亲测有效) 我的环境配置如下: VM1(10.10.12.30):zookeeper0、kafka0、orderer0、peer0org1、cli VM2(10.10.12.31):zookeeper1、kafka1、orderer1、peer1org1、cli VM3(10.10.12.32):zookeeper2、kafka2、orderer2、peer0org2、cli VM4(10.10.12.33):peer1org2、cli 1.修改configtx.yam...阅读全文

博文 2018-08-06 11:34:53 通若

Go mod 使用

go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为: 模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。 如何使用 Modules ? 把 golang 升级到 1.11(现在1.12 已经发布了,建议使用1.12) 设置 GO111MODULE GO111MODULE GO111MODULE 有三个值:off, on和auto(默认值)。 GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过v...阅读全文

博文 2019-03-17 21:34:40 goodspeed

Kubernetes集群Dashboard插件安装

第一次利用kube-up.sh脚本方式安装Kubernetes 1.3.7集群时,我就已经顺利地将kubernetes dashboard addon安装ok了。至今在这个环境下运行十分稳定。但是毕竟是一个试验环境,有些配置是无法满足生产环境要求的,比如:安全问题。今天有时间对Dashboard的配置进行一些调整,顺带将之前Dashboard插件的安装和配置过程也记录下来,供大家参考。 一、Dashboard的默认安装步骤 1、基于默认配置项的安装 采用kube-up.sh在Ubuntu上安装dashboard的原理与安装DNS插件大同小异,主要涉及的脚本文件和配置项包括: // kubernetes/cluster/config-default.sh ... ... # Optional:...阅读全文

博文 2017-02-06 03:22:12 bigwhite

VSCode Golang 环境搭建 (mac os)

安装Golang (略) 安装VS Code (略) 设置环境变量 (source ~/.bash_profile) export GOROOT='/usr/local/go' export GOARCH='amd64' export GOOS='darwin' export GOPATH='/Users/your_name/gopath' export PATH='/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/go/bin' 4. VSCode 安装扩展(略) 5. 执行如下脚本 (执行脚本前,就确保环境变量生效 source ~/.bash_profile) #!/bin/bash BASEDIR="$GOPATH/src/golang.or...阅读全文

博文 2017-10-31 11:03:06 alex-J

Go Get a Job

<p>Has anyone here done an interview for any companies that used Go? If so, was it the typical algorithm and data structures questions or were the interview questions Go specific? What was your experience like. I&#39;m assuming your experiences might be the typical kind, but there&#39;s an association of DevOps with Go that might rest...阅读全文

资源 2017-09-27 14:30:13 blov

kubernetes(k8s) jenkins CI/CD(pipeline流水线)

Jenkins Pipeline 介绍 要实现在 Jenkins 中的构建工作,可以有多种方式,这里采用比较常用的 Pipeline 这种方式。Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。 Jenkins Pipeline 有几个核心概念: Node:节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境,比如我们之前动态运行的 Jenkins Slave 就是一个 Node 节点 Stage:阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build...阅读全文

博文 2019-08-28 13:34:09 祁恩达

Centos7 Golang访问Oracle环境配置

环境准备 Centos7 Oracle 11g 64bit OCI -> instantclient-basic-linux.x64-11.2.0.4.0.zip OCI SDK -> instantclient-sdk-linux.x64-11.2.0.4.0.zip 1、下载OCI和OCI SDK 百度云盘下载(两个压缩包文件已经合并好了的) 链接: https://pan.baidu.com/s/1mIabBrweV-bd_L1ZsLVZvw 提取码: phhi 官网下载 https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下载下面两文件: instantclient-basic-linux.x64...阅读全文

七牛云存储list列出文件简单demo(php版本和golang演示)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 看到了七牛官网上很多问list这个API如何用?或者说人们看不懂,我用简单的例子或者demo来简单的给大家看看 这个如何用!一个php版本一个golang的简单demo! golang版本 package main import ( "crypto/hmac" "crypto/sha1" "encoding/base64" "fmt" "io/ioutil" "net/http" "strings" ) const ( SK = "D-K57TE5hPe3krexftxLWFKmL2xbQEKA-mtkrUfB" AK = "KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ij...阅读全文

博文 2017-02-09 18:41:21 widuu

php和golang通信,双向管道

新建php文件,保存为proc.php array("pipe", "r"), 1 => array("pipe", "w") ); //创建双向管道 $handle = proc_open( './test_proc', $descriptorspec, $pipes ); //写入管道 fwrite($pipes['0'], "123\n"); //从管道中读取 echo fgets($pipes[1]); 新建go文件,保存为 test_proc.go package main import ( "bufio" "fmt" "os" ) func main() { //从标准输入读取数据 inputReader :...阅读全文

博文 2019-03-24 19:34:43 行走于无形之中

golang tcp 回显服务器示例

golang代码服务器: package main import ( //"io" "log" "net" "time" "fmt" "runtime" ) func main() { runtime.GOMAXPROCS(4)//设置cpu个数 // Listen on TCP port 2000 on all interfaces. l, err := net.Listen("tcp", ":2000") if err != nil { log.Fatal(err) } defer l.Close() for { conn, err := l.Accept() if err != nil { log.Fatal(err) } // Handle the connection in a n...阅读全文

博文 2015-06-17 20:04:06 u011363248

HTML5 websocket实验,后台为golang http包使用

package main import ( "code.google.com/p/go.net/websocket" "fmt" "log" "net/http" "html/template" ) func Echo(ws *websocket.Conn){ var err error for{ fmt.Println("start") var reply string if err = websocket.Message.Receive(ws, &reply); err != nil{ fmt.Println("can't receive") break } fmt.Println("received back from client:"+ reply) msg := "Received...阅读全文

博文 2015-06-17 20:17:25 rufidmx

golang channel 堵塞

情况1、同一个协程中,没有关闭通道( no close(chan)) package main import "fmt" func main() { ch := make(chan int,3) for i:=1; i <= 3; i++ { ch <- i } for data := range ch { fmt.Println("echo data :",data) } } 小结 同步操作 当在一个协程里面,进行通信的话,其实就是同步操作。(这里通信是指的通过channel进行读取和写入操作,前面代码写入通道,后面代码读取操作) 在用for range (或者其他大于通道长度的循环次数),会出现死锁 chan receive deadlock 情况2、同一个协程中,关闭通道(close(...阅读全文

博文 2018-11-13 16:34:45 Tim_SSS

关于go module的使用

在go1.11版本以后go modules成为了go官方的依赖管理方式,替换一起的Godep。使用go modules管理依赖后会在当前的项目根目录下生成go.mod和go.sum. go.mod 在其中记录当前的项目的所有依赖,文件格式如下: module go-demos go 1.13 require github.com/x-mod/routine v1.2.7 或 module go-demos go 1.13 require ( github.com/x-mod/routine v1.2.7 ) replace ( // 针对有些被墙不能下载 可以替换成其他依赖包 golang.org/x/text v0.3.0 => github.com/golang/text v0.3.0 ...阅读全文

博文 2019-12-26 14:32:51 神奇的考拉

Golang vs PHP 之文件服务器

前面的话 作者为golang脑残粉,本篇内容可能会引起phper不适,请慎读! 前两天有同事遇到一个问题,需要一个能支持上传、下载功能的HTTP服务器做一个数据中心。我刚好弄过,于是答应帮他搭一个。 HTTP服务器,首先想到的就是PHP + nginx。于是开撸,先写一个PHP的上传 0) { echo "错误:: " . $_FILES["file"]["error"] . "
"; } else { if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " 文件已经存在。 "; } else...阅读全文

博文 2018-07-18 01:34:47 李嘉的博客

go 入门之环境搭建-Windows

网上有很多关于go的环境配置的文章,都没有说出关键点。对于一个新人来说,请使用IDE,而不是sublime text,vim之类的文本编辑器。当然,当你上手之后,可以随便玩。 笔者这里推荐新人使用 LiteIDE,严格按照下面的目录结构建立文件夹。 E:\go E:\go\go #go.bat文件存放目录,该目录就是GO lang ZIP 压缩包解压缩后的目录,GO 环境核心目录 E:\go\GOPATH #扩展包或下载目录 E:\go\Dev#开发项目存储目录 go.bat 直接采用下面的。 @ECHO OFF IF EXIST %CD%\bin\go.exe ( IF EXIST %systemroot%\system32\setx.exe ( rem 处理器架构 386/amd64/a...阅读全文

博文 2015-09-03 03:00:00 bnbqian

golang 网络框架之 grpc

grpc 是 google 开源的一款网络框架,具有极好的性能,可能是目前性能最好的网络框架,支持流式 rpc,可以很方便地构建消息订阅发布系统,支持几乎所有主流的语言,使用上面也很简单,公司很多服务基于 grpc 框架构建,运行非常稳定 开始之前首先你要知道网络框架为你做了哪些事情: 网络协议序列化与反序列化 网络底层通信 并发管理 以及需要你做哪些事情: 定义通信的内容(通过协议文件) 实现通信的方法(实现协议接口) 以下面两个例子来分别说明两种 rpc 服务的简单用法 下面使用的完整代码下列地址:实现文件:https://github.com/hatlonely/...协议文件:https://github.com/hatlonely/... 简单 echo 服务 要实现的这个服务很简...阅读全文

博文 2018-02-03 22:34:38 hatlonely

MacOS 开发者必备 brew 使用详解

安装 brew brew 的官方网站: http://brew.sh 在官方网站对brew的用法进行了详细的描述 在Mac中打开Termal: 输入命令: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装过程代理 http://www.jianshu.com/p/6523d3eee50d brew 国内代理 中科大镜像 内核core cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin https://mirrors.ustc.ed...阅读全文

博文 2017-11-02 16:04:43 泛原罪

Milestone/umts_sholes/OMAP3430 DSS(Display Sub-System) Go-Through

Milestone/umts_sholes/OMAP3430 DSS(Display Sub-System) Go-Through 前世今生: 为什么又翻出了10年入手的Milestone,费时费力sync 了github 上的代码,编译umts_sholes 工程? 一个关于通过读写 fb0设备节点读写LCD屏的问题,现在高通的解决方案MSM8974/MSM8x26通过读写fb0 设备节点都 不能完成读写LCD屏操作。 完全弄清楚这个问题首先需要理解Tiny6410/Milestone 是如何通过读写fb0 设备节点完成读写LCD 屏的。 印象中 CM7 umts_sholes 采用 2ndboot 启动内核的ROM就是通过写 /dev/graphics/fb0 这个设备节点将2ndboo...阅读全文

博文 2016-02-06 23:00:00 chenqiang0721

Go 和 PHP 根据目标值计算两数之和

文链接:go letcode,作者:三斤和他的喵 php 代码个人原创 两数之和(Two Sum) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。示例: 给定 nums = [2, 7, 11, 15],target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]来源:力扣 简单来说就是给定一个数组,让你找到和为 target 的两个元素的索引。 解题思路 主要有 两种解题思路 : 暴力解法:两层循环,外部循环的当前值与target的差值为内层循环需要定位的值。时间复杂度O(n^2),空间复杂度O(1)。 优雅解法:一层循环,引入map,循环的当前值与target的差值...阅读全文

博文 2020-04-16 11:33:04 hxd_

介绍 Echoo: go 语言编写的 echo 服务器

文地址 简介 最近由于要配置 nginx 服务器,里面有个代理转发(proxy_pass)的功能,能够将当前服务器接收到的请求转发给其他服务器来处理。 但是在配置当中,我发现我无法确认我的 proxy_pass 是否生效,网上现成的 echo 服务又不怎么满足我的要求,所以就决定自己写一个 echo 服务器,用 Golang。 代码 代码在这里 echo 具体的代码就不做详细介绍了,也就是用到了 Golang 的 http 库,提供了一个 web 服务器和一个 websocket 服务器,使用 logrus 作为日志库,原生的 template 作为模版库。 使用 该工具为命令行工具,只能够在命令行中启动 启动过后,工具会在命令行中输出当前 web 服务器的地址,可以使用浏览器访问 该工具有...阅读全文

博文 2018-05-17 09:34:38 Aiello_Chan

proto3 生成的文件 包含 const _ = proto.ProtoPackageIsVersion2

(1)检查protoc版本 protoc --version libprotoc 3.7.0 看看版本是不是3.x.x以上 如果是的,那么多半是protoc-gen-go 没升级 linux下 来取最新的 github.com/golang/protobuf go get github.com/golang/protobuf echo $GOPATH cd $GOPATH/github.com/golang/protobuf/protoc-gen-go go build 然后把生成的二进制文件 protoc-gen-go 拷贝到protoc 所在目录下 或者把protoc-gen-go 所在目录加入到环境变量中 查看protoc所在目录 which proto...阅读全文

博文 2019-04-03 13:34:39 西瓜啊贝贝

Grpc — 整体性能测试

当然最最最重要的就是性能,在使用RPC的场景下对于多个程序通讯完成业务所消耗的性能是有巨大挑战的,笔者也做了一套完整的性能测试大家可以继续往下看。 附上: 喵了个咪的博客:w-blog.cn 博文实例demo:GitHub - sunmi-OS/grpc-php-to-golang-demo grpc官网:grpc / grpc.io protobuf代码仓库:Releases · protocolbuffers/protobuf · GitHub 一,服务器配置 E5 - 2680V2 * 4 8G ddr3 1600Mhz ab工具压测 分别对以下两种场景进行测试: GO -> (Grpc) -> GO PHP -> (Grpc) -> GO GO -> (HTTP) -> GO PHP...阅读全文

博文 2020-02-28 21:33:26 文振熙

golang cli 应用

golang cli 应用封装 命令行应用,基本调用封装、参数获取 go get github.com/ctfang/command 基础使用 代码在 go get github.com/ctfang/command/examples/main.go package main import ( "github.com/ctfang/command" "log" ) func main() { app := command.New() app.AddCommand(Echo{}) app.AddCommand(Hello{}) app.Run() } // Echo 需要实现接口 CommandInterface type Echo struct { } func (Echo) Configu...阅读全文

博文 2019-03-26 13:34:40 明月有色

gogs详细配置

sudo apt-get update sudo apt-get upgrade sudo adduser git //创建用户 密码 ******* su git//切换到git用户 cd ~ //进入用户git根目录 sudo apt-get install git //安装git git --version //检查git是否安装成功 sudo apt-get install mysql-server //安装mysql数据库 账户:root 密码:******** mysql --version //检查mysql版本判断是否安装成功 //创建数据gogs mysql -u root -p mysql> SET GLOBAL storage_engine = 'InnoDB'; my...阅读全文

博文 2016-09-05 16:00:01 zhuiluoyu

go-get利用socks5代理安装package

掌握了科学上网的技术后,利用go get还是有很多golang的包无法下载,下面介绍一种go get科学上网的方法。 写一个goget.bat的脚本,放到环境变量中,内容如下: @echo off set http_proxy=socks5://127.0.0.1:1080 #shadowsocks的实际地址 set https_proxy=socks5://127.0.0.1:1080 go get -u -v %* echo ... pause 然后就可以自由的go get了...阅读全文

博文 2019-05-14 21:34:58 北二条

GOPATH 是用来干嘛的?

GOPATH 是 Go 语言的工作目录,他的值可以是一个目录路径,也可以是多个目录路径,每个目录都代表 go 语言的一个工作区。 我们开发 Golang 项目时,需要依赖一些别的代码包,这些包的存放路径就与 GOPATH 有关。 在 v1.11 版本之前,所有的代码包都要放到 $GOPATH/src 目录下,那个时候 go 官方还没有支持依赖管理,包括我们自己项目的代码,依赖的代码包,都被放到这个路径下,十分混乱,不利于管理。 而在 v1.11 之后,官方终于支持了包管理,除了能够自动下载依赖包,项目也不再需要放到 $GOPATH/src 下了,项目中会维护一个 go.mod 的文件记录依赖包及其版本,所有依赖的代码包都被放到了 $GOPATH/pkg/mod 下了,src 目录不复存在。 ...阅读全文

博文 2019-06-10 20:32:39 痕迹绝陌路

面面观 | 使用alpinelinux 构建 golang http 启动了,才15mb

1,关于alpine 环境 昨天研究了下golang的http服务器。 发现在启动的时候报错: No such file or directory 新智云www.enncloud.cn发现这个错误,开始还以为是alpine 的系统lib库少了, 必须使用Docker 官方的golang镜像呢。 后来研究明白了,其实是因为我的宿主是centos。 我在centos 上编译了 golang,然后拷贝到alpine 环境上造成的。 解决办法。 1,使用golang:alpine 镜像 241 mb 进行编译,映射一个文件夹。 2,然后把编译好的文件拷贝出来,放到alpine的镜像上即可。 这样一个15.24 MB golang 环境就好了。 因为还安装了一个 bash ,可以进入系统查看。 2,操...阅读全文

博文 2017-06-10 00:00:02 zz1driver

求一段powershell 改GO

~~~ 求助下以下powershell代码 如何用到go 操作WMI上呢, 希望好心人帮助下,想用go操作wmi执行下面翻译代码 一天一夜了各种调试没解决, 估计翻译下面WMI的 代码量估计不多 所以如果你巧合玩过GO WMI原理的 希望帮助下 谢谢! $base = gwmi -n root\wmi -cl testData $sid = $base.AddSession("test_Init") $session = gwmi -n root\wmi -q "select * from test where SessionId=$($sid.SessionId)" $output = $session.GetValue("data/yu").value echo "$...阅读全文

Go 语言学习笔记 1 (安装开发环境)

本文只针对Ubuntu系统开发环境的搭建进行学习。 本文工作操作系统为ubuntu12.12. 第一步,安装Go工具链: root@tangle-VirtualBox:/home/tangle# sudo apt-get install bison ed gawk gcc libc6-dev make Reading package lists... Done Building dependency tree Reading state information... Done ed is already the newest version. gcc is already the newest version. libc6-dev is already the newest version....阅读全文

博文 2015-06-17 23:01:26 at28997146

stdout log日志实时高亮显示

开发调试stdout log日志实时高亮显示 高亮显示 其实就是把特定的关键词搜索出来替换为 ANSI escape code 正则替换, perl -pe 's/;/;/g' egrep 关键词替换 egrep "fatal|error|warning|info|debug" -A10 -B10 --color=auto perl 的方式可以指定不同的关键词不同的颜色,egrep 自定义颜色估计很麻烦。 配合linux管道 实际测试 创建一个文本文件 vim test.txt输入如下内容: error xxxx bbb wr fatal info debug dkjk info error warning info info perl -pe 正...阅读全文

博文 2018-06-07 18:34:39 Fish

Golang Echo数据绑定中time.Time类型绑定失败

1、首先看官方绑定,time.Time将绑定失败 func(c echo.Context) (err error) { u := new(User) if err = c.Bind(u); err != nil { return } return c.JSON(http.StatusOK, u) } 2、自定义绑定 加入Struct类型判断: image.png 直接添加选项 case reflect.Struct: //时间类型 var t time.Time var err error val = strings.Replace(val, " 00:00:00", "", -1) if IsValidDate(val) { //判断日期格式 t, err = ParseDate(val)...阅读全文

博文 2018-08-03 17:34:48 承诺一时的华丽

VSCode-swift

People lack the willpower , rather than strength. 参考 配置说明 sourcekite安装使用 swiftenv安装使用 1.安装swiftenv swiftenv 是 Swift 的版本管理器,此处,我们以macos为例: check out swiftenv git clone https://github.com/kylef/swiftenv.git ~/.swiftenv configure environment echo 'export SWIFTENV_ROOT="$HOME/.swiftenv"' >> ~/.bash_profile echo 'export PATH="$SWIFTENV_ROOT/bin:$PATH"' ...阅读全文

博文 2017-09-02 18:34:54 Eric_Ingram

Golang服务器热重启 - 基于Shutdown和Supervisor

所谓 热重启, 就是当关闭一个正在运行的进程时,该进程并不会立即停止,而是会等待所有当前逻辑继续执行完毕,才会中断。这就要求我们的服务需要支持一条重启命令,通过该命令我们可以重启服务,并同时保证重启过程中正在执行的逻辑不会中断,且重启后可以继续正常服务。 在go 1.8.x后,golang在http.Server里加入了Shutdown方法,用来控制优雅退出。什么是优雅退出? 简单说就是不处理新请求,但是会处理正在进行的请求,把旧请求都处理完再退出。 我的项目更新代码流程为:使用http.server.Shutdown停机,Supervisor守护进程进行更新后的重启,shell脚本执行编译、copy到远程,重启Supervisor。在此记录以备日后查阅。 一、版本要求 Centos 7.0...阅读全文

博文 2020-05-26 17:32:51 Avery_up

golang在win下交叉编译

1、安装 必须安装Git 和 MinGW 2、设定环境变量 系统path变量 添加C:\MinGW\bin;C:\Program Files\Git\bin; 3、执行批处理 将以下存放在install.bat 放于 go\src下运行 rm -rf ../bin ../pkg set CGO_ENABLED=0 set GOARCH=386 set GOOS=windows call make.bat --no-clean set GOOS=linux call make.bat --no-clean go get github.com/nsf/gocode pause 4、执行go编译 下面是编译一个linux下运行的 @echo off set GOPATH=%CD% echo bui...阅读全文

博文 2015-12-12 01:00:10 yoie01

KubeEdge分析-beehive

beehive是kubeedge中的一个通信框架,整个kubeEdge的cloud和edge模块都依赖于beehive框架。 不弄清楚beehive的工作原理,就很难分析kubeEdge整体的逻辑。 目录结构 ├── pkg │ ├── common │ │ ├── config │ │ │ ├── config.go │ │ │ └── config_test.go │ │ └── util │ │ ├── conn.go │ │ ├── conn_test.go │ │ ├── file_util.go │ │ └── parse_resource.go │ └── core │ ├── context │ │ ├── context.go │ │ ├── context_channel...阅读全文

博文 2020-05-15 14:35:39 left_0317

PDO批量并发执行SSH工具介绍

批量并发执行工具PDO,主要是解决批量执行的繁锁,更安全便捷的操作工具. 本身是解决公司内部的一些问题,并且有很多特定环境的一些使用,现在抽离出其中都可以使用的部分. 工具名称: pdo(parallel do something) https://github.com/ohlinux/pdo 安装 依赖 需要有一个中控机与被管理机器建立了无密码的密钥关系. 需要有go语言的环境,进行编译安装.这里没有提供bin文件. 自己所测试的环境有,centos macos. 编译 先获取依赖的第三方库: go get github.com/cihub/seelog go get github.com/robfig/config 安装go 环境. go build pdo.go 配置文件目录,默认在~...阅读全文

博文 2017-02-09 13:27:42 Ajian

Go语言:crypto/ssh执行远程命令

前言 远程执行命令有什么用?为什么要远程执行命令? 如果你只有2,3台服务器需要管理的时候,远程执行命令确实没有没多大作用,你可以登录到每台服务器上去完成各种操作。 当你的服务器大于3台的时候,远程执行的命令的方式就可以大大提高你的生产力了。 如果你有一个可以远程执行命令的工具,那么就可以像操作单台机器那样操作多台机器,机器越多,效率提高的越多。 远程执行命令最常用的方法就是利用 SSH 协议,将命令发送到远程机器上执行,并获取返回结果。 代码 连接包含了认证,可以使用 password 或者 sshkey 2种方式来认证。下面的示例为了简单,使用了密码认证的方式来完成连接。 package main import ( "fmt" "github.com/mitchellh/go-homed...阅读全文

博文 2019-05-21 19:34:38 trytv

「golang」Linux echo命令3种实现

1: // Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan. // License: https://creativecommons.org/licenses/by-nc-sa/4.0/ package main import ( "fmt" "os" ) func main() { var s, sep string for i := 1; i < len(os.Args); i++ { s += sep + os.Args[i] sep = " " } fmt.Println(s) } 2: package main import ( "fmt" "os" ) func main() { s, sep := "", "" ...阅读全文

博文 2019-05-15 03:34:52 王诗翔

windows系统下VSCode设置golang run *.go

windows系统下,golang运行代码文件不能实现go run *.go,经过查看vscode和批处理命令,终于实现windows系统下vscode可运行go run *.go。具体步骤如下:1.在源码文件夹下建立批处理文件run.bat,内容如下:@echo offset ff=go runfor %%f in (*.go) do set ff=!ff! %%fcall %ff%2.设置vscode用户区配置文件,.vscode文件夹下tasks.json文件,内容如下:{ "version": "0.1.0", "windows":{ "command": "cmd.exe", "isShellCommand": true, "showOutput": "always", //单一g...阅读全文

博文 2017-09-29 23:04:55 了无痕150

docker entrypoint入口文件详解

参考https://www.cnblogs.com/breezey/p/8812197.html 在编写Dockerfile的时候,包含一个entrypoint配置,该配置的作用是在容器启动之前做一些初始化配置,或者一些自定义的配置等。通常是一个脚本,然后在脚本里配置相关预定义项。这篇文档就详细说一说entrypoint入口文件的编写技巧。 下面以mysql官方镜像中的entrypoint文件docker-entrypoint.sh为例,文件地址为: docker-entrypoint.sh set -e 你写的每个脚本都应该在文件开头加上set -e, 这句语句告诉bash如果任何语句的执行结果不是true则应该退出. 这样的好处是防止错误像滚雪球般变大导致一个致命的错误, 而这些错误本应...阅读全文

博文 2018-11-14 14:34:43 老鼠AI大米

对 echo 框架进行统一的自定义错误处理

借助移动端的增长,如今 RESTful 风格的 API 已经十分流行,用各种语言去写后端 API 都有很成熟方便的方案,用 golang 写后端 API 更是生产力的代表,你可以用不输 python/ruby 这类动态语言的速度,写出性能高出一两个数量级的后端 API 。 ECHO 框架 由于 golang 的标准库在网络方面已经很完善,导致框架发挥余地不大。很多高手都说,用什么框架,用标准库就写好了,框架只是语法糖而已,还会限制项目的发展。 不过我们并不是高手,语法糖也是糖,用一个趁手的框架还是能提高不少效率的。 要是在半年前,你让我推荐框架,我会说有很多,都各有优缺点,除了 beego 随便选一个就可以。但是来到2017年,一个叫 Echo 的框架脱颖而出。这是我目前最推荐的框架。 Ec...阅读全文

博文 2017-04-11 09:00:58 Muninn

Go 和 PHP 基于一组数计算盛最多水的容器

文链接:go letcode,作者:三斤和他的喵 PHP 代码个人原创 盛最多水的容器(Container-With-Most-Water) 题干如下: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49来源:力扣 根据题意,将题目抽象为数学模型:给定一个 数组a...阅读全文

博文 2020-04-16 11:33:03 hxd_

windows下cmd中怎样打印颜色?

转到windows发现这真是个满身问题的系统,对颜色的支持也不是很好。 在 .cmd 文件中输入 ``` echo Cyan ``` 然后cmd中执行该文件是可以正常输出青色的,但是搞了很久不知道怎么在go中输出颜色。感觉是转译的问题,不是很懂。 如果不能输出颜色,下载该文件: https://gist.githubusercontent.com/mlocati/fdabcaeb8071d5c75a2d51712db24011/raw/b710612d6320df7e146508094e84b92b34c77d48/win10colors.cmd 问题还是怎样在 windows cmd 中输出颜色,试过 fatih/color 但是感觉有些 ...阅读全文

Emacs with Golang with Flymake with Goscript .emacs settings

It's kinda late. So I make it quick: How to setup an emacs with syntax check when you write golang script. In linux of course. (require 'go-mode-load) (require 'flymake) (autoload 'flymake-find-file-hook "flymake" "" t) (add-hook 'find-file-hook 'flymake-find-file-hook) (setq flymake-gui-warnings-enabled nil) (setq flymake-log-level 0) (defun flyma...阅读全文

博文 2015-06-17 20:00:57 DelphiNew

dapr实战(2):使用go和java来实现dapr 官方的Hello world和对其过程的研究

引言 在前面上一次的实战中,我们搭建了dapr的本地开发环境,并且部署了dapr官方的Hello World示例代码,为了加深对Dapr的理解,在本文中使用go 和 java语言重写Dapr的官方示例代码 Dapr的官方示例代码Hello World的分析 dapr示例 在服务端中提供了三个对Order的处理逻辑:增加订单,查询订单和删除订单,这三个业务处理都是以REST的方式对外提供服务,而这三个业务处理都会通过Dapr Runtime与Redis交互来完成数据的存放,读取和删除;而python所开发的客户端,周期的通过Dapr Runtime去调用服务端的增加订单的接口 官方示例代码重新实现 服务端的代码分为两个部分:提供的REST服务 和 访问Redis,后面将对这两个部分进行分析 使...阅读全文

博文 2020-06-02 07:32:45 narry