با سلام به تمامی دوستان
دوستان من با سی شارپ یه کدی نوشتم که با استفاده از کتابخانه ssh.net به لینوکس که مجازی سازی کردم
وصل میشم تا اینجا مشکلی نیست مشکل تو اجرا کردن بعضی دستورات هستش مثلآ:
top یا top -n 1 یا atop دلیلش هم اینکه این دستورات حالت interactive هستن و تو خروجی برنامه من نمی یان
توجه : من تو لینوکس کد نمی نویسم تو ویندوز دارم کد می نویسم و فقط میخوام با ssh یه سری دستور رو تو لینوکس اجرا کنم.
نکته : من زمانی که برنامه رو دیباگ میکنم از دستور top این ارور رو به من میده
error:TERM environment variable not set.
من کد برنامه رو اینجا میزارم :
private void button2_Click(object sender, EventArgs e)
{
Renci.SshNet.SshClient sshClient = new Renci.SshNet.SshClient("192.168.150.128", "ust", "10");
sshClient.Connect();
var command = sshClient.RunCommand("top");
var line = command.Result.Split('\n');
List<ServerStatusCpu> serverstatus = new List<ServerStatusCpu>();
for (int i = 3; i < line.Length - 1; i++)
{
var li = line[i];
var words = li.Split(' ');
List<string> fillterwords = new List<string>();
foreach (var w in words)
{
if (w != "")
{
fillterwords.Add(w);
}
}
ServerStatusCpu serverStatus = new ServerStatusCpu();
serverStatus.Time = fillterwords[0];
serverStatus.TimeType = fillterwords[1];
serverStatus.Name = fillterwords[2];
serverStatus.UserCpuTime = float.Parse(fillterwords[3].Replace("%", ""));
serverStatus.UserNiceCpuTime = float.Parse(fillterwords[4].Replace("%", ""));
serverStatus.SystemCpuTime = float.Parse(fillterwords[5].Replace("%", ""));
serverStatus.IoWaitCpuTime = float.Parse(fillterwords[6].Replace("%", ""));
serverStatus.IrqCpuTime = float.Parse(fillterwords[7].Replace("%", ""));
serverStatus.SoftwareIrqCpuTime = float.Parse(fillterwords[8].Replace("%", ""));
serverStatus.StealCpuTime = float.Parse(fillterwords[9].Replace("%", ""));
serverStatus.GuestCpuTime = float.Parse(fillterwords[10].Replace("%", ""));
serverStatus.IdleCpuTime = float.Parse(fillterwords[11].Replace("%", ""));
serverstatus.Add(serverStatus);
}
dataGridView1.DataSource = serverstatus;
}
class ServerStatusCpu
public class ServerStatusCpu
{
public string Time { get; set; }
public string TimeType { get; set; }
public string Name { get; set; }
public float UserCpuTime { get; set; }
public float SystemCpuTime { get; set; }
public float UserNiceCpuTime { get; set; }
public float IdleCpuTime { get; set; }
public float IoWaitCpuTime { get; set; }
public float IrqCpuTime { get; set; }
public float SoftwareIrqCpuTime { get; set; }
public float StealCpuTime { get; set; }
public float GuestCpuTime { get; set; }
}