1. cmd 관리자 모드로 실행

 

2. 공유 폴더 전체 확인

net share 

 

3. 공유 폴더 삭제

net share /delete "공유이름"

ex. net share /delete C$

Posted by 하리하라​
:

● sudo 권한을 부여하는 것이 아닌, 특정 사용자 root 계정으로 만들기

 

1. vim /etc/passwd

   1) 해당 계정 찾아서 x:숫자:숫자 부분을

   2) x:0:0 으로 변경

 

2. vim /etc/group

   1) 맨 윗줄 "root:x:0:" 부분에

   2) root:x:0:[계정아이디] 식으로 계정아이디 넣어 저장

 

3. vim /etc/ssh/sshd_config

   1) PermitRootLogin 부분 찾아 주석 제거 및

   2) "PermitRootLogin yes" 으로 변경 

   3) "PasswordAuthentication" 부분 찾아 주석 제거 및

   4) "PasswordAuthentication yes" 로 변경

 

4. sudo service ssh restart

 

5. ssh 접속 테스트 

Posted by 하리하라​
:

/dev/null 2>&1

LINK 2022. 5. 31. 12:22 |

https://blog.naver.com/dev_zion/222631283389

'LINK' 카테고리의 다른 글

무료 DBMS - DBEAVER  (0) 2025.03.04
스프링부트 관련  (1) 2024.09.18
SVN Connector 다운로드 문제  (0) 2023.07.20
오라클 과거 버전 다운로드  (1) 2022.07.26
Posted by 하리하라​
:

● 특정 데몬 파일(daemon.py) 실행 여부 확인 파이썬 코드 작성

#-*- coding: utf-8 -*-
import os, commands, time, datetime;

cmd = 'ps -ef | grep "sudo python daemon.py" | wc -l ';
status, output = commands.getstatusoutput(cmd);
output = output.strip();

#print(type(output));
output = int(output);

today = datetime.datetime.now();
today = str(today);
today = today.replace(" ", "_");

#os.system("echo 7777 > /workspace/oncocatch-e/view/gmr/python/%s.log" % today);

#정상적으로 데몬이 실행하고 있는 상태
if status == 0 and output > 2:
	time.sleep(0.01);
else:
	os.system("sudo python daemon.py");

 

● 상기 데몬 실행 여부 체크 파이썬 파일, 1분 단위로 실행 등록(Ubuntu 기준)

crontab -e #리눅스 특정 시간 간격 실행 작업 등록 추가/수정/삭제
crontab -l #리눅스 특정 시간 간격 실행 작업 등록 내용 확인

 

● crontab -e 화면에서 내용 추가

* * * * * /usr/bin/python /workspace/oncocatch-e/view/gmr/python/auto_daemon.py

 

● 1분 단위 실시간 실행 확인

tail -f /var/log/syslog

 

Posted by 하리하라​
:

● MariaDB 설치 후 CLI 접속은 정상, 토드 등 DB 접속툴 오류 발생

  설치한 MariaDB 언어셋 확인

● 기존 언어셋 utf8mb3를 utf8mb4로 변경하기 위해 my.ini 에서 설정 

 

● DB 재시작

 

● 이후 언어셋 변경 확인

정상 로그인 확인 

Posted by 하리하라​
:

KT&G 모바일 시스템

PROJECT 2021. 12. 22. 16:19 |

KT&G CMS/ POS 관리 시스템 및 PUSH 서버, 앱 배포 마켓, EIP 개발 / Spring, Oracle, Hybrid APP 

 

 

Posted by 하리하라​
:

● 개발 년도 / 개발 기간 : 2016년 / 6개월

 

● 특징 : 주도 개발 & PM, Spring, Python

 

'PROJECT' 카테고리의 다른 글

KT&G 모바일 시스템  (0) 2021.12.22
벼, 오이 등 작물 품종 비교 분석 플랫폼  (0) 2021.12.22
유전자 분석 플랫폼 개발  (0) 2021.12.22
병원 NIPT 시스템 긴급 개발  (0) 2020.08.20
Posted by 하리하라​
:

● 육종, 품종 비교 분석 플랫폼 개발 / Spring, MySQL

 

