始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

使用Java管理千台规模Linux服务器

发布时间:  2012/8/20 17:31:44

前东家是一家游戏公司,老板很好,当时工作也留下了很多自己原创的管理脚本。现在分享一下在办公环境使用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备份方法

 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      0
     
     
     
     

    0371-60135900
    7*24小时客服服务热线