公司用到了rackspace的cloudserver 做为压力测试的服务器,但是一旦启动就开始收费,一个小时0.4刀。因此要求用的时候打开,不用的时候关掉。
但是遇到一个问题就是,这样的话在上边部署应用程序和软件就比较麻烦了,不能每次都重新部署吧,那样效率太低了。因此想到写一些脚本进行自动的部署。其他的都好办,但是有些需要修改xml文件和properties文件的,用shell实现起来就费力了。
既然是java的应用就用java来实现吧,用了一下午写好了。下边我把修改properties和xml的代码贴出来,希望对大家有所帮助。
1:修改properties文件
package util.xml;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.Properties;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
public class ModifyPropertiesFile{
public String propertyFilePath="remoting_client.properties";
public String stagingIp="192.168.1.2";
public String messageIp="192.168.1.3";
public void modifyPropertiesFile()
{
try {
Properties p = new Properties();
File f = new File(propertyFilePath);
List
list = new ArrayList
();
list.add(stagingIp);
list.add(messageIp);
if(f.exists() && f.isFile())
{
FileInputStream fis;
fis = new FileInputStream(f);
p.load(fis);
p.setProperty("service.online.url","socket://"+list.get(0)+":5600");
p.setProperty("service.message.url","socket://"+list.get(1)+":5700");
p.setProperty("service.account.url","socket://"+list.get(0)+":5701");
p.setProperty("service.order.url","socket://"+list.get(0)+":5702");
p.setProperty("service.party.url","socket://"+list.get(0)+":5703");
p.setProperty("service.product.url","socket://"+list.get(0)+":5704");
p.setProperty("service.webimgateway.url","socket://"+list.get(0)+":5705");
p.setProperty("service.dirtyword.url","socket://"+list.get(0)+":5898");
FileOutputStream oFile = new FileOutputStream(f);
p.store(oFile,"");
fis.close();
oFile.close();
}
}
catch (Exception e)
{
e.printStackTrace();
e.getMessage();
System.out.println("Can't modify this properties file,please check your program again!!!!");
}
}
public static void main(String args[])
{
ModifyPropertiesFile t=new ModifyPropertiesFile();
t.modifyPropertiesFile();
}
}