tar 로 압축된 파일에서 어떤 파일이 있는지 보고 싶거나 특정 파일 또는 폴더만 압축을 풀고 싶을때가 있습니다.

▶ 리스트 확인

tar ztvf 압축명.tar.gz

 

 리스트에서 특정 파일만 보기

tar ztvf 압축명.tar.gz | grep "특정파일명"

 

 특정 폴더만 풀기

tar zxvf 압축명.tar.gz ./www

 

 특정 파일만 풀기

tar zxvf 압축명.tar.gz ./www/index.html

 

잘 사용하지는 않지만 가끔씩 쓸때가 있네요~

 

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

우체국에서 최신 우편번호 DB 파일을 다운로드 받으면 텍스트 형태로 되어 있습니다.

이를 mysql 에 데이터로 밀어넣는 방법입니다.

https://www.epost.go.kr/search/zipcode/areacdAddressDown.jsp
https://www.epost.go.kr/search/areacd/zipcode_DB.zip
여기에서 파일을 다운로드 받아서 압축을 풀고 서버로 업로드를 합니다.

우편번호|
시도|
시도영문|
시군구|
시군구영문|
읍면|
읍면영문|
도로명코드|
도로명|
도로명영문|
지하여부|
건물번호본번|
건물번호부번|
건물관리번호|
다량배달처명|
시군구용건물명|
법정동코드|
법정동명|
리명|
행정동명|
산여부|
지번본번|
읍면동일련번호|
지번부번|
구우편번호|
우편번호일련번호

파일을 열어서 보면 위에 같은 형태로 되어 있는데 똑같은 구조로 테이블을 만듭니다.

CREATE TABLE zipcode (
 zipcode        VARCHAR(5) NULL,
 sido           VARCHAR(25) NULL,
 sido_en        VARCHAR(20) NULL,
 sigungu        VARCHAR(30) NULL,
 sigungu_en     VARCHAR(30) NULL,
 eupmyun        VARCHAR(20) NULL,
 eupmyun_en     VARCHAR(25) NULL,
 doro_code      VARCHAR(12) NULL,
 doro           VARCHAR(40) NULL,
 doro_en        VARCHAR(50) NULL,
 under_yn       VARCHAR(1) NULL,
 buildno1       VARCHAR(5) NULL,
 buildno2       VARCHAR(4) NULL,
 buildnum       VARCHAR(25) NULL,
 multiple       VARCHAR(1) NULL,
 buildname      VARCHAR(70) NULL,
 dong_code      VARCHAR(10) NULL,
 dong           VARCHAR(20) NULL,
 ri             VARCHAR(20) NULL,
 dong_hj        VARCHAR(30) NULL,
 mount_yn       VARCHAR(1) NULL,
 jibun1         VARCHAR(4) NULL,
 eupmyundong_no VARCHAR(2) NULL,
 jibun2         VARCHAR(4) NULL,
 zipcode_old    VARCHAR(7) NULL,
 zipcode_seq    VARCHAR(3) NULL,
 idx            INT(10)    UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

이제 DB Text 파일을 ANSI 에서 UTF-8 로 변환 합니다.

iconv -c -f cp949 -t utf-8 강원도.txt > 강원도1.txt
iconv -c -f cp949 -t utf-8 경기도.txt > 경기도1.txt
iconv -c -f cp949 -t utf-8 경상남도.txt > 경상남도1.txt
iconv -c -f cp949 -t utf-8 경상북도.txt > 경상북도1.txt
iconv -c -f cp949 -t utf-8 광주광역시.txt > 광주광역시1.txt
iconv -c -f cp949 -t utf-8 대구광역시.txt > 대구광역시1.txt
iconv -c -f cp949 -t utf-8 대전광역시.txt > 대전광역시1.txt
iconv -c -f cp949 -t utf-8 부산광역시.txt > 부산광역시1.txt
iconv -c -f cp949 -t utf-8 서울특별시.txt > 서울특별시1.txt
iconv -c -f cp949 -t utf-8 세종특별자치시.txt > 세종특별자치시1.txt
iconv -c -f cp949 -t utf-8 울산광역시.txt > 울산광역시1.txt
iconv -c -f cp949 -t utf-8 인천광역시.txt > 인천광역시1.txt
iconv -c -f cp949 -t utf-8 전라남도.txt > 전라남도1.txt
iconv -c -f cp949 -t utf-8 전라북도.txt > 전라북도1.txt
iconv -c -f cp949 -t utf-8 제주특별자치도.txt > 제주특별자치도1.txt
iconv -c -f cp949 -t utf-8 충청남도.txt > 충청남도1.txt
iconv -c -f cp949 -t utf-8 충청북도.txt > 충청북도1.txt

변환된 파일을 mysql load data 를 이용해서 데이터로 밀어넣습니다.

LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/강원도1.txt'         INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/경기도1.txt'         INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/경상남도1.txt'       INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/경상북도1.txt'       INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/광주광역시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/대구광역시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/대전광역시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/부산광역시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/서울특별시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/세종특별자치시1.txt' INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/울산광역시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/인천광역시1.txt'     INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/전라남도1.txt'       INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/전라북도1.txt'       INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/제주특별자치도1.txt' INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/충청남도1.txt'       INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;
LOAD DATA LOCAL INFILE '/home/ivps/www/zipcode/zipcode_DB/충청북도1.txt'       INTO TABLE zipcode.zipcode CHARACTER SET 'utf8' FIELDS TERMINATED BY '|' IGNORE 1 LINES;

생각보다 빨리 처리가 되는군요~

idx 컬럼 때문에 warning 이 발생하긴 하지만 idx 컬럼이 없으면 로딩시 느려집니다.

load data 뒤쪽에 SET idx = NULL 을 넣어도 워닝은 발생하네요~

INSERT INTO TABLE (컬럼명, ...) 이렇게 지정하면 되긴 하지만 저 많은 컬럼을 다 나열하자니~ ㅎ

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

우체국의 우편번호 주소 DB 텍스트 파일을 열어보니 ANSI 로 나오는데 mysql 에 밀어 넣으려면 utf-8 로 변환해야 합니다.

ANSI 인데 한글인 경우 cp949 를 utf-8 로 변경하면 됩니다. ( euc-kr 로 하니까 샾아파트 같은 문자는 깨지네요~ )

AcroEdit 와 같은 편집기를 이용해서 변환해도 되지만 리눅스 명령어로 치환하는 방법입니다.

[root@ivps zipcode_DB]# file -bi 강원도.txt
text/plain; charset=iso-8859-1
[root@ivps zipcode_DB]# iconv -c -f cp949 -t utf-8 강원도.txt > 강원도1.txt
[root@ivps zipcode_DB]# file -bi 강원도1.txt
text/plain; charset=utf-8

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

sed 명령어로 문자열 치환시 ' $ 두 문자가 들어가야 되는데 sed -i 's/찾는문자열/바꿀문자열/g' 방법으로는 원하는대로 되지가 않습니다.

 

/etc/phpMyAdmin/config.inc.php 파일의 맨 아랫줄에

"$cfg['LoginCookieValidity'] = 43200;" 를 추가하려고 하는데 애를 먹었네요~

 

sed -i "s/^?>/\$cfg['LoginCookieValidity'] = 43200;\n?>/g" /etc/phpMyAdmin/config.inc.php

 

sed -i "s/찾는문자열/바꿀문자열/g" 파일경로 이렇게 큰따옴표로 감싸면 됩니다.

그리고 $는 앞에 \를 붙여주면 됩니다.

 

 

블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] 쉘스크립트 실행 /bin/sh^M 오류