'PROJECT' 카테고리의 다른 글

KT&G 모바일 시스템  (0) 2021.12.22
유전자 분석앱 플랫폼 개발  (0) 2021.12.22
유전자 분석 플랫폼 개발  (0) 2021.12.22
병원 NIPT 시스템 긴급 개발  (0) 2020.08.20
Posted by 하리하라​
:

● KRIBB KOBIC / 유전정보 분석 플랫폼 / Spring, SVG, VML, Google Map Mashup, BPM Engine & SunGrid Engine

 

'PROJECT' 카테고리의 다른 글

KT&G 모바일 시스템  (0) 2021.12.22
유전자 분석앱 플랫폼 개발  (0) 2021.12.22
벼, 오이 등 작물 품종 비교 분석 플랫폼  (0) 2021.12.22
병원 NIPT 시스템 긴급 개발  (0) 2020.08.20
Posted by 하리하라​
:

● 사용자 생성 및 삭제

- 생성 : sudo useradd [사용자 아이디] -d /home/[사용자 폴더] -m 

- 사용자 비밀번호 설정 : sudo passwd [사용자 아이디]

- 홈디렉토리 삭제 : sudo rm -f -r [사용자 폴더명]

- 사용자 삭제 : sudo userdel [사용자 아이디]

 

● 권한

- 사용자 sudo 권한 부여 : sudo usermod -a -G sudo [사용자 아이디]

- 사용자 bash 권한 부여 : sudo usermod -s /bin/bash

 

● 조회

- cat /etc/passwd

Posted by 하리하라​
:

● WSL 1개 이상 만들었을 때 목록 조회

wsl --list

 

● WSL 만들 수 있는 OS 조회 / 다른 OS 추가 가능

wsl -l -o

 

● WSL 설치된 목록 상태 및 버전 보기 / 버전에서 1은 WSL1, 2는 WSL2

wsl -l -v

 

● WSL(Hyper-V) 서비스 종료

wsl -t [리스트에서 조회된 NAME]


● WSL(Hyper-V) 서비스 삭제

wsl --unregister [리스트에서 조회된 NAME]

 

● WSL(Hyper-V) 서비스 시작 / 가상 OS 구동

wsl -d [리스트에서 조회된 NAME]

 

● 기타 검토 사항

1. 리눅스 이미지 파일 없이 윈도우 스토어에서 받은 WSL용 우분투로 여러개 WSL 생성
Posted by 하리하라​
:
- 설치 리눅스 확인 : wsl -l -v

- 설치 리눅스 선택 시작 : wsl -d [설치 리눅스명]

- 설치 리눅스 추가 : wsl --import [설치할 리눅스명] [설치 경로] [추출한 파일 경로/파일명]
> .tar.xz 파일도 압출 풀이 없이 바로 설치 가능  

- 실행 리눅스 종료 : wsl --terminate RockyLinux9

윈도우OS 기반에 리눅스 동작하게 만드는 방법♡

2021년 11월 25일 기준

프로그램을 통해 CLI(Command Line Interface)에서 리눅스 명령어를 실행되도록 하는 방법은 Crontab 등 일부 기능이 특성을 타는 등 쉽지 않은 경우

최근 윈도우에서 제공하는 기능을 이용하여 리눅스를 설치하면 가장 우수한 호환성을 보이며 가상화 설치가 아니라 가장 좋은 성능을 가질 수 있다.

 

1. Command 명령 입력창 오픈

 

2. 리눅스 기능 활성화 - Command 명령어 입력

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 

3. 리눅스 CLI 실행 환경 설치

wsl --install

· 내부적으로 Hyper-V 라는 VM 이미지가 만들어지고 이 안에 우분투가 설치되는 구조
· Hyper-V VM은 Microsoft에서 만든 VM으로 윈도우에 기본 기능

 

4. Ubuntu 설치 - 윈도우 스토어 실행 - 스토어 계정으로 로그인 필요

 

5. Ubuntu 설치 - 윈도우용 리눅스 검색 - "Uuntu 20" 선택 설치

 

6. Ubuntu 설치 - "Uuntu 20" 선택 설치 완료 후 실행

 

7. Ubuntu 이미지로 직접 설치 경우

