Monday, May 2, 2016

Ssh

ssh key 로그인


[Client] ssh-keygen 으로 key 생성하기(dsa|rsa)

$ ssh-keygen -t rsa -f ~/.ssh/example_rsa

.
Enter passphrase (empty for no passphrase):  [Enter]
Enter same passphrase again: [Enter]

[Client] key 생성 확인

$ ls -al ~/.ssh/example_rsa*

-rw------- 1 root root 668 2013-03-19 16:03 example_rsa
-rw-r--r-- 1 root root 604 2013-03-19 16:03 example_rsa.pub

[Client] key 등록

$ vi ~/.ssh/config

IdentityFile     ~/.ssh/example_rsa

$ chmod 644 ~/.ssh/config

[Client->Server] key 복사(Server로)

$ scp ~/.ssh/example_rsa.pub root@example.com:~/.ssh/authorized_keys
$ ssh root@example.com "chmod 700 ~/.ssh"
$ ssh root@example.com "chmod 644 ~/.ssh/authorized_keys"

[Client->Server] key 로그인 확인

$ ssh root@example.com

Last login: Tue Mar 19 16:32:21 2013 from 10.10.10.11
[root@example ~]# 

ssh 파일 전송


scp(Upload)

$ scp -r /home root@example.com:/home/

scp(Download)

$ scp -r root@example.com:/home /home/

ssh(Upload)

$ tar cp /home | ssh root@example.com "tar xvp -C /home/"

ssh(Download)

$ ssh root@example.com "tar cp /home" | tar xvp -C /home/

ssh 호스트키 체크 비활성화


$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=quiet root@example.com

UserKnownHostsFile=/dev/null
known_hosts 파일을 남기지 않도록 설정

StrictHostKeyChecking=no
host key check 를 하지 않도록 설정

LogLevel=quiet
경고 메시지 출력 되지 않도록 설정(Warning: Permanently added…)

sshpass 를 이용한 패스워드 입력 자동화


sshpass 설치
$ yum install sshpass

sshpass 실행
$ sshpass -pPASSWORD ssh root@example.com id

uid=0(root) gid=0(root) groups=0(root)

기타


한줄로

config 생성
$ echo "IdentityFile ~/.ssh/example_rsa" >> ~/.ssh/config

authorized_keys 생성
$ read skey < ~/.ssh/example_rsa.pub; ssh root@example.com "mkdir ~/.ssh;echo $skey >> ~/.ssh/authorized_keys"



Tmux

기본 사용법


new session

$ tmux new -s [session_name]

detach

CTRL + b + d

session list

$ tmux ls

attach

$ tmux attach -t [session_name]

new window

CTRL + b + c

kill window

CTRL + d

kill session

$ tmux kill-session -t [session_name]

move window

CTRL + b + [0-9]
CTRL + b + n | p | l | f
CTRL + b + w

move cursor

CTRL + b + [

view keys

CTRL + b + ?



Screen

실행 옵션


새로운 세션을 연다.

$ screen -S [session_name]

detach 해논 세션으로 접속 한다.

$ screen -r [session_name]

screen SockDir 리스트 출력

$ screen -list

실행후 옵션


상태표시

CTRL + a w

 * : 현재 있는 창에 표시된다.
 - : 처음 시작된 창에 표시된다. (0번이겠지~)

기본사용

CTRL + a d
detach mode 데몬식으로 띠워두고 빠져나온다!

CTRL + a w
현재 스크린의 창수와 현재 있는 창의 위치 표시!

CTRL + a c
새창을 띄운다.

CTRL + a a
바로 전 창으로 이동

CTRL + a [number]
지정한 번호의 창으로 이동

CTRL + a "
모든 윈도우를 선택 할 수 있도록 표시한다.

CTRL + a A
현재창의 제목을 변경

창나누기

CTRL + a S
창을 두개로 나눈다. (s는 대문자다. 즉 Shift +s 이다.)

CTRL + a TAB
갈라진 두창간의 이동 (이동후 새창이 이미 있다면 이동한 프레임에 그창을 띄울수 있다. CTRL +a [number] 이렇게.. )

CTRL + a x
한창 삭제

CTRL + a c
나누어진 창에 터미날을 띠운다. (그 이전에는 터미날은 뜨지 않고 창만 나눠질 뿐이다. )

CTRL + a [number]
지정한 번호의 창을 현재 커서창에 띄운다.
만일 두개를 나누었고 밑에 새창이 있는데 밑의 창 번호를 지정하면 아래와 위가 동일한 반응을 할것이다.

CTRL + Q
다 나가고 하나만 긴다.

CTRL + a + :resize min
현재장의 높이를 최소 사이즈로 한다.



Friday, April 29, 2016

RegularExpression

URL 분석

정규표현식(기본적인 표현식)
^((http[s]?|ftp):\/\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*?)?(#[\w\-]+)?$

정규표현식(/? 처럼 인덱스 생략까지 표현)
^((http[s]?|ftp):\/\/)?\/?([^:\/\s]+)((\/[\w\-\.]+)*\/)([\w\-\.]+[^#\?\s]+|[\w\-\.]?[^#\?\s]?)(.*?)?(#[\w\-]+)?$

#! /bin/env perl

$uri = "http://example.com/index.php?title=example-release&redirect=no#Packages";

$uri =~ /^((http[s]?|ftp):\/\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*?)?(#[\w\-]+)?$/;

print "PROTOCOL: $2\n";
print "HOST: $3\n";
print "PATH: $4\n";
print "FILE: $6\n";
print "QUERY: $7\n";
print "HASH: $8\n";

$ perl example.pl

PROTOCOL: http
HOST: example.com
PATH: /
FILE: index.php
QUERY: ?title=example-release&redirect=no
HASH: #Packages