글쓴이 보관물: totoli78

VirtualBox_Physical_Drive_Mount

diskpart로 디스크 번호 확인

DISKPART> list disk

디스크 ###  상태           크기     사용 가능     Dyn  Gpt
———-  ————-  ——-  ————  —  —
디스크 0    온라인       2048 MB           0 B
디스크 1    온라인        238 GB           0 B        *
디스크 2    온라인        447 GB           0 B        *
디스크 3    온라인        931 GB           0 B        *
디스크 4    온라인       3726 GB           0 B

select disk 1
list partition

— 드라이브 통으로 생성
“C:\Program Files\Oracle\VirtualBox\VBoxManage” internalcommands createrawvmdk -filename “D:\SubStorage\VirtualBox VMs\Xpenology_x64\PhysicalDriveSSD.vmdk” -rawdisk \\.\PhysicalDrive6

— 드라이브의 특정 파티션 생성
“C:\Program Files\Oracle\VirtualBox\VBoxManage” internalcommands createrawvmdk -filename “D:\SubStorage\VirtualBox VMs\Xpenology_x64\PhysicalDrive1_Pt5.vmdk” -rawdisk \\.\PhysicalDrive1 -partitions 5

RAW host disk access VMDK file d:\SubStorage\VirtualBox VMs\Xpenology_x64\PhysicalDrive3p2.vmdk created successfully.

VMDK 2 VDI

VMDK 2 VDI

“C:\Program Files\Oracle\VirtualBox\VBoxManage” clonehd photo_backup.vmdk backup_volume.vdi –format VDI

ubuntu 업그레이드

Ubuntu 17.04 Zesty Zapus로 업그레이드하기 전에 다음 명령을 사용하여 현재 Ubuntu 릴리스를 업데이트하고 업그레이드하십시오.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

이제 update-manager-core 패키지를 설치하려면 다음 명령을 실행하십시오.

sudo apt install update-manager-core

update-manager-core 패키지가 설치되면 / etc / update-manager / release-upgrades 파일을 편집하고 프롬프트 값을 normal로 설정하십시오. 프롬프트 = 정상

sudo vi /etc/update-manager/release-upgrades

이제 마침내 do-release-upgrade 명령을 실행하여 우분투 17.04로 업그레이드하십시오. Zesty Zapus :

sudo do-release-upgrade -d  <–(안되면 -d 빼고 실행)

업그레이드 프로세스가 완료되면 시스템을 다시 시작하고 다음 명령을 사용하여 Ubuntu 버전을 확인하십시오.

lsb_release -a

출력은 다음과 같아야한다.

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu zesty zapus (development branch)
Release: 17.04
Codename: zesty

portproxy_set

netsh -> interface -> portproxy

add v4tov4 listenport=5122 connectaddress=192.168.100.170 connectport=5122

commit

add v4tov4 listenport=5110 connectaddress=127.0.0.1 connectport=80
delete v4tov4 listenaddress=112.220.221.117 listenport=9515

show all

owncloud DB file 정보 동기화

-. owncloud 유저 / 특정 폴더 동기화

sudo -u www-data php /var/www/owncloud/console.php files:scan totoli

sudo -u www-data php /var/www/owncloud/console.php files:scan –path “totoli/files/private”

 

-. 유저 모두

sudo -u www-data php /var/www/owncloud/console.php files:scan –all

image optimization

image optimization

 

–PNG

optipng -o6 -strip all *.png

–JPG

jpegoptim –strip-all *.jpg

ANSI(EUC-KR) 2 UTF-8

-. 파일명 한글 교정

find . -exec convmv -r –notest -f euc-kr -t utf-8 {} \;

 

-. 특정 폴더 및 하위 파일 중 txt 파일만 한정하여 인코딩 변환

find / -name *.txt -execdir iconv -f EUC-KR -t UTF-8 {} -o {}.tmp \; -execdir mv -f {}.tmp {} \;

 

-. 음원파일 한글 교정

find -type f -iregex “.*/.*\.\(ogg\|mp3\|flac\)” -print0 | xargs -0 mid3iconv -e cp949

 

vim sh. config

“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” General
“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” Sets how many lines of history VIM has to remember
” VIM에서 기억할 히스토리 라인수
set history=1000

” Set to auto read when a file is changed from the outside
” 현재 사용하고 있는 파일이 외부에서 수정된 경우 자동으로 읽기
set autoread

” Set to auto write on opening an other file.
” 다른 파일을 읽게 되는 경우 현재 파일을 자동으로 저장하기
” 현재 파일을 저장하지 않으면 “:e” 등으로 다른 파일을 열 수 없음.
set autowrite