· 사용 방법 : wsl --import <고유 배포명> <이미지 설치 위치> <이미지 파일 위치>
· 사용 예시1 : wsl --import Ubuntu-20-test999 C:\WSL\Ubuntu-20.04-test999 C:\Downloads\Ubuntu_2004.2020.424.0_x64.appx
· 사용 예시2 : wsl --import RockyLinux9 c:\DEV\WSL\Rocky9 c:\DEV\WSL\Rocky-9-Container-Base.latest.x86_64.tar.xz

* 윈도우 CLI 온라인 환경으로 Ubuntu 설치 경우

 

* import 경우 

- 다음 명령어로 설치 확인 가능 : wsl -l -v

- 해당 리눅스 구동 : wsl -d Rockylinux9

 

8. Ubuntu 설치 - 자동 실행 후 최초 리눅스 계정 설정 

 

9. Ubuntu 설치 - 윈도우 Command 창에서 우분투 실행

 

10. SSH 환경 재설정 - 기본 설치된 SSH 예외 특성 노력 지양 & 삭제 후 재설치

sudo apt-get update
sudo apt-get upgrade
sudo apt-get purge openssh-server
sudo apt-get install openssh-server

 

11. 윈도우10 SSH 기본 포트 방화벽 해지

윈도우 방화벽에서 인바운드 규칙 단일 포트 22 허용

 

12. 윈도우10 포트포워딩 설정(윈도우10을 통해 내부 Hyper-V Ubuntu 접속)

· 방법 : netsh interface portproxy add v4tov4 listenport=[원격에서 윈도우 붙을 때 쓰는 포트] listenaddress=[원격에서 윈도우 붙을 때 쓰는 아이피] connectport=[가상 우분투 SSH 포트] connectaddress=[가상 우분투 아이피]
· 예시 : netsh interface portproxy add v4tov4 listenport=2022 listenaddress=210.216.***.*** connectport=22 connectaddress=172.18.219.47

* 네트워크 아답터 속성인 vEthernet(WSL) 에서 설정된 IP가 아닌 WSL 실행 후 ifconfig 으로 조회되는 아이피로 설정

* 사전 윈도우 CLI(검정창 command) 환경에서 "ssh localhost" 또는 "ssh [WSL 확인한 IP]"로 정상 접속 확인 필요

* WSL 기본 아이피(2024.06.11 기준)는 172.18.219.47(내부 가상 IP)

 

13. 포트포워딩 설정 내용 조회 또는 삭제

· 조회 : netsh interface portproxy show all
· 삭제 : netsh interface portproxy delete v4tov4 listenport=22 listenaddress=***.***.***.***

 

14. 원격 접속 테스트

ssh [계정명]@[윈도우10 아이피]

 

15. 리부팅 이후 원격 ssh 접속이 되지 않을 경우

- 과거 WSL1 모델은 윈도우 CLI 레벨에서 리눅스 쉘이 가능하여 다이렉트 연결 가능
- 2021년 12월 기준 WSL2 모델에서는 가상환경(Hyper-V) 안에 리눅스가 있어 네트워크 아답터에서 IPv4 설정을 보면 기본적으로 172.24.*.* 가상 아이피 할당
- WSL2 기본 설정은 유동아이피(DHCP) 설정으로 되어 있어 고정 아이피 설정 필요

 

 

* WSL 자주 쓰는 명령

 

 

끝.

Posted by 하리하라​
:

1. 동영상 길이 편집 : 곰믹스 / 프리웨어

 

2. 부분 화면 녹화 및 소리 녹음 : 오캠 / 프리웨어

Posted by 하리하라​
:

● 테스트 환경 : 윈도우10, 우분투16

 

1. XRDP 설치

>> apt install -y xrdp

 

2. XFCE4 설치

>> apt install -y xfce4

 

3. 위 2개 설치 확인

>> dpkg -l xrdp xfce4

 

4. 원격으로 접속할 사용자 계정 세션에서 다음 실행

>> echo "xfce4-session" > ~/.xsession

 

5. 세션 정보 확인
>> cat .xsession
>> xfce4-session

 

6. XRDP 재시작

