gcs

package module
v1.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2023 License: Apache-2.0 Imports: 10 Imported by: 3

README

gcs

介绍

使用Golang编写的系统命令执行模块,实现类似Python3os.shellSystemsubprocess.getstatusoutputsubprocess.getoutput

安装教程

执行下面的命令

go get -u gitee.com/liumou_site/gcs

效果如下

PS D:\data\git\Go\glbm> go  get -u gitee.com/liumou_site/gcs   
go: downloading gitee.com/liumou_site/gcs v1.1.0
go: downloading golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
go: added gitee.com/liumou_site/gcs v1.1.0
PS D:\data\git\Go\glbm> 

使用说明

package main

import (
	"fmt"
	"strings"
	"gitee.com/liumou_site/gcs"
	"gitee.com/liumou_site/logger"
)

// RunShell 测试命令执行
func RunShell() {
	// 执行成功
	cc := gcs.ShellInit(false)
	c := strings.Split("ls /home/liumou@ls /home/lll@dir", "@")
	for _, s := range c {
		err := cc.RunShell(s)
		if err == nil {
			logger.Info("执行成功")
		} else {
			logger.Error("执行失败")
		}
	}
}

// RunErrOut 测试命令执行
func RunErrOut() {
	// 执行成功
	cc := gcs.ShellInit(false)
	c := strings.Split("ls /home/liumou@ls /home/lll@lw /home/@ls -la", "@")
	for _, s := range c {
		err, out := cc.RunErrOut(s)
		if err == nil {
			logger.Info("执行成功")
		} else {
			logger.Error("执行失败")
		}
		fmt.Println(out)
	}
}

// TestSudo 测试sudo
func TestSudo() {
	// 实例化构造函数
	sudo := gcs.SudoInit("Gxxc@123", true)
	// 开启调试信息
	sudo.prints = true
	// 执行sudo命令(此时会使用第一步传入的密码作为sudo密码去生成命令并执行)
	// 如果已经是root权限,则直接执行当前命令
	res := sudo.RunError("apt install -y vsftpd")
	if res == nil {
		logger.Info("安装成功")
	} else {
		logger.Error("安装失败")
	}
}

func TestShellSudo() {
	// 实例化构造函数
	sudo := gcs.SudoInit("1", true)
	// 开启调试信息
	sudo.prints = true
	// 执行sudo命令(此时会使用第一步传入的密码作为sudo密码去生成命令并执行)
	// 如果已经是root权限,则直接执行当前命令
	res, err := sudo.RunOutError("rm -f /ttss")
	if err == nil {
		logger.Info("删除成功")
	} else {
		logger.Error("删除失败")
		fmt.Println(res)
	}
}
func main() {
	RunShell()
	RunErrOut()
	TestSudo()
	TestShellSudo()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckCmd

func CheckCmd(cmd string) bool

CheckCmd 检查命令是否存在

func GetUserInfo

func GetUserInfo(display bool) (ok bool, username string, userid int, UserHome string)

GetUserInfo 获取用户名,用户uid,用户家目录

func Version

func Version()

Types

type ShellConfig added in v1.2.0

type ShellConfig struct {
	OsType string // 系统类型
	// contains filtered or unexported fields
}

ShellConfig 定义命令的结构体

func ShellInit

func ShellInit(realtime bool) *ShellConfig

ShellInit 命令实例构造函数 realtime 是否开启实时打印数据

func (*ShellConfig) RunErrOut added in v1.4.2

func (shells *ShellConfig) RunErrOut(cmd string) (err error, out string)

RunErrOut 执行命令并获取输出数据, 返回执行错误(error)及 命令输出 (字符串)

func (*ShellConfig) RunShell added in v1.4.2

func (shells *ShellConfig) RunShell(command string) error

RunShell 执行命令并获取执行结果, 返回错误(error)

func (*ShellConfig) RunSystem added in v1.4.2

func (shells *ShellConfig) RunSystem(command string) (code int)

RunSystem 执行命令并实时获取输出,和Python的os.system函数一样,返回退出代码

type SudoConfig added in v1.4.0

type SudoConfig struct {
	SudoPath  string // sudo命令绝对路径
	ShellFile string // 生成的Shell脚本

	OsType string // 系统类型
	// contains filtered or unexported fields
}

SudoConfig 定义命令的结构体

func SudoInit added in v1.4.0

func SudoInit(password string, realtime bool) *SudoConfig

SudoInit 命令实例构造函数, 当不需要执行sudo命令的时候直接传入任意字符串给password即可 realtime 是否开启实时打印数据

func (*SudoConfig) RunBool added in v1.4.2

func (sudo *SudoConfig) RunBool(command string) (status bool)

RunBool 执行命令并获取执行结果, 返回执行退出码和错误

func (*SudoConfig) RunCode added in v1.4.2

func (sudo *SudoConfig) RunCode(command string) (code int, err error)

RunCode 执行命令并获取执行结果, 返回执行退出码和错误

func (*SudoConfig) RunError added in v1.4.2

func (sudo *SudoConfig) RunError(command string) (err error)

RunError 执行命令并获取执行结果, 返回执行结果(成功/失败)

func (*SudoConfig) RunOutError added in v1.4.2

func (sudo *SudoConfig) RunOutError(cmd string) (out string, err error)

RunOutError 通过Sudo权限执行命令并获取输出数据, 返回命令输出(字符串)及错误

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL