본문 바로가기

프로그래밍/JAVA

java - 파일 수정일 & 디렉토리 목록(리눅스 ls) & 외부 명령어 실행

반응형

<%@ page language="java" contentType="text/html; charset=euc-kr"%>
<%

 String file_dir ="";
 String file_name ="";
 String requestURI_ls  = request.getRequestURI();

// out.println(requestURI_ls + "<br>");

 String temp_array_uri[] = requestURI_ls.split("/");
 
 String ls_list[];
 
 int i =0;
 int dir_depth = 0;
 
 dir_depth = temp_array_uri.length;

// out.println("dir_depth = " + dir_depth + "<br>");

 for(i = 0 ; i < dir_depth - 1; i++)
 {
  file_dir = file_dir + temp_array_uri[i] + "/" ;
 }
 
 file_name = temp_array_uri[dir_depth-1];

// out.println("file_dir = " + file_dir + "<br>");

// out.println("file_name = " + file_name + "<br>");

 String command = "ls -al /tomcat5/webapps/ROOT" + file_dir;  // <---- 실행할 쉘명령어

// out.println("command = " + command + "<br>");

 int lineCount = 0;
 String line="";
 
 String last_year="";
 String last_mm="";
 String last_dd="";
 String last_time="";


 Runtime rt = Runtime.getRuntime();
 Process ps = null;
 
 try
 {
  ps = rt.exec(command);
  
  BufferedReader br =
      new BufferedReader(new InputStreamReader(new SequenceInputStream(ps.getInputStream(), ps.getErrorStream())));
  
     
  
  while((line = br.readLine()) != null)
  {
   ls_list = line.split(" ");
   if(ls_list[ls_list.length -1].equals(file_name))
   {
    for(i = 0 ; i < ls_list.length; i++)
    {
     if(i > ls_list.length - 6 && i < ls_list.length -1 )
     {
      if(i == ls_list.length -5)
      {
       last_mm = ls_list[i];
      }
      if(i == ls_list.length -3)
      {
       last_dd = ls_list[i] + "일";
      }
      else if(ls_list[ls_list.length -2].indexOf(":") < 1)
      {
       last_year = ls_list[i] + "년" ;
      }
      else
      {
       last_time = ls_list[i];
      }
      
     }
    }
   }
  }
  br.close();
  
 }
 catch(IOException ie)
 {
  ie.printStackTrace();
 }
 catch(Exception e)
 {
  e.printStackTrace();
 }

 if(last_year.equals(""))
 {
  Calendar cal_1 = Calendar.getInstance(java.util.Locale.KOREA);
 
  //오늘날짜
  last_year = cal_1.get(Calendar.YEAR)+"년";
  
 }
%>

<span class="stl">마지막 수정일</span> : <%=last_year%> <%=last_mm%> <%=last_dd%> <%=last_time%>

반응형