>> service xrdp restart

7. 윈도우 실행 mstsc 명령어 입력 실행 / 윈도우 기본 원격프로그램 실행

>> 위 작업했던 우분투 서버 IP 입력

 

8. 우분투 접속 확인!

 

 

출처 : suinautant.tistory.com/63

Posted by 하리하라​
:

1. https://www.gogetssl.com/   접속

 

2. 로그인 / 계정 없을 경우 무료 가입
 

3. "SSL Certificates" 메뉴 선택 후 상태 확인
 

4. "New Order" 선택
 

5. "GoGetSSL™ Unlimited Trial" 상품 주문 선택
 

6. 구매 완료 및 incomplete 상태 확인
 

7. 해당 상품 뷰 선택
 

8. 상세 설정에서 "new order"가 아닌 리뉴얼 선택
 

9. CSR Generator로 CSR 생성
 

10. 정보 입력 / 도메인 입력시 http 또는 https 빼고 입력 필수.
 

11. 생성 CSR 확인
-----BEGIN CERTIFICATE REQUEST-----
MIIC7DCCAdQCAQAwgaYxCzAJBgNVBAYTAktSMRQwEgYDVQQIDAtHeWVvbmdnaS1k
....
vHKba7bGPe+AuV2qOq5/RBKTTsuVUHf094QEetRjCFo=
-----END CERTIFICATE REQUEST-----

Your Private Server Key
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6fbzXGsBNE9DV
....
061Df8kXTuerQdfh4ucFQ3E=
-----END PRIVATE KEY-----
 

12. SCR에서 첫번째 블록 "-----BEGIN CERTIFICATE REQUEST-----"부터 "-----END CERTIFICATE REQUEST-----"까지 복사 인용 / 주석값 포함
 

13. "Get WHOSI email" 선택하여 도메인 정보에 등록된 관리자 이메일 불러오기 / 해당 도메인 관리자 권한으로 인증 받아야 하는데 제시된 이메일 주소가 없으면 http로 처리 필요
 

14. 또는 https 인증 방식 선택(ssl 만료가 되었어도 https 가능) / 이 방법 후 나오는 경로에 해당 파일 다운로드 배치 후 경로 인증 선택 / 3분 안에 인증되고 인증 완료 메일옴
 

15. 이메일로 인증 처리 & 정상 인증 처리 확인 완료 / 간혹 코드 넣고 로딩이 오래 걸리며 안될 수 있음 / 다시 처리 필요
 

16. 이메일로 인증 완료 메세지와 함께 새인증서 첨부 수신 확인 / 정상 완료 경우 압축 파일 메일로도 오지만 싸이트에서도 다운로드 가능(불가능 경우 정상 인증 안됨)
 

17. 새인증서 웹서버에 적용(zip 파일 압축 풀면 crt 파일만 있음 이거 인용과 기존 생성된 SCR 2번재 블록, -----START PRIVATE KEY----- 블럭 내용으로 key 파일 생성 2개 배치)
 

*1 여기서 7번에서 조회가 되지 않을 경우 도메인회사 로그인하여 관리자 이메일 정보 추가하면 추후 올라옴
 

*2 *1이 어려울 경우 도메인 호스트 추가 방식으로 인증 가능 / 도메인클럽 기존 설정정보 참조
*** reiusse(재발행)은 만료 갱신이 아닌 것으로 확인. 이를 통해 인증서 받았을 때 인증서만 바뀌지 만료 날짜 안바뀜.
*** 연장은 새롭게 인증서 만드는 것과 동일. 단 gogetssl 대행사에서 생성시 "renewal" 선택 필요. 하다고 확인. 90일 안에만 유효하다고 하는데 초과되도 가능

 

18. 생성 파일 서버에서 교체 

 

19. 서버 재시작

 

 

Posted by 하리하라​
:

● 프로젝트명 : 국내 최대 산부인과 산전진단(NIPT) 시스템 개발 및 납품 / 완료

 

● 개발 기간 : 1개월 / 2020.07 / 긴급 개발 

 

● 투입 인력 : 단독 

 

● 개발 내용 : 차병원 전용 LIMS 개발 및 OS단 Python 기반 NIPT 파이프라인 환경 구축

 

