#ssh #remote #experimentation #setting-up #utilities #user-group #spur-py

spurs-util

用于远程设置和运行实验的实用程序

6 个版本

0.3.1 2021年11月17日
0.3.0 2020年6月21日
0.2.2 2019年11月13日
0.1.0 2019年6月17日

#769科学

MIT/Apache

51KB
1K SLoC

spursspurs-util

Build

spurs: 最新版本 文档

spurs-util: 最新版本 文档

用于远程设置和运行实验的实用程序。

spurs 受 spur.py 启发很大,但它也包含了一些我发现很有用的实用程序。我会定期添加更多,或者当我找到有用的时,或者当人们提交 PR 时。

功能

此仓库包含两个 crate

  1. spurs: 通过 SSH 远程运行命令的直接、类型化的、惯用接口,类似于 spur.py

  2. spurs-util: 通用 Linux 管理操作的实用程序,例如将用户添加到组中或打开交换设备或安装软件包。这绝对不是此类函数的完整集合。到目前为止,它只包括我遇到的一些。请随意提交 PR 添加更多。

免责声明

虽然我打算遵循 semver 进行 API,但我不能保证 stdout 或 stderr 输出格式。不应该尝试解析 spurs 生成的 stdout/stderr 输出。

示例

use spurs::{cmd, ssh::{SshShell, Execute}};

const FOO: &str = "foo";
const HOST: &str = "1.2.3.4:22";
const USER: &str = "user";

// Create an SSH connection with host.
// (host doesn't have to be a `&str`; it can be any `ToSocketAddrs` type)
let shell = SshShell::with_default_key(USER, HOST)?;

// Run some commands on HOST as USER.

// ps -e | grep foo
shell.run(cmd!("ps -e | grep {}", FOO).use_bash())?;

// cd /home/user ; ls -a | grep user
shell.run(cmd!("ls -a | grep user").cwd("/home/user/").use_bash())?;

// sudo yum install -y qemu-kvm
shell.run(spurs::centos::yum_install(&["qemu-kvm"]))?;

还可以

  • 在另一个线程中运行命令,稍后等待该线程
  • 捕获 stdout 和 stderr
  • 允许命令失败

如需更多信息,请参阅spurs文档spurs-util文档。如果任何内容不清楚,请在仓库上提交一个issue。

使用方法

将crate spurs 添加到您的 Cargo.toml 依赖项中。

需要稳定版Rust 1.32或更高版本。

许可协议

许可协议为以下之一:

由您选择。

依赖项

约6-15MB
约192K SLoC