我正在制作一个脚本,以通过ssh访问一堆机器并运行df -h
命令以检查其磁盘使用率是否接近100%,我的问题是我无法在机器,当我运行命令时,无法将其发送到用于连接的机器中的文件中。
我已经尝试过了
df -h > /dir/file
但这只是在我连接的机器上创建一个文件。 我将如何去做自己想做的事情?
我用来执行此操作的完整代码是
expect <<-EOF
spawn ssh -oPort=23 x.x.x.x df -h > /home/file
expect "*password: " {send "password\r"}
expect "*#" {send "exit\r"}
EOF
感谢您的帮助。
答案 0 :(得分:1)
赞:
UseDataAnnotations obj = new UseDataAnnotations();
obj.Name = null;
var context = new ValidationContext(obj, null, null);
var result = new List<ValidationResult>();
// pass the result here as the argument to fill it up with the erros.
bool IsValid = Validator.TryValidateObject(obj, context, result, true);
Console.WriteLine(IsValid);
foreach(var x in result)
{
Console.WriteLine(x.ErrorMessage);
}
答案 1 :(得分:1)
将重定向移动到heredoc的开头:
expect <<-EOF > /home/file
spawn ssh -oPort=23 x.x.x.x df -h
expect "*password: " {send "root\r"}
expect "*#" {send "exit\r"}
EOF
(未经测试)