'전체 글'에 해당되는 글 396건

  1. 2023.11.14 [MS-SQL] 프로시저 검색
  2. 2023.10.26 [NAS] Server 에서 NAS 로 데이터 백업하기
  3. 2023.10.26 NAS(Network Attached Storage)
  4. 2023.10.20 [Oracle] 월별 누적 합계
  5. 2023.10.18 int 형 숫자의 자릿수 구하는 방법
  6. 2023.10.18 [Oracle] 해당월 전월의 마지막일자 구하기 1
  7. 2023.10.18 문자열 자르기의 차이
  8. 2023.10.13 [Oracle] 월별 집계 쿼리 실행 시, 해당 날짜가 없어도 표현되게 하는 방법
  9. 2023.10.13 [Oracle] 월별 집계 쿼리 1
  10. 2023.09.15 방화벽 vs. IDS vs. IPS

[MS-SQL] 프로시저 검색

|
SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id)
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE '%Insert Into DummyTable%' -- 검색 키워드 입력

-- 사용자 정의함수까지 조회가능
SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE IN ('PROCEDURE','FUNCTION')
AND ROUTINE_DEFINITION LIKE '%검색 키워드%'
And

[NAS] Server 에서 NAS 로 데이터 백업하기

|

1) Server가 리눅스 계열(CentOS, Ubuntu ... ) 의 경우

 - GUI 환경이 아닌 CLI 환경에서 Shell Script 를 이용해서 백업을 진행하는 플랜

0) git file 작성

#!/bin/bash
#변수 지정
_DATE=`date '+%Y%m%d'`
_LOG_TIME=`date '+[%Y/%m/%d %H:%M:%S]'`
_EX_DAY=3
_NAS_DIR=/test
_BACKUP_DIR=$_NAS_DIR/$_DATE
_LOG_DIR=$_BACKUP_DIR
_LOGFILE=$_LOG_DIR/${_DATE}_test_backup.log
_TEST_DIR=/test

(... 로직작성)
 
------------------------------------------------------------------------------------------

1) mount cifs


mount -t cifs -o user='사용자명',password='패스워드' //서버주소/공유폴더경로 마운트경로
mount -t cifs -o user='testuser',password='P@ssw0rd' //111.222.33.44/shared /data

* mount error(95) Operation not supported 에러 시
vers=1.0 명령어 추가
mount -t cifs -o user='testuser',password='P@ssw0rd',vers=1.0 //111.222.33.44/shared /data

* 공유폴더의 경우 네트워크 공유가 설정되어 있어야함.

------------------------------------------------------------------------------------------
 
2) vsftpd 설치해서 Crontab DB 자동 백업

ftp 이용
압축백업 이용(tar, gz, zip)

------------------------------------------------------------------------------------------

3) rsync

cp, scp, ftp 보다 빠르고 안전

https://www.lesstif.com/system-admin/rsync-data-backup-12943658.html
https://kb.synology.com/ko-kr/DSM/tutorial/How_to_back_up_Linux_computer_to_Synology_NAS#x_anchor_id7

------------------------------------------------------------------------------------------

4) nfs

https://kb.synology.com/ko-kr/DSM/tutorial/How_to_access_files_on_Synology_NAS_within_the_local_network_NFS

 

 

2) Server 가 Window 환경(Windows Server 2012 ... ) 의 경우

 - nas 에 synology driver server 설치

 - nas 에서 synology drive 관리콘솔 > 팀폴더 설정 (버저닝은 사용x)

 - NAS 에서 제공하는 ex. Synology Drive Client 프로그램을 server에 설치

 - nas ↔ server 간 백업 플랜 수립 및 실행

'IT Infra' 카테고리의 다른 글

특정 port 오픈이 되었는지 여부 확인 방법  (0) 2024.05.22
scp 와 pscp  (2) 2023.11.29
NAS(Network Attached Storage)  (0) 2023.10.26
방화벽 vs. IDS vs. IPS  (0) 2023.09.15
SASE(Secure Access Service Edge)  (0) 2023.08.24
And

NAS(Network Attached Storage)

|