● 개발 환경 

- Sun Grid 엔진 사용 분산 연산

- Ion Torrent 장비 연계 Fastaq 파일 자동 복제 NIPT 자동 분석 

- 반응형 / Bootstrap 

- UI에서 대량 연산(qsub) 모니터링 기능 개발

- 서버에서 웹디몬(Background Service) 사용 / lynx / 림스 결과지 PDF 자동 생성

- PHP, MariaDB, PhpSpreadsheet, pdfviewer, wkhtmltopdf

 

● 기타

2020.08 안정화 및 유지보수

 

 

 

 

 

'PROJECT' 카테고리의 다른 글

KT&G 모바일 시스템  (0) 2021.12.22
유전자 분석앱 플랫폼 개발  (0) 2021.12.22
벼, 오이 등 작물 품종 비교 분석 플랫폼  (0) 2021.12.22
유전자 분석 플랫폼 개발  (0) 2021.12.22
Posted by 하리하라​
:

1. PHP 다운로드 
1) https://windows.php.net/download/
2) VC16 x64 Thread Safe "Zip" 다운로드

* 2021.12.22 Last Version 8.1.1

* 2023.09.15 기준 PhpSpreadsheet, PHP 7.4 이상에서 동작하지 않음

 


2. MariaDB 다운로드
1) https://mariadb.com/downloads/

2) 무료 버전(Community Server) 다운로드

* 2021.12.22 Last Version 10.6.5

* DB 복구 또는 실행 시 확인 문제

· 문제 : error 1728 (hy000) at line 14224: cannot load from mysql.proc. the table is probably corrupted
· 확인 : MariaDB 10.6.0 에서 복구시 mysql.proc 테이블 균열이 있다는 오류
· 해결 : MariaDB 10.6.5 버전으로 재설치

 

3. Apache 다운로드
1) https://www.apachelounge.com/download/

* 2021.12.22 Last Version 2.4.52

 


4. Tomcat 다운
로드
1) https://tomcat.apache.org/
2) 실행 버전으로 다운로드 / 이클립스 별개로 apache 구동 시 자동 연계 시작 필요

* 2021.12.22 Last Version 10.0.14 / apache-tomcat-10.0.14.exe 

 


5. Apache 해당 버전 + Tomcat 커넥터 다운로드
1) https://www.apachelounge.com/download/
2) Apache 버전에 맞는 mod_jk 다운로드
3) 압축풀어 "mod_jk.so" 파일 확인

* 2021.12.22 Last Version 1.2.48 / mod_jk-1.2.48-win64-vs16.zip

 

 

6. JDK(Java Development Kit) 다운로드
1) http://jdk.java.net/
2) 압축풀기
3) 대상파일 경로 배치
4) java path 설정
5) java, javac 확인

 


7. 이클립스 다운로드
1) 스프링 STS 다운로드 : https://spring.io/tools / 최신은 IDE용으로만 배포 / *.jar 압축 파일 풀면 실행 파일 존재
2) 스프링 STS 과거 IDE 버전 :  https://github.com/spring-projects/sts4/wiki/Previous-Versions
3)  PHP용 다운로드 : https://www.eclipse.org/

 


8. 기본 설치
1) 톰켓 실행 파일 클릭 설치
2) MariaDB 설치

3) MySQL path 설정
4) PHP 압축 풀고 경로 배치
5) apache 압축 풀고 경로 배치
6) 이클립스 PHP 압축 풀고 경로 배치
7) 이클립스 STS(*.jar) 압축 풀고 경로 배치 / jar 파일 더블 클릭하면 자동 압축 풀림

 


9. Apache 설치
1) httpd.conf 수정

- ServerName 필히 설정
- ServerRoot "C:/APM/Apache24"
- 홈디렉토리 설정 / DocumentRoot & <Directory
- 443를 이용하기 위한 아래 항목 주석 해지
  · LoadModule ssl_module modules/mod_ssl.so
  · LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

2) 관리자 권한으로 cmd 실행
3) 서비스 등록 : httpd.exe -k install
4) 서비스 시작 : httpd.exe -k start


