diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ce5fd05 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/Oracle/target +/Oracle/*.log diff --git a/Oracle/.classpath b/Oracle/.classpath new file mode 100644 index 0000000..206ad18 --- /dev/null +++ b/Oracle/.classpath @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Oracle/.project b/Oracle/.project new file mode 100644 index 0000000..3f8f873 --- /dev/null +++ b/Oracle/.project @@ -0,0 +1,23 @@ + + + zabbix + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/Oracle/.settings/org.eclipse.core.resources.prefs b/Oracle/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..f9fe345 --- /dev/null +++ b/Oracle/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/Oracle/.settings/org.eclipse.jdt.core.prefs b/Oracle/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..abec6ca --- /dev/null +++ b/Oracle/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/Oracle/.settings/org.eclipse.m2e.core.prefs b/Oracle/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/Oracle/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/Oracle/lib/ojdbc6.jar b/Oracle/lib/ojdbc6.jar new file mode 100644 index 0000000..767eba7 Binary files /dev/null and b/Oracle/lib/ojdbc6.jar differ diff --git a/Oracle/lib/ojdbc7.jar b/Oracle/lib/ojdbc7.jar new file mode 100644 index 0000000..2077ea3 Binary files /dev/null and b/Oracle/lib/ojdbc7.jar differ diff --git a/Oracle/pom.xml b/Oracle/pom.xml new file mode 100644 index 0000000..6f096e8 --- /dev/null +++ b/Oracle/pom.xml @@ -0,0 +1,118 @@ + + 4.0.0 + + cn.netkiller + zabbix + 0.0.1-SNAPSHOT + jar + + zabbix + http://maven.apache.org + + + UTF-8 + + + + + com.oracle + ojdbc6 + + 11.2.0.3 + + + + junit + junit + 3.8.1 + test + + + + + src + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.6 + + + + true + lib/ + cn.netkiller.zabbix.Oracle + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.10 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 1.4 + + + package + + shade + + + + + cn.netkiller.Oracle + + + + + + + + + org.apache.maven.plugins + maven-install-plugin + 2.5.2 + false + + + install:com.oracle:ojdbc6:11g + validate + + install-file + + + ${project.basedir}/lib/ojdbc6.jar + com.oracle + ojdbc6 + 11.2.0.3 + jar + true + true + + + + + + + + diff --git a/Oracle/src/main/java/cn/netkiller/zabbix/Oracle.java b/Oracle/src/main/java/cn/netkiller/zabbix/Oracle.java new file mode 100644 index 0000000..c4cd41f --- /dev/null +++ b/Oracle/src/main/java/cn/netkiller/zabbix/Oracle.java @@ -0,0 +1,139 @@ +package cn.netkiller.zabbix; + +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.sql.Connection; +import java.sql.SQLException; +import java.sql.Statement; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Properties; +import java.util.logging.*; + +/** + * Hello world! + * + */ + +class LogFormatter extends Formatter { + @Override + public String format(LogRecord record) { + return String.format("%s %s\t%s\r\n", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()), + record.getLevel(), record.getMessage()); + } +} + +public class Oracle { + + String url = null; // 数据库链接地址 + String username = null;// 用户名,系统默认的账户名 + String password = null;// 你安装时选设置的密码 + + Logger log = Logger.getLogger(this.getClass().getName()); + + public Oracle() { + + FileHandler fileHandler = null; + try { + fileHandler = new FileHandler("monitor.%g.log"); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + ConsoleHandler consoleHandler = new ConsoleHandler(); + consoleHandler.setLevel(Level.OFF); + log.addHandler(consoleHandler); + + fileHandler.setLevel(Level.INFO); + this.log.addHandler(fileHandler); + + fileHandler.setFormatter(new LogFormatter()); + this.log.setLevel(Level.INFO); + + } + + public void openConfig() { + String connectionfig = "jdbc.properties"; + Properties properties = new Properties(); + try { + properties.load(new FileInputStream(connectionfig)); + this.url = properties.getProperty("jdbc.url"); + this.username = properties.getProperty("jdbc.username"); + this.password = properties.getProperty("jdbc.password"); + } catch (FileNotFoundException e) { + this.log.info( + e.getMessage() + " Working Directory = " + System.getProperty("user.dir") + "/" + connectionfig); + System.exit(1); + } catch (IOException e) { + this.log.info(e.getMessage()); + System.exit(1); + } + if (this.url == null || this.username == null || this.password == null) { + this.log.info("This Propertie file is invalid"); + System.exit(1); + // throw new Exception(""); + } + + } + + public void testConnection() { + Connection connection = null;// 创建一个数据库连接 + ResultSet result = null;// 创建一个结果集对象 + Statement statement = null; + try { + Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序 + connection = DriverManager.getConnection(this.url, this.username, this.password); + String sql = "select current_date from dual"; + statement = connection.createStatement(); + result = statement.executeQuery(sql); + if (result.next()) { + this.log.info(String.format("%s %s", result.getDate(1), result.getTime(1))); + System.out.println(1); + } else { + System.out.println(0); + } + + } catch (ClassNotFoundException e) { + log.info(e.getMessage()); + System.exit(1); + } catch (SQLException e) { + log.info(e.getMessage()); + System.exit(1); + } finally { + try { + if (result != null) { + result.close(); + } + if (statement != null) { + statement.close(); + } + if (connection != null) { + connection.close(); + } + } catch (Exception e) { + this.log.info(e.getMessage()); + System.exit(1); + } + } + } + + public static void main(String[] args) { + try { + Oracle oracle = new Oracle(); + oracle.openConfig(); + if(args[1] == "--conn"){ + oracle.testConnection(); + } + } catch (Exception e) { + System.out.println(0); + } + + } +} diff --git a/Oracle/src/test/java/cn/netkiller/zabbix/AppTest.java b/Oracle/src/test/java/cn/netkiller/zabbix/AppTest.java new file mode 100644 index 0000000..177344b --- /dev/null +++ b/Oracle/src/test/java/cn/netkiller/zabbix/AppTest.java @@ -0,0 +1,38 @@ +package cn.netkiller.zabbix; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}