#include "HostStatusPlugin.h" #include "ISmsTransceiver.h" #include "Sms.h" #include "Util.h" #include #include #include using namespace std; HostStatusPlugin::HostStatusPlugin() : Plugin("hoststatus", "returns an sms with host server status") { } string ParseMemory(string mem) { stringstream out; vector lines = Util::str_split(mem,"\n"); vector line2 = Util::str_split( lines[1] ); vector line3 = Util::str_split( lines[2] ); out << "Mem." << endl; out << "Applications: " << line3[2] << "mb\n" ; out << "Buffers: " << line2[5] << "mb\n" ; out << "Cache: " << line2[6] << "mb\n"; out << "Free: " << line2[3] << "mb\n\n"; return out.str(); } void HostStatusPlugin::Execute(ISmsTransceiver& modem, SMS& sms) { string message; string out; Util::my_system("hostname", &out); message += out; Util::my_system("uptime", &out); message += out; Util::my_system("free -m",&out); message += ParseMemory(out); Util::my_system("df -h | grep dev | awk '{ print $6 \" \" $5}'", &out); message += out; modem.SendSms(sms.GetSender(), message, true); }