” Use mouse or not
” 마우스로 클릭한 위치에 커서 놓기
” 마우스로 드래그한 영역은 비쥬얼 모드로 복사준비하기
” 단 마우스를 사용하면, 마우스 오른 버튼을 눌러 나오는 복사를 선택할 수 없음.
” 마우스를 사용하지 않으려면, “:set mouse-=a”를 치기
“set mouse=a

“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” VIM user interface
“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” Always show current position
” 오른편 하단에 현재 위치의 (행, 렬)을 표시
set ruler

” Highlight search results
” 검색결과에 하이라이트 표시하기
set hlsearch

” Makes search act like search in modern browsers
” 한글자 입력할때마다 매치되는 부분 표시하기
set incsearch

” Show matching brackets when text indicator is over them
” 현재 커서가 놓여진 괄호의 짝을 표시하기
set showmatch

” line number
” 라인넘버 표시하기
set number

“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” Colors and Fonts
“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” syntax highlight
” 언어 syntax에 하이라이트표시
syntax on

” color scheme
” 컬러스킴
colorscheme desert
set background=dark

” Set utf8 as standard encoding
” utf8을 표준 인코딩으로 사용하기
set encoding=utf8

“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” Text, tab and indent related
“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” auto indent’s tab size
” 자동탭 사이즈를 4칸으로 하기
set shiftwidth=4

” 1 tab == 4 spaces
” 탭을 4칸으로 하기
set tabstop=4

” c style auto indent
” c언어 스타일로 indentation하기
set cindent

” #if has to be first on the line
” #if 문을 라인의 시작에 배치하기
set smartindent

“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” Coding
“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
” fold functions by indent or syntax.
” open a folded function using ‘zo’
” clase a function using ‘zc’
” syntax에 따라 접어두기
” 접은 것을 열려면, zo를 누르기
” 연 것을 다시 접으려면, zc를 누르기
“set foldmethod=indent
” 최대 깊이는 1개로 고정
“set foldnestmax=1

openssl 인증서 발급

<< CA root 인증서 생성 >>

# openssl 로 root ca 의 개인키와 인증서 생성

**. CA가 사용할 RSA  key pair(public, private key) 생성 (2048bit 개인키 생성)
openssl genrsa -aes256 -out rootCA.key 2048

**. CSR(Certificate Signing Request) 생성을 위한 rootCA_openssl.cfg 로 저장
rootCA_openssl.cfg
—————————————————————————————————
[ req ]
default_bits            = 2048
default_md              = sha1
default_keyfile         = rootCA.key
distinguished_name      = req_distinguished_name
extensions             = v3_ca
req_extensions = v3_ca