정의
 - 네트워크로 연결된 하드 ( <-> 컴퓨터에 직접 연결해서 쓰는 DAS; 내장/외장 하드디스크 )
 - 컴퓨터가 랜선을 통해 다른 네트워크에서 해당 서버를 접속하여 데이터를 R/W/U 하는 것

장점
 - 간편한 데이터 공유
 - 외장하드를 들고 다닐 필요가 없다
 - 금액 절감 효과 ( 외장하드 구입 or 웹클라우드 구축 대비 )
 - 다양한 용도 ( docker hub에 있는 수많은 기능 중 상당수를 NAS에서 사용 가능 )

단점
 - 네트워크 구축 필수
 - 성능 한계
 - 설정 복잡
 - 데이터 관리 어려움

'IT Infra' 카테고리의 다른 글

scp 와 pscp  (2) 2023.11.29
[NAS] Server 에서 NAS 로 데이터 백업하기  (0) 2023.10.26
방화벽 vs. IDS vs. IPS  (0) 2023.09.15
SASE(Secure Access Service Edge)  (0) 2023.08.24
SSL Pinning  (0) 2023.08.24
And

[Oracle] 월별 누적 합계

|
SUM(

	-- 집계대상 col
    ...
    
) OVER (

	PARTITION BY
		-- 정렬대상 : ex. 회사코드, 부서코드
		COMPANY_CD,
		ORG_ID
        ...
        
	ORDER BY 
		-- 합계기준 컬럼 : ex. 날짜
        -- case when 사용 가능
		CASE
			WHEN SUBSTR(ISSUE_DT,5,4) LIKE '%0100%' THEN
				TO_CHAR(TO_DATE(SUBSTR(ISSUE_DT,1,4) || '0101'), 'YYYYMM') -- yyyy0100 데이터는 yyyy0101 데이터로 강제변환
			ELSE
				TO_CHAR(TO_DATE(ISSUE_DT), 'YYYYMM') -- 아닐경우 유지
		END
) AS OOO
And

int 형 숫자의 자릿수 구하는 방법

|
int foo = 345;
int digit = (int)( Math.log10(foo) + 1 );
System.out.println(digit); // 3

'Java' 카테고리의 다른 글

jar, war 파일 관련  (0) 2023.08.01
Servlet & Servlet Container  (0) 2023.06.13
HttpSession  (0) 2023.04.04
Server 1대에 Multi version 의 JDK 사용  (0) 2022.12.06
DAO, DTO, VO  (0) 2022.03.21
And

[Oracle] 해당월 전월의 마지막일자 구하기

|
-- 2022-12-31
SELECT ADD_MONTHS(LAST_DAY(TO_DATE('20230101', 'YYYY-MM-DD')), -1) FROM DUAL;
And

문자열 자르기의 차이

|
// 오라클
SUBSTR("문자열", "시작위치", "길이") // 시작위치가 1부터 시작한다.
substr('abcdef', 2, 3) // bcd

// java
substring("시작위치", "종료위치 + 1") // 시작위치가 0부터 시작한다.
String foo = 'abcdef';
foo.substring(0, 4) // abcd

// javascript
substr("시작위치", "길이") // 시작위치가 0부터 시작한다.
var foo = 'abcdef';
foo.substr(1, 1); // b

substring("시작위치", "종료위치") // 시작위치가 0부터 시작한다.
var foo = 'abcdef';
foo.substr(2, 3); // cde

'etc' 카테고리의 다른 글

SHA-256 해시 알고리즘  (0) 2023.08.16
PoC  (0) 2023.07.31
Copilot  (0) 2023.07.31
Web Achitectures 입문  (0) 2023.06.30
성장하려면  (0) 2023.06.30
And

[Oracle] 월별 집계 쿼리 실행 시, 해당 날짜가 없어도 표현되게 하는 방법

|
SELECT
    TO_CHAR(TO_DATE(V.MON), 'MM') AS MON
    , Z.COL_A
    ...
    