* VCRUNTIME140.dll 오류 해결 : http://www.microsoft.com/en-us/download/details.aspx?id=48145

☞ 해당 오류 코드는 apache 설치 폴더 아래 log 폴더 아래, 최근 에러 로그에 보면 확인 가능

☞ php -v CLI 명령을 통해서도 확인 가능

 

* 위와 같은 것 같지만 다른 오류 "PHP Warning: 'vcruntime140.dll' 14.0 is not compatible with this PHP build linked with 14.16 in Unknown on line 0" 

☞ 다음 파일 다운로드 설치 처리 : https://aka.ms/vs/17/release/vc_redist.x64.exe

☞ php -v 확인

 


10. PHP 연동 

 

1) httpd.conf 수정 / PHP 8.x 기준

PHPIniDir "c:\DEV\php8"
LoadModule php_module "c:\DEV\php8\php8apache2_4.dll"
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html

* httpd.conf 수정 / PHP 7.x 기준

   - LoadModule php7_module "c:/???/php7/php7apache2_4.dll"
   - php7apache2_4.dll 파일이 없을 경우 PHP 쓰레드 버전 다시 다운로드 필요
   - AddType application/x-httpd-php .php .html
   - AddHandler application/x-httpd-php .php .html

** 7.x 에서는 php7_module 로 호출하고 8.x에서는 버전이 빠진 php_module 로 호출

 

- PHPIniDir "c:/APM/php8" : 해당 경로 php.ini 사용, php.ini 설정이 적용되지 않을 경우 phpinfo(); 경로 확인 필요
- 인덱스 페이지 추가 : index.php
- 윈도우 경우 그냥 PHPIniDir 설정하지 않고 phpinfo()에서 나오는 곳에 셋업
* 위 경우 php.ini에서 ext 경로 절대 경로로 지정

 

2) php.ini 수정
- extension_dir ="에 php ext 경로 지정(상대 인식 못할 경우 절대 경로 지정) 
- extension=php_pdo_mysql.dll 주석 삭제 등 필요 라이브러리 주석 해지

- PHP data() 함수를 위한 기본 시간 설정 / date.timezone = "Asia/Seoul";

 

* Apache 윈도우에서 무진장 느릴 때, Apache error.log 보면 다음과 같은 오류 확인

(OS 64)지정된 네트워크 이름을 더 이상 사용할 수 없습니다.  : AH00341: winnt_accept: Asynchronous AcceptEx failed.

· 이 경우 아래와 같이 http.conf 정보 설정

· EnableMMAP off
· EnableSendfile on
· AcceptFilter http none
· AcceptFilter https none

아래 각 항목을 찾아 업로드 용량 제한을 설정한다.

max_execution_time = 30 	#저장 처리 시 업로드 시간 포함, 최대 실행 시간 / 초과시 오류
memory_limit = 128M			#메모리 최대 사용 제한 
post_max_size  = 100M		#POST 전송 데이터 최대 싸이즈
file_uploads = On			#업로드 서용
upload_max_filesize = 50M	#업로드 파일 최대 용량
max_file_uploads = 20		#한번 업로드 최대 파일 개수 단뒤 / 동시 업로드 20개 초과 시 오류

 

11) Apache + Tomcat 연동

 

1) 위에서 받은 연동 파일 "mod_jk.so" 아파치 웹서버 "C:\APM\Apache24\modules" 식의 경로의 모듈 폴더에 복사

 

2) httpd.conf 경로에 "workers.properties" 파일 생성

 

3) 해당 파일에 아래 기술 / httpd-2.4.27-Win64-VC15 기준(2.4.30 등 버전이 다름 설정 방법 바뀜) / 아이피 변경 필요

worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

 

4) httpd.conf  파일 열어 아래 구문 추가

