首页 > 软件测试/ 正文
使用Java管理千台规模Linux服务器
2012-09-14 17:01:28 ℃主要的实现思路:
如果需要先登录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备份方法
- 上一篇:常见的Java的10种设计模式介绍
- 下一篇:多核平台下的Java优化
更多电脑培训学校,洛阳绿叶电脑学校,安阳电脑学校,android游戏源码,好玩的android游戏,arm培训视频相关文章
- 多核平台下的Java优化
- 浅谈Java中的几种随机数
- 移动应用自动化测试面临的挑战
- 单体测试指南
- UI测试的设计层次
- 软件测试转型之路
- 测试驱动开发
- 什么让验收测试的签收时间不断推迟?
- 反汇编技术在代码测试中的应用
- 敏捷测试的开发流程
- 软件工程的实现与测试
- 接口验证模式
- 软件测试人员的职业发展的讨论
- InstrumentDriver,对iOS自动化软件测试说 Yes!
- 质量管理:IT项目计划中质量目标的确定
- 过程改进漫漫谈之SQA在软件开发成熟度中的作用
- 谁该为软件质量负责------质量伪神 vs 真人类?
- 软件测试管理之QA是天使还是魔鬼
- 关于同行评审
- Tom J. McCabe:寻找度量软件的本源
- 实用SOA测试指南:测试流程起始步骤
- 软件接口测试之质量与进度
- 文件名变色的原因及解决方法(图解)
- 电脑启动过程介绍
- 驱动精灵是什么
- diy是什么意思,电脑diy
- Windows下电脑硬盘的日常维护细则
- 论坛中常见缩写用语(一)
- 郑州北大青鸟:软件测试从零开始
- 信阳软件开发培训学校有哪些呢
- 搜索
-
- 热门标签