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 中使用
24KB
512 行
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
文档。如果您有任何不清楚的地方,请随意在 仓库 上提交问题。
用法
将crate spurs
添加到您的 Cargo.toml
依赖项。
需要稳定的Rust 1.32或更高版本。
许可证
许可协议为以下之一
- Apache许可证,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的要求。
依赖项
~7–16MB
~194K SLoC