[IBM HTTPServer] ๋กœ๊ทธ ๋กœํ…Œ์ด์…˜(Log Rotation) ์„ค์ • (rotatelogs)

IBM HTTPServer(Apache ๊ธฐ๋ฐ˜)์˜ ๋กœ๊ทธ ํŒŒ์ผ์ด ๋‹จ์ผ ํŒŒ์ผ๋กœ ๋ฌดํ•œ์ • ์ปค์ง€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด rotatelogs ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ(Day) ๋‹จ์œ„ ๋“ฑ์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์ž๋™ ๋ถ„ํ• (Rotation)ํ•˜๋Š” ์„ค์ • ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Test Environment

  • OS: CentOS 7.2
  • Web Server: IBM HTTPServer v8.5

1. httpd.conf ์„ค์ • ์ˆ˜์ •

IBM HTTPServer๋Š” Apache ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ ๋‚ด์žฅ๋œ rotatelogs ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ํŒŒ์ดํ”„(|)๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ํŒŒ์ผ ๊ฒฝ๋กœ

  • ์œ„์น˜: /IBM/HTTPServer/conf/httpd.conf

์ˆ˜์ • ๋‚ด์šฉ

๊ธฐ์กด ErrorLog์™€ CustomLog ์„ค์ •์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ๋ฌธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. 86400์€ ์ดˆ ๋‹จ์œ„(24์‹œ๊ฐ„)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

# 1. Error Log Rotation ์„ค์ •
# ErrorLog logs/error_log (๊ธฐ์กด ์ฃผ์„ ์ฒ˜๋ฆฌ)
ErrorLog "|/IBM/HTTPServer/bin/rotatelogs /IBM/HTTPServer/logs/error_%Y%m%d.log 86400"

# 2. Access Log Rotation ์„ค์ •
# CustomLog logs/access_log common (๊ธฐ์กด ์ฃผ์„ ์ฒ˜๋ฆฌ)
CustomLog "|/IBM/HTTPServer/bin/rotatelogs /IBM/HTTPServer/logs/access_%Y%m%d.log 86400" common

2. ๋กœ๊ทธ ํฌ๋งท ์ŠคํŠธ๋ง (Format Strings)

๋กœ๊ทธ ํŒŒ์ผ๋ช… ์ƒ์„ฑ ์‹œ ๋‚ ์งœ ํ˜•์‹์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ํฌ๋งท ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

Format Description
%Y 4์ž๋ฆฌ ์—ฐ๋„ (์˜ˆ: 2024)
%y 2์ž๋ฆฌ ์—ฐ๋„ (์˜ˆ: 24)
%m 2์ž๋ฆฌ ์›” (01~12)
%d 2์ž๋ฆฌ ์ผ (01~31)
%H 24์‹œ๊ฐ„์ œ ์‹œ๊ฐ„ (00~23)
%M ๋ถ„ (00~59)
%S ์ดˆ (00~59)
%a / %A ์š”์ผ ์ด๋ฆ„ (๋‹จ์ถ• / ์ „์ฒด)
%b / %B ์›” ์ด๋ฆ„ (๋‹จ์ถ• / ์ „์ฒด)

Next Step:
์„ค์ •์„ ๋ณ€๊ฒฝํ•œ ํ›„์—๋Š” ๋ฐ˜๋“œ์‹œ IBM HTTPServer๋ฅผ ์žฌ๊ธฐ๋™(Restart)ํ•ด์•ผ ๋กœ๊ทธ ๋กœํ…Œ์ด์…˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์žฌ๊ธฐ๋™ ํ›„ logs ๋””๋ ‰ํ† ๋ฆฌ์— ๋‚ ์งœ๊ฐ€ ๋ถ™์€ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

[IBM HTTPServer] SSL(HTTPS) ๊ตฌ์„ฑ ๋ฐ ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ์„ค์ • ๊ฐ€์ด๋“œ

IBM HTTP Server(IHS)์— SSL ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ•˜์—ฌ HTTPS ํ†ต์‹ ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ , WebSphere Application Server(WAS)์™€ ์ •์ƒ์ ์œผ๋กœ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ • ์ ˆ์ฐจ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. httpd.conf ์„ค์ •, ํ‚ค ํŒŒ์ผ(KDB) ์ง€์ •, ๊ทธ๋ฆฌ๊ณ  WAS ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ํฌํŠธ ๋“ฑ๋ก ๊ณผ์ •์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

Test Environment

  • OS: CentOS 7.2 (๊ฒฝ๋กœ๋Š” Linux ๊ธฐ์ค€, Windows๋Š” ๋“œ๋ผ์ด๋ธŒ๋ช… ์ฐธ์กฐ)
  • Web Server: IBM HTTP Server v8.5
  • WAS: WebSphere Application Server v8.5

1. ์›น ์„œ๋ฒ„ ์„ค์ • (httpd.conf)

IHS์˜ ๋ฉ”์ธ ์„ค์ • ํŒŒ์ผ์—์„œ SSL ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜๊ณ , 443 ํฌํŠธ์— ๋Œ€ํ•œ VirtualHost๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ํŒŒ์ผ ์ˆ˜์ •

  • ํŒŒ์ผ ์œ„์น˜: [IHS_ROOT]/conf/httpd.conf
  • ์ฃผ์š” ์ž‘์—…: ๋ชจ๋“ˆ ์ฃผ์„ ํ•ด์ œ, ํฌํŠธ ๋ฆฌ์Šจ, ์ธ์ฆ์„œ ํ‚ค ํŒŒ์ผ(KDB) ๊ฒฝ๋กœ ์ง€์ •
### 1. SSL Module Load ###
LoadModule ibm_ssl_module modules/mod_ibm_ssl.so

### 2. Port Listen ###
Listen 0.0.0.0:443

### 3. Virtual Host Configuration ###
# 80 ํฌํŠธ (HTTP) ์„ค์ •
<VirtualHost *:80>
    ServerName ad1.test.com
    DocumentRoot "/opt/IBM/HTTPServer/htdocs"
    # Redirect permanent / https://ad1.test.com/  (ํ•„์š” ์‹œ HTTPS๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ)
</VirtualHost>

# 443 ํฌํŠธ (HTTPS) ์„ค์ •
<VirtualHost *:443>
    SSLEnable
    SSLClientAuth none
    ServerName ad1.test.com
    DocumentRoot "/opt/IBM/HTTPServer/htdocs"
    
    # ๋กœ๊ทธ ์„ค์ • (๊ถŒ์žฅ)
    ErrorLog logs/ssl_error_log
    CustomLog logs/ssl_access_log common
</VirtualHost>

### 4. Global SSL Config ###
# VirtualHost ๋ฐ–์—์„œ ์ „์—ญ ์„ค์ •์œผ๋กœ Keyfile ์ง€์ •
SSLDisable
Keyfile "/opt/IBM/HTTPServer/ssl/key.kdb"

# ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์„ค์ • ์˜ˆ์‹œ (TLS 1.2๋งŒ ํ—ˆ์šฉ ์‹œ)
# SSLProtocolDisable SSLv2 SSLv3 TLSv10 TLSv11
# SSLProtocolEnable TLSv12

Note: Keyfile ์ง€์‹œ์–ด๋Š” kdb ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฒฝ๋กœ์— key.sth (Stash file)์ด ํ•จ๊ป˜ ์กด์žฌํ•ด์•ผ ์•”ํ˜ธ๋ฅผ ๋ฌป์ง€ ์•Š๊ณ  ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค.


2. ์ธ์ฆ์„œ ํ‚ค ํŒŒ์ผ (KDB) ์ค€๋น„

IHS๋Š” CMS Key Database (.kdb) ํฌ๋งท์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ikeyman GUI ํˆด์ด๋‚˜ gskcapicmd(CLI)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ธํ‚ค์™€ ์ธ์ฆ์„œ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ๋„๊ตฌ ์œ„์น˜: [IHS_ROOT]/bin/ikeyman (GUI ์‹คํ–‰ ์‹œ X-Window ํ•„์š”)
  • ์ž‘์—… ๋‚ด์šฉ:
    • ์ƒˆ๋กœ์šด KDB ํŒŒ์ผ ์ƒ์„ฑ (CMS ํƒ€์ž…)
    • ๊ฐœ์ธํ‚ค ์ƒ์„ฑ (CSR) ๋ฐ ๋ฐœ๊ธ‰๋ฐ›์€ ์ธ์ฆ์„œ(Signer, Personal) Import
    • ์ค‘์š”: "Stash password to a file" ์˜ต์…˜์„ ์ฒดํฌํ•˜์—ฌ .sth ํŒŒ์ผ ์ƒ์„ฑ ํ•„์ˆ˜