윈도우에서 만들어진 쉘스크립트 파일을 시놀로지에 넣어서 실행하니깐 아래와 같은 오류가 생기더군요~

root@mynas:~/bin# ./test.sh

-ash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory

또는

line 1: #!/bin/sh: No such file or directory ( <feff> 유니코드 BOM 으로 저장된 경우 )

개행 문자를 unix 로 바꿔주어야 합니다.


# vi test.sh

:set fileformat=unix

저장하고 다시 실행해보세요~


line 1: #!/bin/sh: No such file or directory

이렇게 나온다면

# vi -b test.sh 로 실행해서 

<feff>#!/bin/sh

위와 같이 나오면 앞에 문자를 지워주고 저장하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] PHP SESSION 저장 안되는 문제


아파치에서 VirtualHost 를 다른 소유자로 변경하고 재시작 했더니 잘되던 phpmyadmin 에서 아래와 같은 오류가 뜨더군요~

mod_ruid2 모듈과 함께 사용중인데 원인을 찾는데 함참 걸렸네요~

import.php: Missing parameter: import_type

import.php: Missing parameter: format

세션이 저장되는 폴더 /var/lib/php/session 폴더의 퍼미션을 777로 바꾸어도 안되더니 가만 생각해 보니 그 안에 원래 있던 세션 파일의 소유자가 달라서 그렇더군요~

해당 파일을 지우고 하니 잘 됩니다~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[CentOS] 7.x 아파치 2.4.x mod_cband 0.9.7.5 컴파일



Apache 트래픽 제어 모듈은 cband 만한게 없는 것 같네요~

CBandScoreboard 설정시 "apache2_mod_cband: cannot open scoreboard file" 같은 에러는 해당 경로의 퍼미션을 조정하면 됩니다.

CBandUser (apache 또는 root로 생성) 를 설정하고 VirtualHost (mod_ruid2 로 유저계정) 에서 사용시 파일권한이 달라서 나는 에러는 666 으로 변경하여 주세요~


# wget https://github.com/vobruba-martin/mod_cband/archive/0.9.7.5.tar.gz

# tar zxvf 0.9.7.5.tar.gz

# cd mod_cband-0.9.7.5

# ./configure  ## configure: error: apxs missing 에러가 납니다.

checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ANSI C... none needed

checking whether make sets $(MAKE)... yes

checking for apr_palloc in -laprutil... no

checking for an ANSI C-conforming const... yes

checking for apxs... no

checking for apxs2... no

configure: error: apxs missing

httpd-devel 을 설치해 줍니다.


# yum -y install httpd-devel

# ./configure

checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables...

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ANSI C... none needed

checking whether make sets $(MAKE)... yes

checking for apr_palloc in -laprutil... no

checking for an ANSI C-conforming const... yes

checking for apxs... apxs

checking how to run the C preprocessor... gcc -E

checking for egrep... grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking stdio.h usability... yes

checking stdio.h presence... yes

checking for stdio.h... yes

checking for string.h... (cached) yes

checking assert.h usability... yes

checking assert.h presence... yes

checking for assert.h... yes

checking ctype.h usability... yes

checking ctype.h presence... yes

checking for ctype.h... yes

checking errno.h usability... yes

checking errno.h presence... yes

checking for errno.h... yes

checking math.h usability... yes

checking math.h presence... yes

checking for math.h... yes

checking netinet/in.h usability... yes

checking netinet/in.h presence... yes

checking for netinet/in.h... yes

checking sys/socket.h usability... yes

checking sys/socket.h presence... yes

checking for sys/socket.h... yes

checking arpa/inet.h usability... yes

checking arpa/inet.h presence... yes

checking for arpa/inet.h... yes

configure: creating ./config.status

config.status: creating Makefile


# make

# make install


# find / -name mod_cband.so 명령어로 제대로 설치가 되었는지 확인하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] 아파치 트래픽 제어


Apache 2.2.x 속도 제어 모듈중에 mod_cband 가 있습니다.

2.4 버전에서도 사용은 가능하지만 약간의 수정이 필요합니다.

mod_qos 라는 모듈도 있는데 yum install mod_qos 로 설치가 가능합니다.

yum install epel_release 가 먼저 설치되어 있어야 합니다.


아래는 mod_qos 기본적인 설정입니다.

/etc/httpd/conf.d/qos.conf 파일을 만들어 주면 됩니다.

# allows max 50 connections from a single ip address:

QS_SrvMaxConnPerIP                        50

# limits download bandwidth to 5Mbit/sec (resp. 640kbytes/sec)

#QS_LocKBytesPerSecLimit       /           640

# 100Mbps

QS_LocKBytesPerSecLimit       /           12800

# disables connection restrictions for certain clients:

QS_SrvMaxConnExcludeIP                    127.0.0.1

QS_SrvMaxConnExcludeIP                    192.168.1.

# Brute Force

# allows a single IP addess to access the URI /wp-login.php not more

# than 10 times within an hour:

SetEnvIf                 Request_URI ^/wp-login.php LimitLogin

QS_ClientEventLimitCount 10 3600 LimitLogin


# Status Viewer

<Location /qos>

    SetHandler qos-viewer

    Order Deny,Allow

    Deny from All

    Allow from 127.0.0.1

</Location>

status 에 자신의 아이피를 넣어주면 됩니다.


최신 버전을 사용하려면 https://sourceforge.net/projects/mod-qos/files/ 여기에서 최신버전을 다운로드 받으면 됩니다.

사용방법은 http://mod-qos.sourceforge.net/ 여기를 참고하세요~



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] CPU 정보를 알 수 있는 명령어 LSCPU



CPU 종류는 뭔지 그리고 코어랑 스레드 갯수, 가상화는 지원하는지 등을 알아보려면 lscpu 명령어를 실행해보세요~


# lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                8

On-line CPU(s) list:   0-7

Thread(s) per core:    2

Core(s) per socket:    4

Socket(s):             1

NUMA node(s):          1

Vendor ID:             GenuineIntel

CPU family:            6

Model:                 158

Model name:            Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz

Stepping:              9

CPU MHz:               900.000

CPU max MHz:           3800.0000

CPU min MHz:           800.0000

BogoMIPS:              7200.00

Virtualization:        VT-x

L1d cache:             32K

L1i cache:             32K

L2 cache:              256K

L3 cache:              8192K

NUMA node0 CPU(s):     0-7

Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch intel_pt ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp spec_ctrl intel_stibp flush_l1d


그냥 단순히 cpu 종류만 확인하려면 cat /proc/cpuinfo | grep name 하면 됩니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,

[리눅스] vnstat eth0 No such file or directory



vnstat 에서 네트워크 카드명이 디폴트 eth0 가 아닌경우 아래와 같은 에러가 나옵니다.


# vnstat -d

Error: Unable to read database "/var/lib/vnstat/eth0": No such file or directory



ifconfig 에서 확인한 네트워크 정보를 보고 아래 파일을 수정하면 됩니다.


# vi /etc/vnstat.conf


# default interface

#Interface "eth0"

Interface "enp3s0"


수정 후에는 systemctl restart vnstat 을 해주세요~


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,