[ v3_ca ]
basicConstraints       = critical, CA:TRUE, pathlen:0
subjectKeyIdentifier   = hash
##authorityKeyIdentifier = keyid:always, issuer:always
keyUsage               = keyCertSign, cRLSign
nsCertType             = sslCA, emailCA, objCA
[req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = KR
countryName_min                 = 2
countryName_max                 = 2

# 회사명 입력
organizationName              = Organization Name (eg, system)
organizationName_default      = totoli Inc.

# 부서 입력
#organizationalUnitName          = Organizational Unit Name (eg, section)
#organizationalUnitName_default  = totoli

# SSL 서비스할 domain 명 입력
commonName                      = Common Name (eg, your name or your server’s hostname)
commonName_default             = totoli’s Self Signed CA
commonName_max                  = 64
—————————————————————————————————

**. 인증서 요청 생성
openssl req -new -key rootCA.key -out rootCA.csr -config rootCA_openssl.cfg

**. 10년짜리 self-signed 인증서 생성
openssl x509 -req -days 3650 -extensions v3_ca -set_serial 1 -in rootCA.csr -signkey rootCA.key -out rootCA.crt -extfile rootCA_openssl.cfg

**. 제대로 생성되었는지 확인
openssl x509 -text -in rootCA.crt

<< Host 인증서 생성 >>

#  root ca 서명키로 host SSL 인증서를 발급

**. SSL 호스트에서 사용할 RSA  key pair(public, private key) 생성
openssl genrsa -aes256 -out totoli.key 2048

**. 암호가 걸려있으면 httpd 구동때마다 pass phrase(암호) 를 입력해야 함으로 암호를 제거
copy totoli.key totoli.key.enc
openssl rsa -in totoli.key.enc -out totoli.key

**. CSR(Certificate Signing Request) 생성을 위한 host_openssl.cfg 로 저장
host_openssl.cfg
—————————————————————————————————
[ req ]
default_bits            = 2048
default_md              = sha1
default_keyfile         = rootCA.key
distinguished_name      = req_distinguished_name
extensions             = v3_user
## 인증서 요청시에도 extension 이 들어가면 authorityKeyIdentifier 를 찾지 못해 에러가 나므로 막아둔다.
## req_extensions = v3_user

[ v3_user ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
authorityKeyIdentifier = keyid,issuer
subjectKeyIdentifier = hash
keyUsage = nonRepudiation, digitalSignature, keyEncipherment

## SSL 용 확장키 필드
extendedKeyUsage = serverAuth,clientAuth
subjectAltName          = @alt_names
[ alt_names]
## Subject AltName의 DNSName field에 SSL Host 의 도메인 이름을 적어준다.
## 멀티 도메인일 경우 *.totoli.com 처럼 쓸 수 있다.
DNS.1   = totoli.us.to
DNS.2   = *.totoli.us.to
## DNS.3   = subdomain.totoli.us.to

[req_distinguished_name ]
countryName                     = Country Name (2 letter code)
countryName_default             = KR
countryName_min                 = 2
countryName_max                 = 2

# 회사명 입력
organizationName              = Organization Name (eg, system)
organizationName_default      = totoli Inc.

# 부서 입력
organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = Media Division

# SSL 서비스할 domain 명 입력
commonName                      = Common Name (eg, your name or your server’s hostname)
commonName_default             = totoli.us.to
commonName_max                  = 64
—————————————————————————————————

**. SSL 인증서 요청 CSR 생성
openssl req -new -key totoli.key -out totoli.csr -config host_openssl.cfg

**. 5년짜리 totoli.us.to 용 SSL 인증서 발급 (서명시 ROOT CA 개인키로 서명)
openssl x509 -req -days 1825 -extensions v3_user -in totoli.csr -CA rootCA.crt -CAcreateserial -CAkey rootCA.key -out totoli.crt -extfile host_openssl.cfg

**. 제대로 생성되었는지 확인
openssl x509 -text -in totoli.crt
<< Cleent에 RootCA 등록 >>
**. rootCA.crt 파일을 client PC로 복사 후 CA 인증서를 해당 Client에 신용할 수 있는 인증서로 등록 해야 함. (귀찮으면 돈주고 신용할 수 있는 인증서를 사던가 ㅋㅋ)

ubuntu apk option 정리

[Ubuntu] 패키지 툴 및 패키지 관리

설치, 업그레이드, 검사 등 대부분의 패키지 관리작업을 apt 단독으로 가능하다.

sudo apt-get update
:  /etc/apt/sources.list를 참조로 사용할 수 있는 패키지 DB를 업데이트 한다.

apt-cache search 키워드
: 패키지 데이터베이스 중 주어진 키워드를 대소문자 구분 없이 검색하여 키워드를 포함하는 패키지명과 해당 설명을 출력한다.
sudo apt-get install 패키지명
: 패키지명을 데이터베이스에서 찾아보고 해당패키지를 다운로드 받아 설치한다. 이 때 패키지의 신뢰성을 gpg키를 사용 검증한다.
sudo apt-get -d install 패키지명
: 패키지를 설치는 하지 않고 /var/cache/apt/archives/ 디렉토리에 다운로드 받는다.
apt-cache show 패키지명
: 주어진 패키지명에 해당하는 소프트웨어에 대한 정보를 본다.
sudo apt-get upgrade
: 설치 되어있는 모든 프로그램 패키지에 대한 최신 업데이트를 검사한 후, 다운로드 받아 설치한다.
sudo apt-get dist-upgrade
: 전체 시스템을 새로운 버젼으로 업그레이드 한다. 이때 패키지 삭제도 실시된다.
단, 일반적으로 사용되는 업그레이드 방법은 아님!
sudo apt-get autoclean
: 불안전하게 다운로드된 패키지나 오래된 패키지의 삭제.
sudo apt-get clean
: 디스크 공간 확보를 위해 /var/cache/apt/archives/ 에 캐쉬된 모든 패키지 삭제
sudo apt-get 옵션 remove 패키지명
: 해당 패키지와 그 설정파일을 삭제한다. (옵션에 –purge 를 넣으면 설정파일을 제외하고 삭제. 옵션 없을시 전부 삭제)
sudo apt-get -f install
: 깨어진 패키지를 위해 정상여부를 확인
apt-config -V
: 설치된 APT툴의 버전을 출력
sudo apt-key list
: APT가 알고 있는 gpg키 목록의 출력
apt-cache stats
: 설치된 모든 패키지에 대한 상태정보를 출력
apt-cache depends
: 패키지가 설치되어 있는지 여부에 관계 없이 그 의존성을 출력한다.
apt-cache pkgnames
: 시스템에 설치되어 있는 모든 패키지 목록을 보여준다.
2.dpkg
이 툴의 경우 APT보다는 낮은 수준에서 작업이 수행된다. APT는 우분투의 소프트웨어를 관리하기 위해 내부적으로 이 dpkg를 이용한다. 보통 APT명령 만으로 충분하지만… 시스템에 있는 특정 파일이 어떤 패키지에 포함되는지 등의 확인 작업을 수행하기위해 dpkg 명령이 필요한 것이다.

dpkg -C  .deb파일
: 주어진 .deb파일이 설치한 파일의 목록을 본다.(해당 파일이 있는 곳에서 실행하거나 파일명앞에 절대 경로를 붙여준다.)
dpkg -I  .deb파일
: 주어진 .deb파일에 대한 정보를 본다.
dpkg -P  패키지명
: 패키지에 대한 정보를 보여준다.
dpkg -S  파일명
: 파일명 또는 경로가 포함된 패키지들을 검색한다.
dpkg -l
: 설치된 패키지 목록을 보여준다.
dpkg -L  패키지명
: 이 패키지로부터 설치된 모든 파일목록을 볼수 있다.
dpkg -s  패키지명
: 주어진 패키지의 상태를 본다
sudo dpkg -i  .deb파일
: 주어진 파일을 설치한다.
sudo dpkg -r  패키지명
: 시스템에서 해당 패키지를 삭제한다. (단, 삭제시 파일들은 남겨둔다.)
sudo dpkg -P  패키지명
: 해당 패키지와 해당 패키지의 설정파일을 모두 삭제한다.
sudo dpkg -x  .deb파일  디랙토리
: 파일에 포함되어있는 파일들을 지정된 디렉토리에 풀어놓는다. 단, 주의 할점은 이명령시 해당 디렉토리를 초기화 시켜버리므로
주의하여야 한다!
3. aptitude
앞에서 배운 dpkg와 APT의 경우 제대로 사용하기 위해서는 좀더 많은 지식을 요구한다. 그에 비하여 aptitude의 경우 주요 패키지 작업 과정을 자동화하여 가능한 쉽게 작업할 수 있도록 해주므로 보다 쉽게 할 수 있다. 고로 보다 많이 사용하게 될 것이… 옳지만… 아직은 인터넷 상에서 APT나 dpkg를 사용한 패키지 설치 정보가 많다는 점에서… 장래에 많이 사용하게 될 듯하다^^

sudo aptitude
: 실행시 curses인터페이스로 시작된다. Ctrl+t를 사용하면 메뉴에 접근할 수 있으며, q키로프로그램을 종료 시킬 수 있다.
aptitude help
: 도움말 보기
aptitude search 키워드
: 해당 키워드와 일치하는 패키지를 보여준다.
sudo aptitude update
: APT리포지트로들로부터 사용 가능한 패키지를 업데이트 한다.
sudo aptitude upgrade
: 모든 패키지를 최신으로 업그레이드 한다.
aptitude show 패키지명
: 해당 패키지의 설치 여부에 관계 없이 주어진 패키지에 대한 정보를 보여준다.
sudo aptitude download 패키지명
: 해당 패키지를 설치하지는 않고 다운로드만 받는다
sudo aptitude clean
: /var/cache/apt/archives디렉토리에 다운로드되어 있는 모든 .deb파일을 삭제한다.
sudo aptitude autoclean
: /var/cache/apt/archives디렉토리에 있는 오래된 .deb파일을 전부 삭제한다.
sudo aptitude install 패키지명
: 해당 패키지를 시스템에 설치한다.
sudo aptitude remove 패키지명
: 시스템으로부터 주어진 패키지를 삭제 한다.
sudo aptitude dist-upgrade
: 모든 패키지를 가장 최신 버전으로 업그레이드 시킨다. 이때, 필요한 경우 패키지를 삭제하거나 추가 한다.
참고로, 위 내용 다 넘기고 요즘 우분투의 경우 ‘프로그램 > 추가/제거’ 메뉴나 ‘시스템 > 관리 > 스넵틱스관리자’ 에서 쉽게 패키지를 선택하고 설치하거나 삭제 할 수 있다. 아니면 .deb파일을 받아 마우스로 클릭만 해주면 자동으로 패키지 관리자가 실행되어 설치 하게 되어있다.
하지만, 위 내용을 알고 있어야 보다 깊은 단계로 나아갈 수 있고 또 보다 세부적인 관리, 추가, 삭제가 가능하기에 알아 두는게 좋다고 본다.