3. WAS ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ (Virtual Host) ๋“ฑ๋ก

์›น ์„œ๋ฒ„ ์„ค์ •์„ ๋งˆ์ณค๋”๋ผ๋„, WAS์˜ ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ๋ชฉ๋ก์— SSL ํฌํŠธ(443)๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์š”์ฒญ์„ ๊ฑฐ๋ถ€ํ•˜๊ฑฐ๋‚˜ WAS๊ฐ€ ์š”์ฒญ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ ์ฝ˜์†” ์„ค์ •

  1. ์œ„์น˜: ํ™˜๊ฒฝ(Environment) > ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ(Virtual Hosts) > default_host (๋˜๋Š” ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ) > ํ˜ธ์ŠคํŠธ ๋ณ„๋ช…(Host Aliases)
  2. ์ž‘์—…: ์ƒˆ๋กœ ์ž‘์„ฑ(New) ํด๋ฆญ
  3. ์ž…๋ ฅ:
    • ํ˜ธ์ŠคํŠธ ์ด๋ฆ„: * (๋ชจ๋“  ํ˜ธ์ŠคํŠธ) ๋˜๋Š” ad1.test.com
    • ํฌํŠธ: 443
  4. ์ €์žฅ: ๋งˆ์Šคํ„ฐ ๊ตฌ์„ฑ์— ์ €์žฅ ํ›„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋™๊ธฐํ™”.

4. ๊ฒ€์ฆ ๋ฐ ์žฌ๊ธฐ๋™

์„ค์ • ํŒŒ์ผ์˜ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ์ฒดํฌํ•˜๊ณ  ์›น ์„œ๋ฒ„๋ฅผ ์žฌ๊ธฐ๋™ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Syntax Check

# IHS bin ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
./apachectl -t

# ๊ฒฐ๊ณผ๊ฐ€ 'Syntax OK'์—ฌ์•ผ ํ•จ

Server Restart

./apachectl restart

Next Step:
๋ธŒ๋ผ์šฐ์ €์—์„œ https://ad1.test.com์œผ๋กœ ์ ‘์†ํ•˜์—ฌ ์ž๋ฌผ์‡  ์•„์ด์ฝ˜์ด ์ •์ƒ์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , SSL Labs ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์ ์šฉ๋œ ์•”ํ˜ธํ™” ํ”„๋กœํ† ์ฝœ(TLS 1.2 ๋“ฑ)์˜ ๋ณด์•ˆ ๋“ฑ๊ธ‰์„ ์ ๊ฒ€ํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

[WebSphere] Hostname, Node Name, Cell Name ๋ณ€๊ฒฝ ๊ฐ€์ด๋“œ (wsadmin vs ์ˆ˜๋™ ์„ค์ •)

์„œ๋ฒ„ ์ด๊ด€(Migration)์ด๋‚˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด WebSphere ํ™˜๊ฒฝ์˜ Hostname, Node Name, Cell Name์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. IBM ๊ถŒ์žฅ ๋ฐฉ์‹์ธ wsadmin์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•๊ณผ, ์„ค์ • ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋Š” ์ˆ˜๋™ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. Hostname ๋ณ€๊ฒฝ

์„œ๋ฒ„์˜ ๋ฌผ๋ฆฌ์  ํ˜ธ์ŠคํŠธ๋ช…์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ, WAS ์„ค์ • ๋‚ด์˜ serverindex.xml ๋“ฑ ์—”๋“œํฌ์ธํŠธ ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Method 1: wsadmin ์‚ฌ์šฉ (IBM ๊ถŒ์žฅ)

IBM์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. AdminTask ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅ์†Œ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

# 1. wsadmin ์ ‘์† (Dmgr ๊ตฌ๋™ ํ•„์š”)
cd [Profile_Root]/bin
./wsadmin.sh -conntype NONE -lang jython

# 2. Hostname ๋ณ€๊ฒฝ ๋ช…๋ น ์ˆ˜ํ–‰
wsadmin> AdminTask.changeHostName('[-nodeName [๋…ธ๋“œ๋ช…] -hostName [์ƒˆ๋กœ์šด_ํ˜ธ์ŠคํŠธ๋ช…]]')

# 3. ์ €์žฅ ๋ฐ ์ข…๋ฃŒ
wsadmin> AdminConfig.save()
wsadmin> quit

Note: ND(Network Deployment) ํ™˜๊ฒฝ์ธ ๊ฒฝ์šฐ ์ž‘์—… ํ›„ ๋ฐ˜๋“œ์‹œ syncNode๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Method 2: serverindex.xml ์ˆ˜๋™ ๋ณ€๊ฒฝ (๋น„์ƒ ์‹œ)

wsadmin ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋…ธ๋“œ๋งŒ ๊ฐ•์ œ๋กœ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. serverindex.xml ํŒŒ์ผ์—๋Š” ๊ฐ ํฌํŠธ์˜ EndPoint Host ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์ƒ ํŒŒ์ผ ์œ„์น˜:

  • ND (Dmgr): [WAS_HOME]/profiles/[DmgrProfile]/config/cells/[CellName]/nodes/[NodeName]/serverindex.xml
  • Base (AppSrv): [WAS_HOME]/profiles/[AppProfile]/config/cells/[CellName]/nodes/[NodeName]/serverindex.xml

์ผ๊ด„ ๋ณ€๊ฒฝ ์Šคํฌ๋ฆฝํŠธ ์˜ˆ์‹œ (Shell):

#!/bin/sh
# ์‚ฌ์šฉ๋ฒ•: ./change_host.sh [์ƒˆ๋กœ์šด_ํ˜ธ์ŠคํŠธ๋ช…]

OLD_HOST="target_old_hostname"
NEW_HOST=$1

find ./AppServer -type f -name "serverindex.xml" | while read file
do
    echo "Processing $file ..."
    sed "s/$OLD_HOST/$NEW_HOST/g" "$file" > "${file}.tmp" && mv "${file}.tmp" "$file"
done

2. Node Name ๋ณ€๊ฒฝ

๊ธฐ์กด์— ์ƒ์„ฑ๋œ ๋…ธ๋“œ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” WAS์—์„œ ์ œ๊ณตํ•˜๋Š” renameNode ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—… ์ ˆ์ฐจ

  1. Dmgr ๊ตฌ๋™: Deployment Manager๊ฐ€ ์‹คํ–‰ ์ค‘์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. Node ์ •์ง€: ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ๋…ธ๋“œ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ช…๋ น์–ด ์‹คํ–‰: ํ•ด๋‹น ํ”„๋กœํŒŒ์ผ์˜ bin ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# ๊ตฌ๋ฌธ
renameNode.sh [Dmgr_Host] [Dmgr_SOAP_Port] [์ƒˆ๋กœ์šด_๋…ธ๋“œ๋ช…] -username [ID] -password [PW]

# ์‚ฌ์šฉ ์˜ˆ์‹œ
cd /IBM/WAS/profiles/AppSrv01/bin
./renameNode.sh 192.168.1.10 8879 NewNode01 -username admin -password admin

3. Cell Name ๋ฐ Dmgr Node ๋ณ€๊ฒฝ (Advanced)

Cell ์ด๋ฆ„ ๋ณ€๊ฒฝ์ด๋‚˜ Dmgr ์ž์ฒด์˜ Node ์ด๋ฆ„ ๋ณ€๊ฒฝ์€ ๋ณ„๋„์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉฐ, **๋‹ค์ˆ˜์˜ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ํŽธ์ง‘(Manual Editing)**ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ์ „ ์ „์ฒด ๋ฐฑ์—…์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ๋Œ€์ƒ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ

์•„๋ž˜ ํŒŒ์ผ๋“ค ๋‚ด๋ถ€์˜ ๊ธฐ์กด Cell/Node ์ด๋ฆ„์„ ์ƒˆ๋กœ์šด ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„๋„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„ ๋ณ€๊ฒฝ:
    • config/cells/[Old_Cell_Name][New_Cell_Name]
    • config/cells/[New_Cell_Name]/nodes/[Old_Node_Name][New_Node_Name]
  • ์„ค์ • ํŒŒ์ผ ๋‚ด์šฉ ์ˆ˜์ • (String Replace):
    • cell.xml
    • node.xml
    • security.xml
    • variables.xml
    • resources.xml
    • setupCmdLine.bat (or .sh)
    • coregroup.xml (DefaultCoreGroup ๊ฒฝ๋กœ ํ•˜์œ„)
    • nodegroup.xml (DefaultNodeGroup ๊ฒฝ๋กœ ํ•˜์œ„)