FROM 
	-- Z : 가져올 데이터 테이블
    (
    SELECT 
        TO_CHAR(TO_DATE(BILL_DT), 'MM') AS MON,
        COL_A,
        
    FROM ...

    AND 날짜컬럼 BETWEEN TO_DATE(SUBSTR('202101',0,4) || '0101', 'YYYY-MM-DD') AND TO_DATE('202110' ||  '31', 'YYYY-MM-DD') -- /* 1월 ~ 12월 조건 */
    GROUP BY TO_CHAR(TO_DATE(날짜컬럼), 'MM'), COL_A, ... -- 날짜값 형반환 주의
    ORDER BY MON -- /* 1월 ~ 12월 정렬 */
    ) Z
    , (
        -- V : 날짜 뷰(1월1일 ~ 12월 31일)
        SELECT TO_DATE(SUBSTR('202101',0,4) || '0101','YYYY-MM-DD') + LEVEL - 1 AS MON
        FROM dual 
        CONNECT BY LEVEL  <=  (TO_DATE(SUBSTR('202110',0,4) || '1231','YYYY-MM-DD') - TO_DATE(SUBSTR('202101',0,4) || '0101','YYYY-MM-DD') + 1)
    ) V
WHERE V.MON = Z.MON(+) -- right outer join
GROUP BY
    TO_CHAR(TO_DATE(V.MON), 'MM')
    , Z.COL_A
    ...

ORDER BY MON

'DATABASE(SQL)' 카테고리의 다른 글

[Oracle] 월별 누적 합계  (0) 2023.10.20
[Oracle] 해당월 전월의 마지막일자 구하기  (1) 2023.10.18
[Oracle] 월별 집계 쿼리  (1) 2023.10.13
[Oracle] Merge into  (0) 2023.08.29
[Oracle] DB Link  (0) 2023.08.25
And

[Oracle] 월별 집계 쿼리

|
-- 월별 누적 합계 쿼리
WITH MON_T AS ( -- 기준 월 
	SELECT 1 AS MON FROM DUAL UNION ALL
	SELECT 2 AS MON FROM DUAL UNION ALL
	SELECT 3 AS MON FROM DUAL UNION ALL
	SELECT 4 AS MON FROM DUAL UNION ALL
	SELECT 5 AS MON FROM DUAL UNION ALL
	SELECT 6 AS MON FROM DUAL UNION ALL
	SELECT 7 AS MON FROM DUAL UNION ALL
	SELECT 8 AS MON FROM DUAL UNION ALL
	SELECT 9 AS MON FROM DUAL UNION ALL
	SELECT 10 AS MON FROM DUAL UNION ALL
	SELECT 11 AS MON FROM DUAL UNION ALL
	SELECT 12 AS MON FROM DUAL
),
DATA_T AS ( -- 데이터 테이블
	SELECT 1 AS MON, 11 AS D_CNT FROM DUAL UNION ALL
	SELECT 2 AS MON, 12 AS D_CNT FROM DUAL UNION ALL
	SELECT 3 AS MON, 13 AS D_CNT FROM DUAL UNION ALL
	SELECT 4 AS MON, 14 AS D_CNT FROM DUAL UNION ALL
	SELECT 5 AS MON, 15 AS D_CNT FROM DUAL UNION ALL
	SELECT 6 AS MON, 16 AS D_CNT FROM DUAL UNION ALL
	SELECT 7 AS MON, 17 AS D_CNT FROM DUAL UNION ALL
	SELECT 8 AS MON, 18 AS D_CNT FROM DUAL UNION ALL
	SELECT 9 AS MON, 19 AS D_CNT FROM DUAL UNION ALL
	SELECT 10 AS MON, 20 AS D_CNT FROM DUAL UNION ALL
	SELECT 11 AS MON, 21 AS D_CNT FROM DUAL UNION ALL
	SELECT 12 AS MON, 22 AS D_CNT FROM DUAL
)
SELECT
	M.MON
	, D.MON AS MON2
	, D.D_CNT
FROM MON_T M
	, DATA_T D
WHERE D.MON BETWEEN 1 AND M.MON
ORDER BY M.MON, D.MON

 

-- WITH 를 이용한 월별 데이터(누적x) 집계 쿼리

