java执行linux命令-向zabbix传消息

来源:互联网 发布:电脑办公软件价格 编辑:程序博客网 时间:2024/06/09 18:40
package zabbix.sendMassage;



import java.io.InputStreamReader;
import java.io.LineNumberReader;

/**
 * java在linux环境下执行linux命令,然后返回命令返回值。
 * @author serina
 */
public class SendMassage {

    public static Object exec(String cmd) {
        try {
            String[] cmdA = { "/bin/sh", "-c", cmd };
            Process process = Runtime.getRuntime().exec(cmdA);
            LineNumberReader br = new LineNumberReader(new InputStreamReader(
                    process.getInputStream()));
            StringBuffer sb = new StringBuffer();
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
                sb.append(line).append("\n");
            }
            return sb.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String pwdString = exec("pwd").toString();
        String sendString = exec("zabbix_sender -vv -z 192.168.163.198 -s 'Test1' -k testtest -o 123456").toString();

        System.out.println("==========获得值=============");
        System.out.println(pwdString);
        System.out.println(sendString);
    }

}




执行结果:

/home/wangjinjin/code/workspace/zabbix
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000037"
sent: 1; skipped: 0; total: 1
==========获得值=============
/home/wangjinjin/code/workspace/zabbix

info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000037"
sent: 1; skipped: 0; total: 1

0 0