9월 29일 예상 반원이 어마어마 하네요

강풍반경이 360km 한반도가 다 들어갈 수 있습니다.

민들레는 북한이 제출한 이름이라 합니다.

10월초가 되면 일본이든 우리나라든 영향을 받겠네요

 

태풍 민들레 위성영상 

 

태풍 예상 진로도 , 기상청제공

0. 1. 설치하기

sudo apt-get install tomcat9

0. 2. 제거하기

sudo apt-get purge --auto-remove tomcat9

1. 톰캣 홈페이지 tar.gz 파일 주소 복사하여 다운로드

sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz

2. 압축해제

sudo tar xvf apache-tomcat-9.0.53.tar.gz

3. 디렉토리명 수정

sudo mv apache-tomcat-9.0.53 tomcat

4. 경로 설정, 

vi /etc/profile
.
.
.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_HOME=/home/tomcat
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext:.

5. 실행 및 확인

source /etc/profile
echo $CATALINA_HOME

6. 톰캣 설정

vi /home/tomcat/conf/server.xml

7. shutdown 및 startup

sh /home/tomcat/bin/shutdown.sh
sh /home/tomcat/bin/startup.sh

7.1 동작확인

    브라우저에서 http://ip주소:8080/

 

7.2 자동시작설정

sudo vi/etc/init.d/tomcat
#!/bin/bash
### BEGIN INIT INFO
# Provides:    tomcat
# Required-Start:  $remote_fs $syslog
# Required-Stop:   $remote_fs $syslog
# Default-Start:   2 3 4 5
# Default-Stop:    0 1 6
# Short-Description: auto start Tomcat server
# Description: start web server
### END INIT INFO

case $1 in
start)
sh /home/tomcat/bin/startup.sh
;;
stop)
sh /home/tomcat/bin/shutdown.sh
;;
restart)
sh /home/tomcat/bin/shutdown.sh
sh /home/tomcat/bin/startup.sh
;;
esac
exit 0
cd /etc/init.d
sudo chmod 755 tomcat
sudo update-rc.d tomcat defaults

8. 확인

ps -ef | grep tomcat

netstat -tln

9. 잘 안 된다...

AWS EC2 보안그룹 인바운드규칙 그리고 탄력적 IP 체크

 

10. 이리저리 만지다 보니 원격으로 접속 성공

나 같은 경우는 탄력적IP(Elastic IP) 를 셋팅.

결과적으로 putty 접속과 http 접속에 같은 IP주소를 사용하게 되었는데..

 

http://xxx.xxx.xxx.xxx:8080 

AWS EC2 t2.micro 인스턴트

Ubuntu 18.04.5 LTS

 

1. 업데이트 

sudo apt-get update

2. 자바8 JRE, JDK 설치

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk

3. 설치후 버전 확인

javac -version
java -version
ubuntu@ip:~$ javac -version
javac 1.8.0_292
ubuntu@ip:~$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~18.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
ubuntu@ip:~$

4. path 설정 위해 javac 절대경로 확인

which javac
readlink -f /usr/bin/javac
ubuntu@ip:~$ which javac
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac
ubuntu@ip:~$ readlink -f /usr/bin/javac
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac
ubuntu@ip:~$

5. path 설정

sudo vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH

6. 경로 다시 실행

source /etc/profile

7. 자바 경로 확인

echo $JAVA_HOME
$JAVA_HOME/bin/javac -version

8. CLASSPATH 설정

echo $CLASSPATH
vi /etc/profile

마지막에 추가

...
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$CLASS_PATH
export CATALINA_HOME=/home/tomcat
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext:.
~

9. 필요한 jar 파일을 다음 폴더에 복사하여 자바 컴파일

/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext

작지만 강한태풍 14호 찬투
대만을 지나고  있습니다



요사이는 쌍태풍이 자주 생기네요
응축된 에너지가 커서  그런걸까요

일정간격으로 뭔가를 실행할 수 있는 명령이다.

 

crontab 수정하기

vi 에디터에 내용이 나타나고 수정하고 저장하면 이후로 주기적으로 실행된다.

root@ncpmicro:/home/cronshell# crontab -e

crontab 내용보기

root@ncpmicro:/home/cronshell# crontab -l

 

shell 명령실행 또는 자바프로그램 실행등을 할 수 있다.

