검색을 해보다가 tomcat 의 구조에 대해 잘 정리해주신 글이 있길래 공부겸 정리해보려고 합니다. https://cheershennah.tistory.com/111 톰캣 tomcat 구조 파악하기.톰캣 구조 파악하기. web 서버http 프로토콜 기반으로 web client (browser) 로부터의 요청을 서비스하는 기능을 담당하는 프로그램. ex) apache ..역할: html, image, xml 등에 대한 처리 담당 web Application 서버cheershennah.tistory.com tomcat톰켓은 jsp환경을 포함하고 있는 servlet 컨테이너이다.서블릿 컨테이너는 사용자 입장에서 서블릿을 유지하고 호출하여 실행하는 쉘이다.톰켓은 크게 3가지 컨테이너로 구분한다.1. Stand..
Back-End
리눅스 서버에서 ssl 인증서 만료일 확인하는 방법! 사용하는 서버마다 경로가 다를텐데 보통 /etc 하위에 넣는 것으로 보입니다. 만료일 확인 만료일 확인 [~~~ /etc/ssl/certs]$ openssl x509 -enddate -noout -in /etc/ssl/certs/ca-bundle.crt notAfter=Dec 31 09:37:37 2030 GMT 인증서 전체 유효기간 확인 인증서 전체 유효기간 확인 [~~~ /etc/ssl/certs]$ openssl x509 -dates -in /etc/ssl/certs/ca-bundle.crt notBefore=May 5 09:37:37 2011 GMT notAfter=Dec 31 09:37:37 2030 GMT
도커 컨테이너 확인명령어 docker ps 도커 접속 명령어 docker exec -it 도커ps에서나온name /bin/bash ex) docker exec -it ds_bank /bin/bash 도커 컨테이너에서 호스트로 파일 복사 docker cp 도커명:도커안에경로 호스트경로 ex) docker cp ds_bank:/app/AA /fsfile/AA
맨날 짜져 있는 쉘 스크립트만 보다가 갑자기 쉘하나는 짜서 서버 셋팅을 해야 해서... 급 서치하면서 처음으로 짜본 파일 백업하는 쉘 스크립트 #!/bin/bash # 백업할 대상 파일 original_AA="/file/model/AA" original_BB="/file/model/BB" # 날짜를 붙여서 백업 backup_AA="/file/model/backup/AA_$(date '+%Y%m%d')" backup_BB="/file/model/backup/BB_$(date '+%Y%m%d')" #위 코드대로라면 하루에 2번 이상 실행시 같은 파일의 이름이 존재하므로 #파일을 덮어쓰게 된다. 그래서 같은 이름의 파일이 존재하는지 확인하고 #존재한다면 파일 이름에 시간까지 붙여 백업하도록 작성 echo "A..
서버에서 다른 서버로 방화벽이 뚫려있는지 확인 할 수 있는 방법을 배워서 기록해 둘겸 정리! echo > /dev/tcp/1.2.3.4/3316 1.2.3.4 대신 확인할 서버 IP입력 하고 3316 대신 확인할 서버 PORT 번호 입력하면 됌. 빈 echo를 날리는 것이라고 하는데 바로 반응이 와서 뭔가 입력할수 있게 되면 방화벽이 뚫려 있는것! 뭔가 아무 반응도 없으면 방화벽이 안뚫려 있는 것!
리눅스에서 메모리 확인하는 명령어가 free 인데 free -h 를 실행하면 total, used, free, shared, buff/cache, available Mem : 62Gi, 29Gi, 28Gi, 37Mi, 4.9Gi, 32Gi Swap: 7.9Gi, 81Mi, 7.8Gi 등 메모리 사용현황을 확인 할수 있습니다. 본인의 경우에는 한 솔루션에서 OOM(out of memory)이 난 상황이라 해당 솔루션셋팅 xml에 들어가서 여기에 8G로 잡혀있던걸 16G로 수정후 다시 free -h 를 실행해서 total, used, free, shared, buff/cache, available Mem : 62Gi, 38Gi, 19Gi, 37Mi, 4.9Gi, 24Gi Swap: 7.9Gi, 81Mi, 7..
ORA-00911:문자가 부적합합니다. ORA-00911:invalid character 이런 에러가 나서 쿼리를 자세히 보는데 아무리 봐도 틀린 게 없어서 검색해 봤는데 SELECT * FROM 테이블명; 이렇게 세미콜론이 붙어 있는지 확인해 보고 세미콜론이 있으면 제거해주면 해결!
1. hostname -I 명령어 입력 hostname -I 2. ifconfig ifconfig ifconfig | grep 'inet' ifconfig는 네트워크 인터페이스의 설정을 보여줍니다. inet: IP 주소(IPv4) inet6: IP 주소(IPv6) 3. ip addr ip addr ip addr | grep 'inet' ifconfig와 마찬가지로 네트워크 인터페이스의 설정을 확인할 수 있습니다. inet: IP 주소(IPv4) inet6: IP 주소(IPv6)
tail -f A.log | grep 'TIMESTAMP' | grep '12' grep 명령어는 리눅스에서 로그를 볼 때 자주 사용하는 명령어로 여러 옵션을 알아두면 좋을 것이라고 생각이 들어서 정리해 봤습니다! 실시간으로 로그를 보려면 tail -f 명령어 사용 이미 찍힌 로그들 확인하려면 cat 명령어 사용 gerp 명령어 OR 조건 1. -E 옵션을 붙여서 | 로 구분해주면 됩니다. tail -f A.log | grep 'Exception|ERROR' -> A.log 에서 'Exception' OR 'ERROR'가 있는 로그 출력 2. 아래와 같이 로그 2개를 동시에 grep 잡을 수도 있습니다 cat A.log -f B.log | grep -E 'Exception|ERROR' -> A.log 와..
PostgreSQL 에서는 INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1','값2'); INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1','값2'), INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1','값2'); 이런식으로 했던 기억이 있어서 MySQL 에서도 같겠거니 하고 해봤더니 SQL Error [1064] [42000] : You have an error in your SQL syntax; ~ 에러가 난다... 문법 에러라고 하니 구글링 해서 방법을 찾아보니 INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES ('값1','값2'), ('값1','값2'), ('값1','값2'); 이런식으로 insert 를 하면 된다고..
DB2 SQL ERROR sqlcode=-302 sqlstate=22001 테이블 컬럼의 사이즈가 Insert/Update 하려는 데이터의 사이즈보다 작을 때 발생.. 기존에 있는 컬럼의 사이즈와 Insert/Update 하려는 데이터들의 크기를 비교해 보면 해결가능!
CentOS에서 로그인 시 bash-4-2$ 가 나올때조치 방법 login as: root root@~~~'s password: Last login: Thu Dec 2 09:29:21 2021 from 172-10-200-123.lightspeed.rcsntx.sbcglobal.net bash-4.2$ 홈디렉토리에 설정파일이 잘못되어서 나오는 현상인데 홈디렉토리를 만들던지 있는 홈 디렉토리에 가서 /etc/skel/ 안에 있는 설정파일들을 가져와서 권한설정을 해주고 cp -rp /etc/skel/.b* /home/sample chown -R sample.sample /home/sample 다시 접속해 보면 bash-4.2$이 나오지 않는것을 확인 가능합니다.
데이터 중에 select 필드명 from 테이블명 이렇게 확인해보면 이런 식의 데이터가 출력되는 것이 있었다. 일단 0을 제거하기 위해서 이렇게 입력하면 select regexp_replace( 필드명 , '[0]','','g') from 테이블명 20이 나와야 하는 데이터도 2로 출력이 되어버려서 1~9까지의 숫자의 앞에 부분을 제외해야 해서 select regexp_replace( 필드명 , '[^1-9]+','') from 테이블명 위와 같이 입력하니 원하는 데이터를 출력하였다. 이제 이 데이터를 가지고 가공 작업을...
문자열 자르기 (substring) - 문법 : substring ( 문자열, 시작점, 시작문자열갯수 ) SELECT substring('RPOT_1234'::varchar,1,4) 구분자로 자르기 (split_part) - 문법 : split_part( 문자열, 구분자, 순서 ) select split_part('2021-08-23'::varchar, '-', 1); -- 2021 select split_part('2021-08-23'::varchar, '-', 2); -- 08 select split_part('2021-08-23'::varchar, '-', 3); -- 23
참고 : https://www.postgresqltutorial.com/postgresql-upsert/ 일단 샘플 예제를 만들기 위해 DROP TABLE IF EXISTS customers; CREATE TABLE customers ( customer_id serial PRIMARY KEY, name VARCHAR UNIQUE, email VARCHAR NOT NULL, active bool NOT NULL DEFAULT TRUE ); 이렇게 테이블을 만들어 주고 INSERT INTO customers (name, email) VALUES ('IBM', 'contact@ibm.com'), ('Microsoft', 'contact@microsoft.com'), ('Intel', 'contact@intel..
-- ====================================================================== -- SP 이름: 문자열 마스킹(F_MaskingText) -- ====================================================================== DROP FUNCTION IF EXISTS F_MaskingText(text, text, text, text) CASCADE; CREATE OR REPLACE FUNCTION F_MaskingText( i_pattern text , i_txt text , i_conv_txt text , i_option text ) RETURNS character varying AS $BODY$ DECL..
t_table 에 있는 column 을 FUNCTION을 이용해서 선택하고 싶을 시 사용할 수 있는 EXECUTE format CREATE OR REPLACE FUNCTION FunctionName ( i_id character varying , i_row_seq integer , i_column character varying ) RETURNS refcursor AS $BODY$ DECLARE v_ref_cur_data refcursor := 'v_ref_cur_data'; v_id character varying := i_id; v_row_seq integer := i_row_seq; v_column character varying := i_column; BEGIN OPEN v_ref_cur_data..
확인 방법 $ which watch /usr/bin/watch 사용법 $ watch --help Usage: watch [options] command Options: -b --beep beep if command has a non-zero exit -c --color interpret ANSI color and style sequences -d --differences[=] highlight changes between updates -e --errexit exit if command has a non-zero exit -g --chgexit exit when output from command changes -n --interval seconds to wait between updates -p --p..