1 Star 0 Fork 0

坐公交也用券/SSH守护

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
com.liumou.ssh.go 2.74 KB
一键复制 编辑 原始数据 按行查看 历史
package main
import (
"flag"
"fmt"
"gitee.com/liumou_site/logger"
"gitee.com/liumou_site/ssh-guardian/model"
)
// main 函数是程序的入口点,负责解析命令行参数并启动 SSH 检测和备份任务。
// 该函数定义了四个命令行参数:
// - source: SSH 源路径,默认值为 "/usr/local/openssh"。
// - backup: SSH 备份路径,默认值为 "/usr/local/.ssh"。
// - port: SSH 端口,默认值为 22。
// - sec: 检测间隔时间(秒),默认值为 180。
//
// 函数会持续运行,定期执行 SSH 检测和备份任务,并在每次任务执行后休眠指定的时间间隔。
func main() {
// 增加程序作用描述
flag.Usage = func() {
fmt.Println("CLS is a tool for detecting and backing up SSH.")
fmt.Println("这是一个用于检测和备份 SSH 的工具,能够在服务异常时自动恢复")
fmt.Println("HomeUrl: https://github.com/liumou-site/ssh-guardian")
fmt.Println("Usage: cls [options]")
fmt.Println("Options:")
flag.PrintDefaults()
}
// 定义命令行参数并设置默认值
sourcePath := flag.String("source", "/usr/local/openssh", "SSH from path")
backupPath := flag.String("backup", "/usr/local/.ssh", "SSH Backup Path")
port := flag.Int("port", 22, "SSH port")
sec := flag.Int("sec", 180, "Set detection interval time (seconds)")
init := flag.Bool("init", false, "initial configuration")
debug := flag.Bool("debug", false, "Debug mode")
ver := flag.Bool("ver", false, "version")
china := flag.Bool("china", false, "Chinese")
conf := flag.Bool("conf", true, "不使用配置文件参数(传入此参数则使用传参获取配置,否则使用配置文件设置的参数)")
// 解析命令行参数
flag.Parse()
if *ver {
logger.Info("version:", model.Version)
return
}
if *china {
logger.Info("SSH源路径:", *sourcePath)
logger.Info("SSH备份路径:", *backupPath)
if *conf {
logger.Info("使用配置文件参数")
} else {
logger.Info("使用命令参数")
}
} else {
logger.Info("SSH from path:", *sourcePath)
logger.Info("SSH Backup Path:", *backupPath)
if *conf {
logger.Info("Use configuration file parameters")
} else {
logger.Info("Use command parameters")
}
}
if *init {
// 初始化配置,执行完成后退出程序,退出代码为0
model.InitConfig(*sourcePath, *backupPath, *port, *sec, *china)
}
// 检查当前环境是否为Linux,如果不是,可能会影响后续操作。
model.CheckLinuxEnvironment()
// 检查当前进程是否具有root权限,如果不是,可能会影响后续操作。
model.CheckRootPermission()
// 检查当前系统是否支持systemd,如果不支持则记录错误并返回。
model.CheckSystemd()
model.Start(*sourcePath, *backupPath, *port, *sec, *debug, *china, *conf, *init)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/liumou_site/ssh-guardian.git
git@gitee.com:liumou_site/ssh-guardian.git
liumou_site
ssh-guardian
SSH守护
master

搜索帮助