root@ncpmicro:/home/cronshell# crontab -l
#shell 실행
3,13,23,33,43,53 * * * * sh /home/cronshell/auto1.sh
1 5 * * * sh /home/cronshell/auto2.sh
#java 실행
1,16,31,46 * * * * /usr/lib/jvm/java8/bin/java -classpath "/home/javap/sat" Sat 1 > /home/javap/sat/cron1.log
2 */3 * * * /usr/lib/jvm/java8/bin/java -classpath "/home/javap/sat" Sat 3 > /home/javap/sat/cron3.log
45 8,20 * * * /usr/lib/jvm/java8/bin/java -classpath "/home/javap/sat" Sat 5 > /home/javap/sat/cron5.log
3 5 * * * sh /home/cronshell/auto3.sh

 

Ubuntu 에 MariaDB를 설치하고 사용자 설정을 했습니다.

MariaDB JDBC 자바 connector 설치했구요 

root@ncpmicro:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext# ls mariadb-java-client-3.0.0-alpha.jar
mariadb-java-client-3.0.0-alpha.jar

 

그리고 CSV 형식으로 작성된 텍스트 파일로 데이터를 MariaDB에 LOAD 했습니다.

tomcat 서버를 설치하고 여기에도 MariaDB connector 를 설치했습니다. 

root@ncpmicro:/home/tomcat/lib# ls mariadb-java-client-3.0.0-alpha.jar
mariadb-java-client-3.0.0-alpha.jar

JSP 가 기본적으로 동작하는지 확인한 다음

파라미터를 받아 MariaDB에 쿼리를 날려 xml 형식으로 값을 받아오고자 합니다.

샘플 코드입니다.

<%@ page import = "java.sql.*" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
        String param1 = request.getParameter("Param1");
        String param2 = request.getParameter("Param2");

        StringBuffer sb =  new StringBuffer();

        response.setContentType("text/xml");
        response.setCharacterEncoding("utf-8");

        Statement stm = null;
        ResultSet rs = null;

        Class.forName("org.mariadb.jdbc.Driver");
        String myUrl = "jdbc:mariadb://serverip/test_db";
        Connection conn = DriverManager.getConnection(myUrl, "user01", "1234");
        try {
                stm = conn.createStatement();
                String sql = "";
                if (param1 != null && param2 != null && param1 != "null" && param2 != "null" && param2 != ""){
                        sql = "select * from test_table where title LIKE '%" + param1 + "%' or  title LIKE '%" + param2 + "%';";
                } else {
                        sql = "select * from snim_table where title LIKE '%" + param1 + "%';";
                }
                if(stm.execute(sql)) {
                        rs = stm.getResultSet();
                }

                sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                sb.append("<DataInfo>");
                while(rs.next()) {
                        sb.append("<row>");

                        sb.append("<title>");
                        sb.append(rs.getString("title"));
                        sb.append("</title>");

                        sb.append("<desc>");
                        sb.append(rs.getString("desc"));
                        sb.append("</desc>");
                        
                        sb.append("</row>");
                }
                sb.append("</DataInfo>");
                rs.close();
                stm.close();
        }
                catch(Exception e) {
                out.println("rs.next() ERROR");
        }
        conn.close();
        response.getWriter().println(sb.toString());
%>

분리자를 이용한 파일을 이용하여 데이터를 한번에 편하게 밀어 넣을 수 있는 방법이 있다.

샘플은 data.txt 는 탭으로 분리된 파일이고

하나의 라인은 '\n'으로 구분된다.

컬럼에 대해 별다른 정의가 없으니

테이블에 정의된 컬럼 개수와 순서대로 데이터가 들어갈 것이다.  

 

MariaDB [test_db]> LOAD DATA LOCAL INFILE '/home/data.txt' INTO TABLE test_table FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

데이터베이스명 : test_db

테이블명 : test_table

 

* primary key 설정

CREATE TABLE `test_table` (
  `id` varchar(15) NOT NULL,
  `title` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

*데이터 삽입 중복키 발생시 업데이트

insert into test_table value('id01', 'title-new') on duplicate key update title='title-new';

 

* SELECT 내용을 텍스트 파일로 저장하기

필드는 '\t'로 구분하고 라인은 '\n'로 구분한다.

생성된 파일은 find 로 찾는다.

MariaDB [test_db]> SELECT * INTO OUTFILE 'out.txt' FIELDS terminated by '\t' lines terminated by '\n' FROM snim_table;
Query OK, 1843 rows affected (0.02 sec)
MariaDB [test_db]> quit
Bye
root@ncpmicro:~# find / -name out.txt

 

+ Recent posts