-- 기준월(1월 ~ 12월)
WITH MON_T AS (
    SELECT 1 AS MON FROM DUAL UNION ALL
    SELECT 2 AS MON FROM DUAL UNION ALL
    SELECT 3 AS MON FROM DUAL UNION ALL
    SELECT 4 AS MON FROM DUAL UNION ALL
    SELECT 5 AS MON FROM DUAL UNION ALL
    SELECT 6 AS MON FROM DUAL UNION ALL
    SELECT 7 AS MON FROM DUAL UNION ALL
    SELECT 8 AS MON FROM DUAL UNION ALL
    SELECT 9 AS MON FROM DUAL UNION ALL
    SELECT 10 AS MON FROM DUAL UNION ALL
    SELECT 11 AS MON FROM DUAL UNION ALL
    SELECT 12 AS MON FROM DUAL
),
DATA_SAMPLE1 AS (
	SELECT

		TO_CHAR(TO_DATE(날짜컬럼), 'MM') AS MON,
		COL_A,
		COL_B,

	-----------------------
	--- 기존 select 쿼리
	-----------------------

	FROM

	-- 날짜별 조건 추가
	AND 날짜컬럼 BETWEEN TO_DATE('2023-01-01', 'YYYY-MM-DD') AND TO_DATE('2023-12-31', 'YYYY-MM-DD') -- /* 1월 ~ 12월 조건 */

	GROUP BY TO_CHAR(TO_DATE(날짜컬럼), 'MM'), COL_A, COL_B -- 날짜값 형반환 주의

	ORDER BY MON-- /* 1월 ~ 12월 정렬 */

)

SELECT 
	MT.MON || '월' AS MON									  /* 기준월 */
    , D1.COL_A
    , D2.COL_A
	..
    
FROM MON_T MT -- 기준월을 기준으로 

LEFT OUTER JOIN DATA_SAMPLE1 D1 ON D1.MON = MT.MON -- left join으로 데이터가 존재하는 row만 보이도록 처리

... 기타 join 조건 추가 ...

WHERE 1=1

-- 날짜 조건 param 값으로 처리
AND MT.MON BETWEEN TO_NUMBER(SUBSTR(#{s_bill_st_dt},5,2)) AND TO_NUMBER(SUBSTR(#{s_bill_end_dt},5,2))

GROUP BY MT.MON -- 월별
		, D1.COL_A -- select 절에 가져오는 컬럼은 group by 에 모두 기입되어야함.
    	, D2.COL_A
        ...
        
ORDER BY MT.MON -- 월별(날짜순서)
And

방화벽 vs. IDS vs. IPS

|

방화벽
- 서로 다른 네트워크를 지나는 데이터를 허용 및 거부하거나 검열 또는 수정
- 네트워크에서 보안을 높이기 위한 1차적인 방법
- 신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 사이를 지나가는 패킷들에 대한 미리 정한 규칙에 따라 차단하거나 보내주는 기능을 하는 하드웨어 또는 소프트웨어를 뜻함
- 기본적인 기능은 접근 제어를 Rule Set(ip, port)을 통해 이루어짐

 

IDS
- 칩입탐지시스템(Instruction Detection System)
- 시스템에 대한 원치 않은 조작을 탐지
- 호스트 기반(HIDS) 과 네트워크 기반(NIDS) 으로 나뉨

IPS
- 칩입방지시스템(Instrusion Preveting System)
- 공격탐지를 뛰어넘어 탐지된 공격에 대한 웹 연결 등을 적극적으로 막아주는 솔루션
- 침입탐지 기능을 수행하는 모듈이 패킷을 일일히 검사하여 해당 패턴을 분석한 후, 정상적인 패킷이 아니면 방화벽 기능을 가진 모듈로 차단
- 일반적으로 IPS는 방화벽 내부에 설치 ( 방화벽과 연동하여 공격을 탐지할 수 있기 때문 )

 

 

'IT Infra' 카테고리의 다른 글

[NAS] Server 에서 NAS 로 데이터 백업하기  (0) 2023.10.26
NAS(Network Attached Storage)  (0) 2023.10.26
SASE(Secure Access Service Edge)  (0) 2023.08.24
SSL Pinning  (0) 2023.08.24
[Jenkins] 젠킨스를 이용한 CI과정  (0) 2023.08.16
And
prev | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ··· | 40 | next