sudo 입력시 아래와 같은 메시지가 나온다면
[username] is not in the sudoers file. This incident will be reported.
/etc/sudoers 파일에 아래와 같이 추가하면 된다. (su 권한 필요)
[username] ALL=(ALL) NOPASSWD:ALL
sudo 입력시 아래와 같은 메시지가 나온다면
[username] is not in the sudoers file. This incident will be reported.
/etc/sudoers 파일에 아래와 같이 추가하면 된다. (su 권한 필요)
[username] ALL=(ALL) NOPASSWD:ALL
CentOS 6.5 기준
zip(unzip) 이 디폴트로 설치되어있지 않은 듯 하다.
아래와 같이 설치해주고 unzip 을 사용하도록 하자.
[설치]
su -
yum install zip
yum install unzip
[사용]
unzip spring-xd-1.3.2.RELEASE-dist.zip
jdk 7 버전 이상부터 wget <URL> 과 같이 단순 명령어로는 다운이 되지 않는다.
아래와 같이 쿠키 옵션을 주어야 함.
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz
열려있는 모든 port 확인
netstat -anp
LISTEN 중인 포트 표시
netstat -anp | grep LISTEN
특정 host의 특정 port가 열려 있는지 확인 (netcat = nc)
nc -z hostaddress port
ex) nc -z www.google.com 80
result ex) Connection to www.google.com 80 port [tcp/http] succeded!
특정 host의 port 범위 지정 open port 확인
nc hostaddress -z startPort-endPort
ex) nc 10.20.30.40 -z 19-23
result ex) Connection to 10.20.30.40 21 port [tcp/ftp] succeded!
Connection to 10.20.30.40 22 port [tcp/ssh] succeded!
Connection to 10.20.30.40 23 port [tcp/telnet] succeded!
특정 port를 외부에서 접속할 수 있도록 open!
iptables -I INPUT -p tcp --dport 12345 -j ACCEPT
I : 새로운 규칙을 추가
p : 패킷의 프로토콜을 명시
j : 규칙에 해당되는 패킷을 어떻게 처리할 것인지를 정함
이 명령은 외부에서 들어오는 (INBOUND) TCP port 12345의 연결을 받아들인다는 규칙을 방화벽 1번 방화벽 규칙으로 추가한다는 의미이다.
추가한 port 설정 조회
iptables -L -v
L : 규칙을 출력
v : 자세히
추가한 port 설정 삭제
규칙번호로 삭제
iptables -D INPUT 1
추가한 규칙으로 삭제
iptables -D INPUT -p tcp --dport 12345 -j ACCEPT
D : 규칙을 삭제
출처: http://loonyhyun.tistory.com/14 [Like to LoonyHyun's Life]
1. /*+ gather_plan_statistics ckj_as_01 */ 사용하여 쿼리
SELECT /*+ gather_plan_statistics ckj_as_01 */ S8.ITEM_VALUE
FROM SOD_8 S8 INNER JOIN (SELECT DISTINCT PROD_CD AS ITEM_VALUE
FROM SOD_24 S24 INNER JOIN SOD_44 S44 ON S24.PROD_CD = S44.ITEM_VALUE
AND S44.STR_CD IN (:1,
'981') INNER JOIN (SELECT SUBSTR(S13.ITEM_VALUE, 1, 8) AS ITEM_VALUE
FROM SOD_13 S13
WHERE S13.CUST_ID = :2 ) A ON S44.CATEGORY_ID LIKE A.ITEM_VALUE||'%'
WHERE ROWNUM <= 20 ) A ON S8.ITEM_VALUE = A.ITEM_VALUE
2. SQL_ID 확인
SELECT SQL_ID,SQL_FULLTEXT
FROM V$SQL
WHERE SQL_FULLTEXT LIKE '%ckj_as_01%'
AND SQL_FULLTEXT NOT LIKE '%$%';
SQL_ID SQL_FULLTEXT
------------- --------------------------------------------------------------------------------
1gtk80xx65vah SELECT /*+ gather_plan_statistics ckj_as_01 */ S8.ITEM_VALUE
FROM SOD_8 S8 INNER JOIN (SELECT DISTINCT PROD_CD AS ITEM_VALUE
FROM SOD_24 S24 INNER
3. 실행 쿼리 플랜 확인
select * from table(dbms_xplan.display_cursor('1gtk80xx65vah',null,'ALLSTATS LAST LAST'));
SQL> select * from table(dbms_xplan.display_cursor('1gtk80xx65vah',null,'ALLSTATS LAST LAST'));
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL_ID 1gtk80xx65vah, child number 0
-------------------------------------
SELECT /*+ gather_plan_statistics ckj_as_01 */ S8.ITEM_VALUE
FROM
SOD_8 S8 INNER JOIN (SELECT DISTINCT PROD_CD AS ITEM_VALUE
FROM SOD_24 S24 INNER JOIN SOD_44 S44 ON S24.PROD_CD =
S44.ITEM_VALUE
AND S44.STR_CD IN (:1,
'981') INNER JOIN (SELECT SUBSTR(S13.ITEM_VALUE, 1, 8) AS ITEM_VALUE
FROM SOD_13 S13
WHERE S13.CUST_ID =
:2 ) A ON S44.CATEGORY_ID LIKE A.ITEM_VALUE||'%'
WHERE ROWNUM
<= 20 ) A ON S8.ITEM_VALUE = A.ITEM_VALUE
Plan hash value: 2246381816
-----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | OMem | 1Mem | Used-Mem |
-----------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 4 |00:00:00.01 | 74 | | | |
| 1 | NESTED LOOPS | | 1 | 20 | 4 |00:00:00.01 | 74 | | | |
| 2 | VIEW | | 1 | 20 | 6 |00:00:00.01 | 66 | | | |
| 3 | HASH UNIQUE | | 1 | 20 | 6 |00:00:00.01 | 66 | 1558K| 1558K| 749K (0)|
|* 4 | COUNT STOPKEY | | 1 | | 20 |00:00:00.01 | 66 | | | |
|* 5 | HASH JOIN | | 1 | 1078 | 20 |00:00:00.01 | 66 | 1557K| 1557K| 1632K (0)|
| 6 | INDEX FAST FULL SCAN| PK_SOD_24 | 1 | 1415 | 1379 |00:00:00.01 | 17 | | | |
| 7 | NESTED LOOPS | | 1 | 80878 | 5237 |00:00:00.01 | 49 | | | |
|* 8 | INDEX RANGE SCAN | PK_SOD_13 | 1 | 7 | 3 |00:00:00.01 | 3 | | | |
| 9 | INLIST ITERATOR | | 3 | | 5237 |00:00:00.01 | 46 | | | |
|* 10 | INDEX RANGE SCAN | IDX_STD_SOD_44_1 | 5 | 11385 | 5237 |00:00:00.01 | 46 | | | |
|* 11 | INDEX UNIQUE SCAN | PK_SOD_8 | 6 | 1 | 4 |00:00:00.01 | 8 | | | |
-----------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - filter(ROWNUM<=20)
5 - access("S24"."PROD_CD"="S44"."ITEM_VALUE")
8 - access("S13"."CUST_ID"=:2)
10 - access((("S44"."STR_CD"=:1 OR "S44"."STR_CD"='981')) AND "S44"."CATEGORY_ID" LIKE
SUBSTR("S13"."ITEM_VALUE",1,8)||'%')
filter("S44"."CATEGORY_ID" LIKE SUBSTR("S13"."ITEM_VALUE",1,8)||'%')
11 - access("S8"."ITEM_VALUE"="A"."ITEM_VALUE")
41 rows selected.
[Tip!] 2~3단계 한번에 실행하기
SELECT *
FROM TABLE(
SELECT dbms_xplan.display_cursor(SQL_ID,null,'ALLSTATS LAST LAST')
FROM V$SQL WHERE SQL_FULLTEXT LIKE '%ckj_to_01%' AND SQL_FULLTEXT NOT LIKE '%$%');
참고 : http://askubuntu.com/questions/152716/how-to-detect-a-memory-leak
$ free -m
total used free shared buffers cached
Mem: 258287 181675 76611 4 1533 171678
-/+ buffers/cache: 8464 249823
Swap: 32767 0 32767
$ su -
Password:
# sync; sudo echo 3 > /proc/sys/vm/drop_caches
# free -m
total used free shared buffers cached
Mem: 258287 2182 256105 4 6 91
-/+ buffers/cache: 2084 256203
Swap: 32767 0 32767
- - URL Encode function
CREATE OR REPLACE FUNCTION form_url_encode(
data IN VARCHAR2,
charset IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN utl_url.escape(data, TRUE, charset);
END;
-- URL Decode function
CREATE OR REPLACE FUNCTION form_url_decode(
data IN VARCHAR2,
charset IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN utl_url.unescape(replace(data, '+', ' '), charset);
END;
참고 : http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%A9%94%EB%AA%A8%EB%A6%AC_%EC%82%AC%EC%9A%A9%EB%9F%89%EC%88%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EB%B3%B4%EA%B8%B0
ps -ef --sort -rss | head -n 11
ps -eo user,pid,ppid,rss,size,vsize,pmem,pcpu,time,cmd --sort -rss | head -n 11
참고 : http://askubuntu.com/questions/152716/how-to-detect-a-memory-leak
$ free -m
total used free shared buffers cached
Mem: 258287 181675 76611 4 1533 171678
-/+ buffers/cache: 8464 249823
Swap: 32767 0 32767
$ su -
Password:
# sync; sudo echo 3 > /proc/sys/vm/drop_caches
# free -m
total used free shared buffers cached
Mem: 258287 2182 256105 4 6 91
-/+ buffers/cache: 2084 256203
Swap: 32767 0 32767
일반적으로 비밀번호에 영어/숫자가 아닌 한글이 들어가는 경우는 프로그램에서 Filtering하지 못한 경우가 대부분이다.
이렇게 들어간 데이터를 검색하고자 할때 regexp를 사용해서 검사하면 모두 검색할수 있다.
SELECT * FROM MEMBER
WHERE USER_PASSWORD REGEXP '[가-힣]';
추가로 정규표현식을 공부하면 쉽게 알수 있는 거지만
한글로 시작하는 경우엔 '^[가-힣]'
모두가 한글로 구성된 경우만 검색할경우엔 '^[가-힣]+$'
[출처] MySQL 정규식(regexp)검사를 통한 한글포함여부 체크|작성자 아찌
[출처] MySQL 정규식(regexp)검사를 통한 한글포함여부 체크|작성자 아찌
[출처] MySQL 정규식(regexp)검사를 통한 한글포함여부 체크|작성자 아찌