#ssh #remote #experimentation #setting-up #spur-py

spurs

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

18次发布

0.9.2 2021年11月17日
0.9.1 2020年9月11日
0.9.0 2020年6月21日
0.8.2 2020年1月21日
0.1.3 2018年11月5日

#361 in 科学

每月46次下载
spurs-util 中使用

MIT/Apache

24KB
512

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 文档。如果您有任何不清楚的地方,请随意在 仓库 上提交问题。

用法

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

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

许可证

许可协议为以下之一

根据您的要求。

依赖项

~7–16MB
~194K SLoC