LoadModule jk_module modules/mod_jk.so
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk_%y%m%.log"
JkMount /API/* ajp13

JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%s %Y] "
JkRequestLogFormat "%w %V %T"

* "/API/*" 설정으로 인하여 해당 폴더에 있는 모든 리소스는 WAS에서 실행되며 해당 폴더가 아닌 경우 웹서버에서 실행

 

5) 톰켓도 연동 정보 수정
server.xml 열어 "8009"로 검색하여 아래 내용 추가

<Connector protocol="AJP/1.3" port="8009" redirectPort="8443" /> 부분 주석은 풀지 말고 냅두고
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secretRequired="false" URIEncoding="UTF-8" />

기존 주석 부분은 톰켓만 쓰면  문제가 없는데 아파치 연동시 보안 문제로 아래 오류 발생
Service Unavailable.
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

또 개선된 아래 구문을 쓴다면
<Connector port="8009" protocol="AJP/1.3" secretRequired="false" packetSize="65536" tomcatAuthentication="false" URIEncoding="UTF-8" />

톰켓10 버전 기준(2020.03.26) 아래 오류 발생
Bad Gateway
The proxy server received an invalid response from an upstream server.

6) 각 서버 재시작 후
- 웹서버(80) 리소스 로딩 개별 확인
- 톰켓 8080 포트로 리소스 로딩 확인
- 웹서버(80)에서 톰켓 jsp 로딩 확인
- 혹 오류나면 "실행 > 이벤트 뷰어"를 통해 응용프로그램 로그 확인해보고 내용이 없다면
- 웹서버 로그 폴더에 mod_jk.log 내용 확인 필요
- 5번 가지고 최근 2시간 허비. 해결은 mod_jk 로그에서 아래 로그보고 해결
[Thu Mar 26 10:22:37.588 2020] [10592:7608] [error] ajp_send_request::jk_ajp_common.c (1725): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=61)\
- 내용은 결국 ajp를 처리 못한다는 얘기인데 구글링 하니
- 톰켓 CVE-2020-1938 취약점 보고가 확인되어 톰켓 8, 9버전 등 모두 마이너 버전 업데이트 했다고 나오며
- Connector에 “secretRequired=”false" 를 추가하라는 말 있음
- 이를 착안하여 해결

 

7) SSL(443) 아피치 쪽에서 jsp 확장자 인식 처리 / 톰켓으로 분기

<VirtualHost *:443>
	DocumentRoot "e:/workspace/{context}"
	ServerName xxx.xxx.xxx:443
	ErrorLog "logs/xxx_xxx_xxx_https_error.log"
	CustomLog "logs/xxx_xxx_xxx_access.log" common
	SSLEngine on
	SSLCertificateFile ssl/xxx_xxx_xxx.crt
	SSLCertificateKeyFile ssl/xxx_xxx_xxx.key
	
	JkMount /*.jsp ajp13

	<Directory "e:/workspace/{contenxt}">
		AllowOverride FileInfo AuthConfig Limit Indexes
		Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
		<Limit GET POST OPTIONS>
			Require all granted
		</Limit>
		<LimitExcept GET POST OPTIONS>
			Require all granted
		</LimitExcept>
	</Directory>
</VirtualHost>

 

 

● 세션 유지 문제 / HTTP & HTTP Session Share
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=None
#해당 구문이 기술되어 있으면 https는 유지가 되나 http에서는 세션 유지가 되지 않음

 

 

● PHP, php 확장자 숨길 때 httpd.conf(리눅스 경우 apache2.conf 파일) 설정

Options Indexes FollowSymLinks MultiViews
AddType application/x-httpd-php .php .jsp
Require all granted
AllowOverride FileInfo

 

 

● MariaDB 대소문자 구분 및 스케줄러 동작 활성화 / my.ini 아래 내용 추가

lower_case_table_names = 2
event_scheduler = ON

 

 


 

● 이하 Spring Boot 4 연계 시

ajp13.ajp.protocol=AJP/1.3
ajp13.ajp.port=8009   //포트는 Apache 웹서버workers.properties에서 해당 context 포트와 동일
ajp13.ajp.enabled=true

 

● Configuration 설정

package com.common.main.config;

import org.apache.catalina.connector.Connector;
import org.apache.coyote.ajp.AbstractAjpProtocol;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class ContainerConfig {

	@Value("${ajp13.ajp.protocol}")
	String ajpProtocal;
	
	@Value("${ajp13.ajp.port}")
	int ajpPort;
	
	@Bean
	public ServletWebServerFactory servletContainer() {
		TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
		tomcat.addAdditionalTomcatConnectors(createAjpConnector());
		return tomcat;
	}
	
	private Connector createAjpConnector() {
		Connector ajpConnector = new Connector(ajpProtocal);
		ajpConnector.setPort(ajpPort);
		ajpConnector.setSecure(false);
		ajpConnector.setAllowTrace(false);
		ajpConnector.setScheme("http");
		((AbstractAjpProtocol<?>)ajpConnector.getProtocolHandler()).setSecretRequired(false);
		return ajpConnector;
	}
}

 

Posted by 하리하라​
:

● CPU 전체 정보 확인 
> $ cat /proc/cpuinfo

●  CPU 코어 수 확인
> $ cat /proc/cpuinfo | grep processor | wc -l
 
● 논리 코어 수 확인
> $ grep -c processor /proc/cpuinfo


● 물리 CPU 개수 확인
> $ grep "physical id" /proc/cpuinfo | sort -u | wc -l

● CPU당 물리 코어 수 확인
> $ grep "cpu cores" /proc/cpuinfo | tail -1

● 우분투 그래픽 카드 GPU 확인 방법
> $ lspci | grep -i VGA

● 혹은 / 관련 명령어 설치 필요
> $ nvidia-smi --query | fgrep 'Product Name'

● 특정 서비스 포트 서비스 확인 
> netstat -anp | grep LISTEN | grep ssh

● 정규식으로 파일 특정 내용 찾기
> cat /etc/ssh/sshd_config | egrep ^\#?Port 

 

● CPU 온도 확인

> 

●  하드웨어 온도 측정도구
> apt-get install hddtemp

● hddtemp 환경설정
> dpkg-reconfigure hddtemp

 

● Command 백그라운드 실행

- 백그라운드(배치) 실행(터미널 끊기면 종료됨) : [명령어] &
- 백그라운드 실행(터미널 끊김과 상관 없음) : nohup [명령어] &

- Screen 명령어 이용 - 강추

 

● Screen 사용 방법 

- 백그라운드 명령어 실행 전에 다음 실행 : screen -S [세션명]

- 백그라운드 명령어 실행 후 : "Ctrl + a + d" 누름 명렁어 수행한 상태로 빠져나옴

- 다시 이쪽으로 갈 때는 : screen -R [세션명]

- 만들어진 세션명 확인 : screen -list

 

● 사용자 생성 및 삭제

- 생성 : sudo useradd [사용자 아이디] -d /home/[사용자 폴더] -m 

- 사용자 비밀번호 설정 : sudo passwd [사용자 아이디]

- 홈디렉토리 삭제 : sudo rm -f -r [사용자 폴더명]

- 사용자 삭제 : sudo userdel [사용자 아이디]

- 사용자 sudo 권한 부여 : sudo usermod -a -G sudo [사용자 아이디]

- 사용자 bash 권한 부여 : sudo usermod -s /bin/bash

 

● 윈도우 CLI(명령어) 기반 리눅스로 파일 복제

- scp [복제 파일명] -P [ssh 포트] [계정아이디]@[IP ADDR]:[복제 대상 폴더 기술]

 

 톰켓 로그 보기

- tail -f [파일명]

- tail -f -n 20 [파일명]  //20줄 보기 

- tail -f -n 20 cat.log

 

 전체 파일 찾기

- find -name [경로명] [파일명]

- find -name / aaa.txt

 

 찾은 파일 날짜 정보 및 최근 2일 이후 파일만 보기

 sudo find / -name "abc*.*" -mtime -2 -exec ls -lrt {} \;

 

 찾은 파일 날짜 정보 및 최근 2일 이전 파일만 보기

 sudo find / -name "abc*.*" -mtime +2 -exec ls -lrt {} \;

 

 찾은 파일 날짜 정보 및 최근 3일 날짜 기준, 하루동안 생성된 파일 보기

 sudo find / -name "abc*.*" -mtime 2 -exec ls -lrt {} \;

* 2일(48시간) ~ 3일(72시간)

 

 글자 포함된 모든 파일 찾기

- grep -r -l [키워드] [찾을경로]

- grep -r -l '찾을 글자' ./*

 

 

 

 

 

Posted by 하리하라​
: