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 在 科学
51KB
1K SLoC
spurs
和 spurs-util
用于远程设置和运行实验的实用程序。
spurs 受 spur.py 启发很大,但它也包含了一些我发现很有用的实用程序。我会定期添加更多,或者当我找到有用的时,或者当人们提交 PR 时。
功能
此仓库包含两个 crate
-
spurs
: 通过 SSH 远程运行命令的直接、类型化的、惯用接口,类似于spur.py
。 -
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或更高版本。
许可协议
许可协议为以下之一:
- Apache License,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可协议(LICENSE-MIT或http://opensource.org/licenses/MIT)
由您选择。
依赖项
约6-15MB
约192K SLoC