首页 > 基础设施 > 正文

使用Java管理Linux服务器的实现思路

2012-07-25 15:04:42  来源:中国IT实验室

摘要:分享一下在办公环境使用Java、Jsch登录VPN管理Linux的脚本(此处实现JAVA调用Linux上备份Mysql的shell作为示例),希望对运维的朋友有帮助,尽快从繁杂的服务器管理工作中脱离出来。
关键词: 服务器 Java L

    现在分享一下在办公环境使用Java、Jsch登录VPN管理Linux的脚本(此处实现Java调用Linux上备份Mysql的shell作为示例),希望对运维的朋友有帮助,尽快从繁杂的服务器管理工作中脱离出来。


    主要的实现思路:


    如果需要先登录VPN才能连接游戏服务器,需要将游戏服务器的ssh端口(一般是22)映射到本地办公电脑的端口上(如5555),然后ssh连接本地办公电脑的5555端口,这样就可以连接到游戏服务器,并可以管理游戏服务器了。


    当您学会通过VPN连接Linux服务器后,如果只在内网环境,不使用VPN,就更简单了,此外不再详述。Jsch的example里也有介绍。


    代码:使用Jsch透过VPN


    1.package com.daily.wednesday;


    2.import Java.io.IOException;


    3.import Java.io.InputStream;


    4.import Java.sql.Connection;


    5.import Java.sql.DriverManager;


    6.import Java.sql.ResultSet;


    7.import Java.sql.SQLException;


    8.import Java.sql.Statement;


    9.import com.daily.util.DataBaseConnection;


    10.import com.jcraft.jsch.Channel;


    11.import com.jcraft.jsch.ChannelExec;


    12.import com.jcraft.jsch.JSch;


    13.import com.jcraft.jsch.JSchException;


    14.import com.jcraft.jsch.Session;


    15.public class BackUpMysql3 {


    16. public static void main(String args[]) {


    17. // 读取数据库配置


    18. DataBaseConnection dataBaseConnection = new DataBaseConnection();


    19. String dataBaseConfigForWrite[] = new String[3];


    20. dataBaseConfigForWrite = dataBaseConnection.loadDataConfig();


    21.22. Connection conn = null;// 数据库连接


    23. Statement stmt = null;// 数据库表达式


    24. ResultSet rs = null; // 结果集


    25. int rowcount = 0;// 总记录数


    26. String sql = “select * from servers_maint_wednesday”;


    27.28. try {


    29. conn = DriverManager.getConnection(dataBaseConfigForWrite[0],


    30. dataBaseConfigForWrite[1], dataBaseConfigForWrite[2]);


    31. stmt = conn.createStatement();


    32. rs = stmt.executeQuery(sql);


    33. rs.last();


    34. rowcount = rs.getRow();// 总记录数


    35. rs = stmt.executeQuery(sql);


    36. } catch (SQLException e) {


    37. e.printStackTrace();


    38. }


    39. // 定义游戏服务器IP的数组,游戏服务器IP存在数据库中。


    40. String privateIpaddress[] = new String[rowcount];


    41. String remark[] = new String[rowcount];// 定义游戏区名称


    42. String programPath[] = new String[rowcount];// 定义程序路径


    43. String backMysqlShellPath[] = new String[rowcount];// 定义mysql备份脚本路径


    44.45. int j = 0;


    46. try {


    47. while (rs.next()) {


    48. privateIpaddress[j] = rs.getString(“privateipaddress”);


    1


    50. programPath[j] = rs.getString(“programpath”);


    51. backMysqlShellPath[j] = rs.getString(“backmysqlshellpath”);


    52. j++;


    53. }


    54. } catch (Exception e) {


    55. e.printStackTrace();


    56. } finally {


    57. try {


    58. if (rs != null) {


    59. rs.close();


    60. }


    61. if (stmt != null) {


    62. stmt.close();


    63. }


    64. if (conn != null) {


    65. conn.close();


    66. }


    67. } catch (Exception e) {


    68. e.printStackTrace();


    69. }


    70. }


    71.72. // 调用mysql备份方法
 


第三十四届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:zhangyexi

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。