์ฃผ์˜: Admin Console ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(isclite) ๊ด€๋ จ ์„ค์ • ํŒŒ์ผ(deployment.xml ๋“ฑ)๋„ ์ˆ˜์ • ๋Œ€์ƒ์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋งค์šฐ ๋ณต์žกํ•˜๋ฏ€๋กœ ๊ฐ€๊ธ‰์  ํ”„๋กœํŒŒ์ผ์„ ์žฌ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.


4. ํ›„์† ์กฐ์น˜ (Post-Process)

๋ชจ๋“  ์ด๋ฆ„ ๋ณ€๊ฒฝ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ํ›„์—๋Š” ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ „ํŒŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. Sync Node: (ND ํ™˜๊ฒฝ) syncNode.sh๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ์„ค์ •์„ ๋กœ์ปฌ ๋…ธ๋“œ์— ๋™๊ธฐํ™”.
  2. ํ”Œ๋Ÿฌ๊ทธ์ธ ์žฌ์ƒ์„ฑ: ์›น ์„œ๋ฒ„ ํ”Œ๋Ÿฌ๊ทธ์ธ(plugin-cfg.xml)์„ ์žฌ์ƒ์„ฑ ๋ฐ ์ „ํŒŒ.
  3. ์›น ์„œ๋ฒ„ ์žฌ๊ธฐ๋™: IHS ๋“ฑ ์›น ์„œ๋ฒ„ ์žฌ๊ธฐ๋™.
# ์›น ์„œ๋ฒ„ ์žฌ๊ธฐ๋™ ์˜ˆ์‹œ
[IHS_HOME]/bin/apachectl restart

[WebSphere] WEB/WAS ์ •์ (Static) ๋ฐ ๋™์ (Dynamic) ์ปจํ…์ธ  ๋ถ„๋ฆฌ ์ฒ˜๋ฆฌ ์ „๋žต

์›น ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ์ด๋ฏธ์ง€, CSS, JS ๋“ฑ ์ •์  ๋ฆฌ์†Œ์Šค๋Š” Web Server(IHS)๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ณ , JSP, Servlet ๋“ฑ ๋™์  ๋ฆฌ์†Œ์Šค๋Š” WAS๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. plugin-cfg.xml ์ œ์–ด ๋ฐฉ์‹๊ณผ WAS์˜ fileServingEnabled ์˜ต์…˜ ์‚ฌ์šฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Test Environment

  • OS: CentOS 7.2
  • Web Server: IBM HTTP Server v8.5
  • WAS: WebSphere Application Server v8.5

1. ๊ฐœ์š” ๋ฐ ๋ชฉ์ 

๊ธฐ๋ณธ์ ์œผ๋กœ WebSphere ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋ชจ๋“  ์š”์ฒญ์„ WAS๋กœ ์ „๋‹ฌํ•˜๋„๋ก ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ •์  ํŒŒ์ผ(*.jpg, *.css ๋“ฑ)๊นŒ์ง€ WAS๊ฐ€ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ์˜ ์Šค๋ ˆ๋“œ ์ž์›์„ ๋‚ญ๋น„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ ํšจ์œจ์„ฑ์„ ๋†’์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.


2. Method 1: Plugin-cfg.xml ์ˆ˜๋™ ์ œ์–ด

๊ฐ€์žฅ ์ง๊ด€์ ์ธ ๋ฐฉ๋ฒ•์€ ์›น ์„œ๋ฒ„ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ • ํŒŒ์ผ(plugin-cfg.xml)์—์„œ WAS๋กœ ๋„˜๊ธธ ์š”์ฒญ์˜ ํŒจํ„ด(URI)์„ ๊ฐ•์ œ๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ค์ • ํŒŒ์ผ ์ˆ˜์ •

  • ํŒŒ์ผ ์œ„์น˜: [IHS_ROOT]/Plugins/config/[WebServerName]/plugin-cfg.xml
  • ์ˆ˜์ • ๋‚ด์šฉ: UriGroup ๋‚ด์—์„œ WAS๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ํ™•์žฅ์ž๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
<UriGroup Name="default_host_server1_root-PCNode01_Cluster_URIs">
    <!-- WAS๊ฐ€ ์ฒ˜๋ฆฌํ•  ๋™์  ์ปจํ…์ธ ๋งŒ ๋ช…์‹œ -->
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsp"/>
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.do"/>
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/servlet/*"/>
</UriGroup>

์œ„์™€ ๊ฐ™์ด ์„ค์ •ํ•˜๋ฉด ๋ช…์‹œ๋˜์ง€ ์•Š์€ ์ด๋ฏธ์ง€๋‚˜ HTML ํŒŒ์ผ ๋“ฑ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํƒ€์ง€ ์•Š๊ณ  ์›น ์„œ๋ฒ„(IHS)๊ฐ€ ์ž์‹ ์˜ DocumentRoot ๋˜๋Š” Alias ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ์ฐพ์•„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


3. Method 2: WAS fileServingEnabled ์˜ต์…˜ ์‚ฌ์šฉ

WebSphere ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ์„ค์ •์—์„œ ์ •์  ํŒŒ์ผ ์„œ๋น™ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”(False)ํ•˜์—ฌ, ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒ์„ฑ ์‹œ ์ •์  ํŒŒ์ผ์— ๋Œ€ํ•œ URI ๋งคํ•‘์„ ์ž๋™์œผ๋กœ ์ œ์™ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์„ค์ • ํŒŒ์ผ ์œ„์น˜ ๋ฐ ์ˆ˜์ •

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ WEB-INF ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํ™•์žฅ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒฝ๋กœ ์˜ˆ์‹œ: [Profile_Root]/installedApps/[CellName]/[AppName].ear/[WarName].war/WEB-INF/

1) ibm-web-ext.xmi (๊ตฌ๋ฒ„์ „ ์Šคํƒ€์ผ)

<webappext:WebAppExtension ... fileServingEnabled="false" ...>
</webappext:WebAppExtension>

2) ibm-web-ext.xml (WAS v7.0 ์ด์ƒ ๊ถŒ์žฅ)

<web-ext xmlns="http://websphere.ibm.com/xml/ns/javaee/web-ext/1.0" ...>
    <!-- ์ •์  ํŒŒ์ผ ์„œ๋น™ ๋น„ํ™œ์„ฑํ™” -->
    <enable-file-serving value="false"/>
</web-ext>

์ ์šฉ ์ ˆ์ฐจ

  1. ์„ค์ • ํŒŒ์ผ ์ˆ˜์ • (fileServingEnabled="false")
  2. WAS ๊ด€๋ฆฌ ์ฝ˜์†”์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์žฌ์ƒ์„ฑ (Generate Plug-in)
  3. ์žฌ์ƒ์„ฑ๋œ plugin-cfg.xml์„ ์›น ์„œ๋ฒ„๋กœ ์ „ํŒŒ (Propagate)

์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด plugin-cfg.xml ๋‚ด์— ์ •์  ํŒŒ์ผ(*.html, *.jpg ๋“ฑ)์— ๋Œ€ํ•œ URI ์ •์˜๊ฐ€ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.


4. WebServer (IHS) Alias ์„ค์ •

WAS๋กœ ์š”์ฒญ์ด ๋„˜์–ด๊ฐ€์ง€ ์•Š๋Š” ์ •์  ํŒŒ์ผ๋“ค์„ ์›น ์„œ๋ฒ„๊ฐ€ ์ฐพ์•„์„œ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌผ๋ฆฌ์  ๊ฒฝ๋กœ๋ฅผ ๋งคํ•‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

httpd.conf ์„ค์ •

  • ํŒŒ์ผ ์œ„์น˜: [IHS_ROOT]/conf/httpd.conf
  • ์„ค์ • ์˜ˆ์‹œ: URL์˜ /images ์š”์ฒญ์„ ์‹ค์ œ ์„œ๋ฒ„์˜ /home/images ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์—ฐ๊ฒฐ
# ์ •์  ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ ๋งคํ•‘
Alias /images /home/images

<Directory "/home/images">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

5. ์š”์•ฝ ๋ฐ ์ฃผ์˜์‚ฌํ•ญ

  • Full URI ํŒจํ„ด ์ฃผ์˜: plugin-cfg.xml์— Name="*" ์™€ ๊ฐ™์€ ์„ค์ •์ด ์žˆ๋‹ค๋ฉด ๋ชจ๋“  ์š”์ฒญ์ด WAS๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์ฃผ์›์ธ์ด๋ฏ€๋กœ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋™๊ธฐํ™”: fileServingEnabled ์˜ต์…˜์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค๋ฉด ๋ฐ˜๋“œ์‹œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์žฌ์ƒ์„ฑ ๋ฐ ์ „ํŒŒํ•˜๊ณ  ์›น ์„œ๋ฒ„๋ฅผ ์žฌ๊ธฐ๋™(Restart) ํ•ด์•ผ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ ์ „๋žต: ์ •์ /๋™์  ๋ถ„๋ฆฌ ๊ตฌ์„ฑ ์‹œ, ๊ฐœ๋ฐœํŒ€์€ ์ •์  ๋ฆฌ์†Œ์Šค(์ด๋ฏธ์ง€ ๋“ฑ)๋ฅผ WAS ๋ฐฐํฌ ํŒจํ‚ค์ง€(WAR/EAR)์™€ ๋ณ„๋„๋กœ ์›น ์„œ๋ฒ„ ๊ฒฝ๋กœ์— ๋ฐฐํฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋ฆฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Next Step:
๊ตฌ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ(F12)์˜ Network ํƒญ์„ ํ†ตํ•ด ์ •์  ํŒŒ์ผ ์š”์ฒญ ์‹œ Response Header์— Server: IBM_HTTP_Server๊ฐ€ ์ฐํžˆ๋Š”์ง€(WAS ์ •๋ณด๊ฐ€ ์•„๋‹Œ์ง€) ํ™•์ธํ•˜์—ฌ ๋ถ„๋ฆฌ ์ฒ˜๋ฆฌ๊ฐ€ ์ •์ƒ์ ์ธ์ง€ ๊ฒ€์ฆํ•ด๋ณด์‹ญ์‹œ์˜ค.

[WebSphere] ํ•œ๊ธ€ ๊นจ์ง ํ˜„์ƒ ์กฐ์น˜ ๊ฐ€์ด๋“œ (Encoding ์„ค์ •)

WebSphere Application Server(WAS)์—์„œ ํ•œ๊ธ€์ด ๊นจ์ ธ ๋ณด์ผ ๋•Œ ํ™•์ธํ•ด์•ผ ํ•  ์ธ์ฝ”๋”ฉ ์„ค์ •์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ(JSP/HTML) ๋ ˆ๋ฒจ์˜ ๋ช…์‹œ์  ์„ ์–ธ๊ณผ JVM ๋ ˆ๋ฒจ์˜ ์‹œ์Šคํ…œ ํ”„๋กœํผํ‹ฐ ์„ค์ •์„ ๋ชจ๋‘ ์ ๊ฒ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Test Environment

  • OS: CentOS 7.2
  • WAS Version: WebSphere v8.5

1. ์†Œ์Šค ์ฝ”๋“œ ๋ ˆ๋ฒจ ์„ค์ • (Application Level)

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์Šค ์ฝ”๋“œ ์ƒ๋‹จ์— ์„ ์–ธ๋œ ์ธ์ฝ”๋”ฉ ์„ค์ •์„ ์ตœ์šฐ์„ ์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค. JSP์™€ HTML ํŒŒ์ผ์— ์ธ์ฝ”๋”ฉ์ด ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

JSP ์ง€์‹œ์–ด (Directive) ์„ ์–ธ

JSP ํŒŒ์ผ ์ตœ์ƒ๋‹จ์— pageEncoding๊ณผ contentType์„ ์ผ์น˜์‹œ์ผœ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. (์ตœ๊ทผ ํ™˜๊ฒฝ์€ UTF-8 ๊ถŒ์žฅ, ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์€ EUC-KR ์‚ฌ์šฉ)

<!-- UTF-8 ์„ค์ • (๊ถŒ์žฅ) -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<!-- EUC-KR ์„ค์ • (Legacy) -->
<%@ page language="java" contentType="text/html; charset=EUC-KR" %>

HTML Meta ํƒœ๊ทธ ์„ ์–ธ

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฌธ์„œ๋ฅผ ํ•ด์„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋ฌธ์ž์…‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

<!-- UTF-8 ์„ค์ • -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

<!-- EUC-KR ์„ค์ • -->
<META http-equiv="Content-Type" content="text/html; charset=EUC-KR">

2. ์„œ๋ฒ„ ๋ ˆ๋ฒจ ์„ค์ • (JVM Custom Properties)

์†Œ์Šค ์ฝ”๋“œ ์„ค์ •์ด ์˜ฌ๋ฐ”๋ฆ„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ•œ๊ธ€์ด ๊นจ์ง€๊ฑฐ๋‚˜, ์‹œ์Šคํ…œ ๋กœ๊ทธ ๋ฐ ํŒŒ์ผ ์ž…์ถœ๋ ฅ ์‹œ ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ WAS์˜ JVM ์†์„ฑ์„ ๊ฐ•์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ๊ฒฝ๋กœ

WAS ๊ด€๋ฆฌ ์ฝ˜์†”(Admin Console)์—์„œ ์•„๋ž˜ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  1. Servers > Server Types > WebSphere application servers
  2. [Server Name] ํด๋ฆญ
  3. Java and Process Management > Process definition
  4. Java Virtual Machine > Custom properties

์ฃผ์š” ์†์„ฑ ์„ค์ •

์‚ฌ์šฉํ•˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹(UTF-8 ๋˜๋Š” EUC-KR)์— ๋งž์ถฐ ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • client.encoding.override: ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์™€ ํ†ต์‹  ์‹œ ์‚ฌ์šฉํ•  ์ธ์ฝ”๋”ฉ ๊ฐ•์ œ ์ง€์ •
  • file.encoding: JVM์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ฝ๊ณ  ์“ธ ๋•Œ ์‚ฌ์šฉํ•  ๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ ์ง€์ •
# Case 1: UTF-8 ํ™˜๊ฒฝ (๊ถŒ์žฅ)
client.encoding.override = UTF-8
file.encoding = UTF-8

# Case 2: EUC-KR ํ™˜๊ฒฝ
client.encoding.override = EUC-KR
file.encoding = EUC-KR

3. ์ ๊ฒ€ ํฌ์ธํŠธ

  • ์šฐ์„ ์ˆœ์œ„: ์ผ๋ฐ˜์ ์œผ๋กœ JVM ์„ค์ • < web.xml ์„ค์ • < JSP/HTML ๋‚ด ์„ ์–ธ ์ˆœ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
  • DB ์—ฐ๋™: WAS ์„ค์ •๋ฟ๋งŒ ์•„๋‹ˆ๋ผ DB์˜ Character Set ์„ค์ •๊ณผ JDBC URL์˜ ์ธ์ฝ”๋”ฉ ์˜ต์…˜๋„ ์ผ์น˜ํ•ด์•ผ ์™„๋ฒฝํ•œ ํ•œ๊ธ€ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Next Step:
์œ„ ์„ค์ •์„ ์ ์šฉํ•œ ํ›„์—๋Š” ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ์„œ๋ฒ„(์ธ์Šคํ„ด์Šค)๋ฅผ ์žฌ๊ธฐ๋™ํ•ด์•ผ JVM ์„ค์ •์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ์žฌ๊ธฐ๋™ ํ›„ `SystemOut.log` ํŒŒ์ผ์— ํ•œ๊ธ€ ๋กœ๊ทธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ธฐ๋ก๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

[WebSphere/JVM] HeapDump & JavaCore ์ƒ์„ฑ ์˜ต์…˜ ๋ฐ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ ๊ฐ€์ด๋“œ

WebSphere Application Server(WAS) ์šด์˜ ์ค‘ Out Of Memory(OOM) ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ, ์›์ธ ๋ถ„์„์„ ์œ„ํ•ด ํž™ ๋คํ”„(HeapDump)์™€ ์ž๋ฐ” ์ฝ”์–ด(JavaCore) ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ JVM Custom Properties ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ ์ƒ์„ฑ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ, ๊ทธ๋ฆฌ๊ณ  AIX ํ™˜๊ฒฝ์—์„œ์˜ ํ•„์ˆ˜ ์„ค์ • ์‚ฌํ•ญ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. JVM Custom Properties ์„ค์ •

WAS ๊ด€๋ฆฌ ์ฝ˜์†”์—์„œ JVM ์ธ์ˆ˜์— ์ง์ ‘ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋คํ”„ ์ƒ์„ฑ ์—ฌ๋ถ€์™€ ๊ฒฝ๋กœ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ๊ฒฝ๋กœ

Application servers > [Server Name] > Process definition > Java Virtual Machine > Custom properties

์ฃผ์š” ์†์„ฑ (Key & Value)

Name Value Description
IBM_HEAPDUMP true / false ํž™ ๋คํ”„ ์ƒ์„ฑ ํ™œ์„ฑํ™” ์—ฌ๋ถ€
IBM_HEAPDUMP_OUTOFMEMORY true / false OOM ๋ฐœ์ƒ ์‹œ ํž™ ๋คํ”„ ์ž๋™ ์ƒ์„ฑ
IBM_JAVADUMP_OUTOFMEMORY true / false OOM ๋ฐœ์ƒ ์‹œ ์ž๋ฐ” ์ฝ”์–ด(Thread Dump) ์ž๋™ ์ƒ์„ฑ
IBM_JAVA_HEAPDUMP_TEXT true / false ํž™ ๋คํ”„๋ฅผ ํ…์ŠคํŠธ ํ˜•์‹์œผ๋กœ ์ƒ์„ฑ (phd ๋Œ€์‹ )
JAVA_DUMP_OPTS ONANYSIGNAL(JAVADUMP[5],HEAPDUMP[5]) ์‹œ๊ทธ๋„ ๋ฐœ์ƒ ์‹œ ๋คํ”„ ์ƒ์„ฑ ์˜ต์…˜ ์ œ์–ด

2. ๋คํ”„ ์ƒ์„ฑ ์œ„์น˜ ๋ณ€๊ฒฝ (Dump Path)

๊ธฐ๋ณธ ์ƒ์„ฑ ์œ„์น˜๋Š” WAS ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ, ๋””์Šคํฌ ๊ณต๊ฐ„ ๋ถ€์กฑ ๋“ฑ์˜ ์ด์œ ๋กœ ๋ณ„๋„ ๊ฒฝ๋กœ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ƒ์„ฑ ์œ„์น˜ (Default Path)

  • WAS V6.0 ~ V7.0: [Profile_Root]/logs/[Server_Name]
  • WAS V5.1: [Install_Root]/logs/[Server_Name]

๊ฒฝ๋กœ ๋ณ€๊ฒฝ ์„ค์ •

์œ„์™€ ๋™์ผํ•œ Custom properties ๋ฉ”๋‰ด์—์„œ ์•„๋ž˜ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

# AIX / Linux ์˜ˆ์‹œ (/waslog ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝ)
IBM_COREDIR       /waslog
IBM_HEAPDUMPDIR   /waslog
IBM_JAVACOREDIR   /waslog

# Windows ์˜ˆ์‹œ (D:\waslogs ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝ)
IBM_COREDIR       D:\waslogs
IBM_HEAPDUMPDIR   D:\waslogs
IBM_JAVACOREDIR   D:\waslogs

3. AIX ํ™˜๊ฒฝ ํ•„์ˆ˜ ์„ค์ • (Environment Setup)

AIX ํ™˜๊ฒฝ์—์„œ๋Š” OOM ๋ถ„์„์„ ์œ„ํ•ด OS ๋ ˆ๋ฒจ์˜ ์‚ฌ์šฉ์ž ์ œํ•œ(ulimit) ํ•ด์ œ์™€ ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ ์„ค์ •์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

1) ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์ œํ•œ ํ•ด์ œ (ulimit)

๋คํ”„ ํŒŒ์ผ์ด ์ž˜๋ฆฌ์ง€ ์•Š๋„๋ก ํŒŒ์ผ ํฌ๊ธฐ(fsize), ์ฝ”์–ด ํฌ๊ธฐ(core), ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ(data) ์ œํ•œ์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. (root ๊ถŒํ•œ ํ•„์š”)

# ์‚ฌ์šฉ์ž(user_id)์— ๋Œ€ํ•ด ์ œํ•œ ํ•ด์ œ
chuser fsize=-1 data=-1 core=-1 stack=-1 [WAS_USER_ID]

# ์ ์šฉ ํ™•์ธ (WAS ์‚ฌ์šฉ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ํ›„)
ulimit -a

2) ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ์‹ ์„ค์ • (LDR_CNTRL)

Java Heap๊ณผ Native Heap์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. MAXDATA ๊ฐ’์€ Java Heap ํฌ๊ธฐ(Xmx)์— ๋”ฐ๋ผ ๊ณ„์‚ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# ๊ณ„์‚ฐ ๊ณต์‹: 8 - (Xmx(MB) / 256)
# ์˜ˆ: Xmx๊ฐ€ 512MB์ธ ๊ฒฝ์šฐ -> 8 - (512/256) = 6 -> 0x60000000

export IBM_JAVA_MMAP_JAVA_HEAP=true
export LDR_CNTRL=MAXDATA=0x60000000

3) GC ๋กœ๊ทธ ํ™œ์„ฑํ™”

๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํŒจํ„ด ๋ถ„์„์„ ์œ„ํ•ด GC ๋กœ๊ทธ๋ฅผ ๋ฐ˜๋“œ์‹œ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. JVM Generic Arguments์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

-verbose:gc

ํ‘œ์ค€ ์—๋Ÿฌ(stderr)๊ฐ€ ํŒŒ์ผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ๋˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. (native_stderr.log ๋“ฑ)


Next Step:
์ƒ์„ฑ๋œ .phd ๋˜๋Š” .txt ํ˜•์‹์˜ ํž™ ๋คํ”„ ํŒŒ์ผ์€ IBM HeapAnalyzer๋‚˜ Eclipse Memory Analyzer (MAT) ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[WebSphere] manageprofiles ์ƒ์„ธ ๊ฐ€์ด๋“œ: ์ƒ์„ฑ, ๋ฐฑ์—…, ๋ณต๊ตฌ ๋ฐ ์‚ญ์ œ

WebSphere Application Server(WAS)์˜ manageprofiles ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํŒŒ์ผ์„ ์ƒ์„ฑ(Create), ์‚ญ์ œ(Delete)ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์žฅ์•  ๋Œ€๋น„๋ฅผ ์œ„ํ•œ ๋ฐฑ์—…(Backup) ๋ฐ ๋ณต๊ตฌ(Restore) ์ ˆ์ฐจ๋ฅผ ์ƒ์„ธํžˆ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

1. ๋ช…๋ น์–ด ๊ฐœ์š” ๋ฐ ์œ„์น˜

manageprofiles๋Š” WAS์˜ ์ธ์Šคํ„ด์Šค(ํ”„๋กœํŒŒ์ผ) ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.

  • ์œ„์น˜: [WAS_INSTALL_ROOT]/bin
  • ์‹คํ–‰ ํŒŒ์ผ: manageprofiles.sh (Unix/Linux) ๋˜๋Š” manageprofiles.bat (Windows)

2. ํ”„๋กœํŒŒ์ผ ์ƒ์„ฑ (Create)

์„œ๋ฒ„์˜ ์—ญํ• ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ -templatePath๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ…œํ”Œ๋ฆฟ ๊ฒฝ๋กœ (templatePath)

  • Dmgr (Deployment Manager): .../profileTemplates/dmgr
  • AppServer (Managed Node): .../profileTemplates/managed
  • Default (Standalone Server): .../profileTemplates/default

์˜ˆ์ œ 1: Deployment Manager (Dmgr) ์ƒ์„ฑ

# Unix/Linux Line-breaking ์˜ˆ์‹œ
./manageprofiles.sh -create \
  -profileName Dmgr01 \
  -templatePath /IBM/WAS/AppServer/profileTemplates/dmgr \
  -profilePath /IBM/WAS/AppServer/profiles/Dmgr01 \
  -cellName WebSphereCell01 \
  -nodeName WebSphereManager01 \
  -hostName myhostname

์˜ˆ์ œ 2: Application Server (Default) ์ƒ์„ฑ

./manageprofiles.sh -create \
  -profileName AppSrv01 \
  -templatePath /IBM/WAS/AppServer/profileTemplates/default \
  -profilePath /IBM/WAS/AppServer/profiles/AppSrv01 \
  -hostName myhostname

3. ํ”„๋กœํŒŒ์ผ ๋ฐฑ์—… (Backup)

ํ”„๋กœํŒŒ์ผ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ํ”„๋กœํŒŒ์ผ์˜ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์ง€ํ•œ ํ›„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ

manageprofiles.sh -backupProfile -profileName [ํ”„๋กœํŒŒ์ผ๋ฉ] -backupFile [์ €์žฅํ• ํŒŒ์ผ๊ฒฝ๋กœ]

์‚ฌ์šฉ ์˜ˆ์‹œ

# AppSrv01 ํ”„๋กœํŒŒ์ผ์„ ๋ฐฑ์—…
./manageprofiles.sh -backupProfile -profileName AppSrv01 -backupFile /backup/AppSrv01_2023.zip

4. ํ”„๋กœํŒŒ์ผ ๋ณต๊ตฌ (Restore)

๋ฐฑ์—…๋œ ํŒŒ์ผ์„ ์ด์šฉํ•˜์—ฌ ํ”„๋กœํŒŒ์ผ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณต๊ตฌ ์ ˆ์ฐจ๋Š” ๋‹จ์ˆœ ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ฉฐ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ •ํ•ฉ์„ฑ ๊ฒ€์ฆ ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ณต๊ตฌ ์ ˆ์ฐจ (Step-by-Step)

  1. ํ”„๋กœ์„ธ์Šค ์ •์ง€: ๋ณต์›ํ•˜๋ ค๋Š” ํ”„๋กœํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์„œ๋ฒ„ ๋ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ: ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๊ธฐ์กด ํ”„๋กœํŒŒ์ผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: rm -rf /IBM/WAS/AppServer/profiles/AppSrv01)
  3. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ฒ€์ฆ: ํ”„๋กœํŒŒ์ผ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    ./manageprofiles.sh -validateAndUpdateRegistry
  4. ๋ณต๊ตฌ ์‹คํ–‰: ๋ฐฑ์—… ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํŒŒ์ผ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.
    ./manageprofiles.sh -restoreProfile -backupFile /backup/AppSrv01_2023.zip

5. ํ”„๋กœํŒŒ์ผ ์‚ญ์ œ (Delete)

๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœํŒŒ์ผ์„ ์‹œ์Šคํ…œ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ์‹œ ๊ด€๋ จ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉฐ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ •๋ณด๊ฐ€ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.

์˜ต์…˜ ์„ค๋ช…

  • -delete: ํŠน์ • ํ”„๋กœํŒŒ์ผ ํ•˜๋‚˜๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • -deleteAll: ๋“ฑ๋ก๋œ ๋ชจ๋“  ํ”„๋กœํŒŒ์ผ์„ ์ผ๊ด„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ์‹œ

# ํŠน์ • ํ”„๋กœํŒŒ์ผ ์‚ญ์ œ
./manageprofiles.sh -delete -profileName AppSrv01

# ๋ชจ๋“  ํ”„๋กœํŒŒ์ผ ์‚ญ์ œ (์ฃผ์˜ ์š”๋ง)
./manageprofiles.sh -deleteAll

Next Step:
ํ”„๋กœํŒŒ์ผ ๋ณต๊ตฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, syncNode ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Dmgr๊ณผ ๋กœ์ปฌ ๋…ธ๋“œ ๊ฐ„์˜ ์„ค์ • ๋™๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜์‹ญ์‹œ์˜ค.

[WebSphere] addNode ๋ช…๋ น์–ด: ๋…ธ๋“œ ์—ฐํ•ฉ(Federation) ๋ฐ Dmgr ์—ฐ๋™ ๊ฐ€์ด๋“œ

addNode ๋ช…๋ น์–ด๋Š” Standalone ํ˜•ํƒœ์˜ ํ”„๋กœํŒŒ์ผ(Profile)์„ Deployment Manager(Dmgr)๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์…€(Cell)์— ํฌํ•จ์‹œํ‚ค๋Š” '์—ฐํ•ฉ(Federation)' ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ค‘์•™ ์ง‘์ค‘์‹ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

1. ๊ตฌ๋ฌธ (Syntax)

๊ธฐ๋ณธ์ ์œผ๋กœ Dmgr์˜ ํ˜ธ์ŠคํŠธ์™€ ํฌํŠธ ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•˜๋ฉฐ, ๋ณด์•ˆ์ด ์„ค์ •๋œ ๊ฒฝ์šฐ ์ธ์ฆ ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค.

addNode [Dmgr_Host] [Dmgr_SOAP_Port] [-options]

2. ์ฃผ์š” ์˜ต์…˜ (Parameters)

์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ•ต์‹ฌ ์˜ต์…˜๋“ค์„ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ๋ฐ ์—ฐ๊ฒฐ ์˜ต์…˜

  • -profileName [name]: (๊ถŒ์žฅ) ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ๋กœ์ปฌ ํ”„๋กœํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ ํ”„๋กœํŒŒ์ผ ํ™˜๊ฒฝ์—์„œ๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.
  • -conntype [type]: Dmgr ์—ฐ๊ฒฐ ๋ฐฉ์‹(SOAP, RMI ๋“ฑ). ๊ธฐ๋ณธ๊ฐ’์€ SOAP์ž…๋‹ˆ๋‹ค.
  • -username [uid] / -password [pwd]: Dmgr์— ๋ณด์•ˆ์ด ์„ค์ •๋œ ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž ๊ณ„์ • ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ฆฌ์†Œ์Šค ํฌํ•จ ์—ฌ๋ถ€

  • -includeapps: ๋…ธ๋“œ์— ์ด๋ฏธ ์„ค์น˜๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Dmgr ์…€ ๊ตฌ์„ฑ์— ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’: ํฌํ•จ ์•ˆ ํ•จ)
  • -includebuses: ๋…ธ๋“œ์˜ ๋ฒ„์Šค(Bus) ๊ตฌ์„ฑ์„ ์…€์— ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค.

๋…ธ๋“œ ์„ค์ • ์˜ต์…˜

  • -nodeagentshortname [name]: ์ƒ์„ฑ๋  NodeAgent์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • -startingport [port]: ํฌํŠธ ์ถฉ๋Œ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋…ธ๋“œ ๋‚ด ์„œ๋ฒ„๋“ค์˜ ํฌํŠธ๋ฅผ ์ง€์ •๋œ ๋ฒˆํ˜ธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋„๋ก ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  • -registerservice: (Windows ์ „์šฉ) NodeAgent๋ฅผ ์œˆ๋„์šฐ ์„œ๋น„์Šค๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ ์˜ต์…˜

  • -noagent: ์—ฐํ•ฉ ํ›„ NodeAgent ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • -trace: ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ์ƒ์„ธ ํŠธ๋ ˆ์ด์Šค ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • -logfile [filename]: ๋กœ๊ทธ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

3. ์ž‘์—… ์ ˆ์ฐจ (Procedure)

Step 1: ์‚ฌ์ „ ์ ๊ฒ€

์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „, ๋Œ€์ƒ Deployment Manager(Dmgr)๊ฐ€ ๋ฐ˜๋“œ์‹œ ๊ตฌ๋™(Running) ์ƒํƒœ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Step 2: ๊ฒฝ๋กœ ์ด๋™

์—ฐํ•ฉํ•  ๋…ธ๋“œ(Profile)์˜ bin ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

# ์˜ˆ์‹œ
cd /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin

Step 3: addNode ์‹คํ–‰

Dmgr์˜ IP์™€ SOAP ํฌํŠธ(๊ธฐ๋ณธ๊ฐ’ 8879)๋ฅผ ํ™•์ธํ•˜์—ฌ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# 1. ๊ธฐ๋ณธ ์‹คํ–‰ (๋ณด์•ˆ ๋ฏธ์„ค์ • ์‹œ)
./addNode.sh 192.168.1.10 8879

# 2. ๋ณด์•ˆ ์„ค์ • ์‹œ (ID/PW ํฌํ•จ)
./addNode.sh 192.168.1.10 8879 -username wasadmin -password wasadmin -includeapps

* Windows ํ™˜๊ฒฝ์—์„œ๋Š” addNode.bat๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

Step 4: ์ƒํƒœ ํ™•์ธ

์ž‘์—…์ด ์„ฑ๊ณตํ•˜๋ฉด NodeAgent๊ฐ€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. serverStatus ๋ช…๋ น์–ด๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

./serverStatus.sh -all -username [ID] -password [PW]

Next Step:
๋…ธ๋“œ ์—ฐํ•ฉ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, ๊ด€๋ฆฌ ์ฝ˜์†”์—์„œ '์ „์ฒด ๋™๊ธฐํ™”(Full Resynchronize)'๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ Dmgr๊ณผ ๋…ธ๋“œ ๊ฐ„์˜ ์„ค์ • ์ •๋ณด๋ฅผ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

[WebSphere] plugin-cfg.xml ๋ณ‘ํ•ฉ ๊ฐ€์ด๋“œ (pluginCfgMerge ์‚ฌ์šฉ๋ฒ•)

์—ฌ๋Ÿฌ ๊ฐœ์˜ WebSphere ํ”„๋กœํŒŒ์ผ์ด๋‚˜ ํด๋Ÿฌ์Šคํ„ฐ ํ™˜๊ฒฝ์—์„œ ์ƒ์„ฑ๋œ plugin-cfg.xml ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” pluginCfgMerge ๋„๊ตฌ์˜ ์‚ฌ์šฉ๋ฒ•๊ณผ ์ž‘์—… ์ ˆ์ฐจ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ˆ˜๋™ ๋ณ‘ํ•ฉ ์‹œ ๊ด€๋ฆฌ ์ฝ˜์†”์—์„œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ์„ค์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

1. ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ณ‘ํ•ฉ ๋„๊ตฌ (Plugin Merge Tool)

WAS ์„ค์น˜ ๋ฃจํŠธ์˜ bin ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค. WAS ๋ฒ„์ „์— ๋”ฐ๋ผ ์Šคํฌ๋ฆฝํŠธ ์ด๋ฆ„์ด pluginMerge ๋˜๋Š” pluginCfgMerge์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ (Syntax)

# ๊ธฐ๋ณธ ๊ตฌ๋ฌธ
[์‹คํ–‰์Šคํฌ๋ฆฝํŠธ] [์†Œ์ŠคํŒŒ์ผ1] [์†Œ์ŠคํŒŒ์ผ2] [๊ฒฐ๊ณผํŒŒ์ผ]

์šด์˜์ฒด์ œ๋ณ„ ์‹คํ–‰ ๊ฒฝ๋กœ

Unix / Linux

# WAS ๋ฒ„์ „์— ๋”ฐ๋ผ ํŒŒ์ผ๋ช…์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ
[AppServer_Root]/bin/pluginMerge.sh plugin_cfg1.xml plugin_cfg2.xml result_cfg.xml
# ๋˜๋Š”
[AppServer_Root]/bin/pluginCfgMerge.sh plugin_cfg1.xml plugin_cfg2.xml result_cfg.xml

Windows

[AppServer_Root]\bin\pluginMerge.bat plugin_cfg1.xml plugin_cfg2.xml result_cfg.xml
# ๋˜๋Š”
[AppServer_Root]\bin\pluginCfgMerge.bat plugin_cfg1.xml plugin_cfg2.xml result_cfg.xml

2. ๋ณ‘ํ•ฉ ์ž‘์—… ์ ˆ์ฐจ (Workflow)

Step 1: ์‚ฌ์ „ ์ค€๋น„ ๋ฐ ๋ฐฑ์—…

์ž‘์—… ์‹œ์ž‘ ์ „, ๊ธฐ์กด์— ์›น ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ ์ค‘์ธ plugin-cfg.xml ํŒŒ์ผ์„ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค.

# Linux ์˜ˆ์‹œ
cp /apps/wes/IBM/plugin-cfg.xml /apps/wes/IBM/plugin-cfg.xml.bak_YYYYMMDD

Step 2: ์†Œ์Šค ํŒŒ์ผ ์ค€๋น„

  1. ๊ฐ ํ”„๋กœํŒŒ์ผ(๋˜๋Š” ๋…ธ๋“œ)์—์„œ ์ตœ์‹  plugin-cfg.xml ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ƒ์„ฑ(Generate)ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ณ‘ํ•ฉํ•  ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ๋“ค์„ ์ž‘์—…ํ•  ํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ชจ์•„๋‘ก๋‹ˆ๋‹ค.
  3. ํŒŒ์ผ๋ช…์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: plugin-cfg01.xml, plugin-cfg02.xml)

Step 3: ๋ณ‘ํ•ฉ ๋ช…๋ น์–ด ์‹คํ–‰

์ค€๋น„๋œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ตœ์ข… ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

# ์˜ˆ์‹œ: plugin-cfg01.xml๊ณผ plugin-cfg02.xml์„ ๋ณ‘ํ•ฉํ•˜์—ฌ plugin-cfg.xml ์ƒ์„ฑ
./pluginCfgMerge.sh /apps/wes/IBM/plugin-cfg01.xml /apps/wes/IBM/plugin-cfg02.xml /apps/wes/IBM/plugin-cfg.xml

Step 4: ์›น ์„œ๋ฒ„ ์ ์šฉ

์ƒ์„ฑ๋œ ์ตœ์ข… plugin-cfg.xml ํŒŒ์ผ์„ ์›น ์„œ๋ฒ„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฒฝ๋กœ๋กœ ๋ณต์‚ฌํ•˜๊ณ , ํ•„์š”์‹œ ์›น ์„œ๋ฒ„๋ฅผ ์žฌ๊ธฐ๋™ํ•ฉ๋‹ˆ๋‹ค.


3. WebSphere ๊ด€๋ฆฌ ์ฝ˜์†” ์„ค์ • (ํ•„์ˆ˜)

ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ๋ณ‘ํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, WAS ๊ด€๋ฆฌ ์ฝ˜์†”์—์„œ ์ž๋™ ์ƒ์„ฑ ๋ฐ ์ „ํŒŒ ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์ด ์ผœ์ ธ ์žˆ์œผ๋ฉด WAS๊ฐ€ ์ž๋™์œผ๋กœ ํŒŒ์ผ์„ ์žฌ์ƒ์„ฑํ•˜์—ฌ ์ˆ˜๋™ ๋ณ‘ํ•ฉ๋œ ๋‚ด์šฉ์„ ๋ฎ์–ด์“ธ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • ๊ฒฝ๋กœ

์›น ์„œ๋ฒ„(Web Servers) > [์›น์„œ๋ฒ„๋ช…] > ํ”Œ๋Ÿฌ๊ทธ์ธ ํŠน์„ฑ(Plug-in properties)

๋ณ€๊ฒฝ ์‚ฌํ•ญ

  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ตฌ์„ฑ ํŒŒ์ผ ์ž๋™ ์ƒ์„ฑ (Automatically generate the plug-in configuration file): ์ฒดํฌ ํ•ด์ œ (False)
  • ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ตฌ์„ฑ ํŒŒ์ผ ์ž๋™ ์ „ํŒŒ (Automatically propagate the plug-in configuration file): ์ฒดํฌ ํ•ด์ œ (False)

Note: ์œ„ ์„ค์ •์„ ์ ์šฉํ•˜๋ฉด ์ดํ›„ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ˆ˜๋™์œผ๋กœ ๋ณ‘ํ•ฉ ๋ฐ ๋ณต์‚ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


Next Step:
๋ณ‘ํ•ฉ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒŒ์ผ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ์›น ์„œ๋ฒ„์˜ http_plugin.log๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ํŒŒ์‹ฑ ์˜ค๋ฅ˜๋‚˜ ๋กœ๋”ฉ ์‹คํŒจ ๋ฉ”์‹œ์ง€๊ฐ€ ์—†๋Š”์ง€ ์ ๊ฒ€ํ•˜์‹ญ์‹œ์˜ค.

[Linux] find ๋ช…๋ น์–ด ์™„๋ฒฝ ๊ฐ€์ด๋“œ: ํŒŒ์ผ ๊ฒ€์ƒ‰๋ถ€ํ„ฐ ์ผ๊ด„ ์ฒ˜๋ฆฌ๊นŒ์ง€

๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์—์„œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์ธ find ๋ช…๋ น์–ด์˜ ์˜ต์…˜๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ๋ช…, ๊ถŒํ•œ, ์‹œ๊ฐ„, ํฌ๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์œผ๋กœ ํŒŒ์ผ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  -exec๋‚˜ xargs๋ฅผ ํ†ตํ•ด ํ›„์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Test Environment

  • OS: CentOS 7
  • Shell: Bash

1. ๊ธฐ๋ณธ ๊ตฌ๋ฌธ (Syntax)

find ๋ช…๋ น์–ด๋Š” ์ง€์ •๋œ ๊ฒฝ๋กœ ํ•˜์œ„์˜ ๋ชจ๋“  ํŠธ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ ๊ฒ€์ƒ‰ ๋ฒ”์œ„ ์„ค์ •์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

find [๊ฒฝ๋กœ] [์กฐ๊ฑด] [๋™์ž‘]

์ฃผ์š” ๊ฒ€์ƒ‰ ์กฐ๊ฑด (Predicates)

  • -name [pattern]: ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰ (์™€์ผ๋“œ์นด๋“œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
  • -type [d/f]: ํŒŒ์ผ ํƒ€์ž… (d: ๋””๋ ‰ํ† ๋ฆฌ, f: ์ผ๋ฐ˜ ํŒŒ์ผ)
  • -user [name]: ์†Œ์œ ์ž ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰
  • -group [name]: ๊ทธ๋ฃน ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰
  • -perm [mode]: ํŒŒ์ผ ๊ถŒํ•œ์œผ๋กœ ๊ฒ€์ƒ‰
  • -size [n]: ํŒŒ์ผ ํฌ๊ธฐ๋กœ ๊ฒ€์ƒ‰ (+n: ์ด์ƒ, -n: ์ดํ•˜, ๋‹จ์œ„: k, M, G)
  • -empty: ๋นˆ ํŒŒ์ผ ๋˜๋Š” ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰

์‹œ๊ฐ„ ๊ด€๋ จ ์กฐ๊ฑด (Time Stamps)

์‹œ๊ฐ„ ์˜ต์…˜์—์„œ +n์€ n์ผ ์ด์ „(Old), -n์€ n์ผ ์ด๋‚ด(New)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • -atime [n]: Access Time (๋งˆ์ง€๋ง‰ ์ ‘๊ทผ ์‹œ๊ฐ„, ์ผ ๋‹จ์œ„)
  • -mtime [n]: Modify Time (๋งˆ์ง€๋ง‰ ์ˆ˜์ • ์‹œ๊ฐ„, ์ผ ๋‹จ์œ„)
  • -ctime [n]: Change Time (๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ๊ฐ„, ์ผ ๋‹จ์œ„)

2. ๊ธฐ๋ณธ ์‚ฌ์šฉ ์˜ˆ์ œ

ํŒŒ์ผ๋ช… ๋ฐ ํƒ€์ž… ๊ฒ€์ƒ‰

# 1. ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ(.)์—์„œ ์ด๋ฆ„์— 'test'๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ ์ฐพ๊ธฐ
find . -name "*test*" -print

# 2. ์‹œ์Šคํ…œ ์ „์ฒด(/)์—์„œ 'foobar'๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ ์ฐพ๊ธฐ
find / -name "foobar" -print

# 3. ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ์ฐพ๊ธฐ
find . -type d

# 4. ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ(์ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ) ์ฐพ๊ธฐ
find . -name ".*" -print

๊ถŒํ•œ(Permission) ๋ฐ ์†Œ์œ ์ž ๊ฒ€์ƒ‰

# 1. ๊ถŒํ•œ์ด 700์ธ ํŒŒ์ผ ์ฐพ๊ธฐ
find . -perm 700 -print

# 2. ๊ถŒํ•œ์ด 400 ์ด๊ฑฐ๋‚˜ 200์ธ ํŒŒ์ผ ์ฐพ๊ธฐ (๋…ผ๋ฆฌ ์—ฐ์‚ฐ OR ์‚ฌ์šฉ)
# ๊ด„ํ˜ธ ์•ž์—๋Š” ๋ฐ˜๋“œ์‹œ escape(\) ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
find . \( -perm 400 -o -perm 200 \) -print

# 3. ํŠน์ • ์‚ฌ์šฉ์ž(foobar) ์†Œ์œ ์˜ ํŒŒ์ผ ์ฐพ๊ธฐ
find / -user foobar -print

# 4. ์†Œ์œ ์ž๋‚˜ ๊ทธ๋ฃน์ด ์—†๋Š”(์‚ญ์ œ๋œ ๊ณ„์ • ๋“ฑ) ํŒŒ์ผ ์ฐพ๊ธฐ (๊ณ ์•„ ํŒŒ์ผ)
find / \( -nouser -o -nogroup \) -print

# 5. ์‹คํ–‰ ๊ถŒํ•œ์ด ์žˆ๋Š” ํŒŒ์ผ ์ฐพ๊ธฐ (Others์—๊ฒŒ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋“ฑ ๋ณด์•ˆ ์ ๊ฒ€ ์‹œ ์œ ์šฉ)
find / -perm -2 -print

3. ๊ณ ๊ธ‰ ํ™œ์šฉ ๋ฐ ์ผ๊ด„ ์ฒ˜๋ฆฌ (Actions)

๊ฒ€์ƒ‰๋œ ํŒŒ์ผ์— ๋Œ€ํ•ด -exec ๋˜๋Š” xargs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-exec ์˜ต์…˜ ์‚ฌ์šฉ

{}๋Š” ๊ฒ€์ƒ‰๋œ ํŒŒ์ผ๋ช…์„ ์˜๋ฏธํ•˜๋ฉฐ, \;๋กœ ๋ช…๋ น์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

# 1. ์ด๋ฆ„์ด core์ธ ํŒŒ์ผ์„ ์ฐพ์•„ ์ƒ์„ธ ์ •๋ณด ์ถœ๋ ฅ(ls -l)
find . -name core -exec ls -l {} \;

# 2. *.bak ํŒŒ์ผ์„ ์ฐพ์•„ ์ฆ‰์‹œ ์‚ญ์ œ
find . -name "*.bak" -exec rm -f {} \;

# 3. *.txt ํŒŒ์ผ ๋‚ด์—์„œ ํŠน์ • ๋ฌธ์ž์—ด ์น˜ํ™˜ (Perl ์ด์šฉ)
find / -name "*.txt" -exec perl -pi -e 's/OldString/NewString/g' {} \;

xargs ํŒŒ์ดํ”„ ์—ฐ๊ณ„

๋งŽ์€ ์ˆ˜์˜ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” -exec๋ณด๋‹ค xargs๊ฐ€ ์„ฑ๋Šฅ์ƒ ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# 1. ํŒŒ์ผ ๋‚ด์šฉ์—์„œ ํŠน์ • ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ (grep)
find . -type f | xargs grep "๊ฒ€์ƒ‰์–ด"

# 2. 100MB ์ด์ƒ์ธ ํŒŒ์ผ์„ ์ฐพ์•„ ํฌ๊ธฐ์ˆœ ๋ณด๊ธฐ
find / -size +100M -print | xargs ls -lh

# 3. ์ตœ๊ทผ 30์ผ ๋™์•ˆ ์ˆ˜์ •๋˜์ง€ ์•Š์€ ํŒŒ์ผ ๋ชฉ๋ก ์ €์žฅ
find / -mtime +30 -print > old_files.txt

4. ์‹ค๋ฌด ์œ ์šฉํ•œ ํŒจํ„ด ์ •๋ฆฌ

๋””์Šคํฌ ์ •๋ฆฌ ๋ฐ ๊ด€๋ฆฌ

# 1. ๋นˆ ํŒŒ์ผ(0 byte) ์ฐพ๊ธฐ
find / -empty -print
# ๋˜๋Š”
find / -size 0 -print

# 2. ์ตœ๊ทผ 30์ผ๊ฐ„ ์ ‘๊ทผํ•˜์ง€ ์•Š์€ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ ์ถ”์ถœ
# ! (NOT) ์—ฐ์‚ฐ์ž์™€ -a (AND) ์—ฐ์‚ฐ์ž ์กฐํ•ฉ
find / ! \( -atime -30 -a \( -type d -o -type f \) \) | xargs ls -l > not_access.txt

# 3. ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์˜ *.bak ํŒŒ์ผ์„ ๋ฐฑ์—… ํด๋”๋กœ ์ด๋™
# (์ฃผ์˜: ๋ฐฑํ‹ฑ ` ์‚ฌ์šฉ ์‹œ ํŒŒ์ผ๋ช…์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ)
mv `find . -name "*.bak"` /home/bak/

๋ณด์•ˆ ์ ๊ฒ€

# 1. Root ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋˜๋Š” SetUID ํŒŒ์ผ ์ฐพ๊ธฐ (+4000)
find / \( -user root -a -perm +4000 \) -print

# 2. Others์—๊ฒŒ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ํŒŒ์ผ์„ ์ฐพ์•„ ์“ฐ๊ธฐ ๊ถŒํ•œ ์ œ๊ฑฐ
find / -perm -2 -exec chmod o-w {} \;

Next Step:
find ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ์„ ์ฐพ์€ ๋’ค, ๋กœ๊ทธ ๋ถ„์„์ด๋‚˜ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด grep, awk, sed ๋ช…๋ น์–ด์˜ ์ •๊ทœํ‘œํ˜„์‹(Regex) ํ™œ์šฉ๋ฒ•์„ ํ•™์Šตํ•ด ๋ณด์‹œ๊ธธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.