# DOS(도스) 시절 개인적으로 mdir 보다 NortonCommander(일명 nc)를 많이 썼다.
# 그런데 linux 에서 요걸본딴 midnightcommander(일명 mc)녀석이 있다.
https://github.com/MidnightCommander/mc
# 맥에선 brew 로 간단히 설치 할 수 있다.
brew install mc
# 실행
mc
# 흑백으로 사용
mc -b 또는 --nocolor
# 스킨 화면 참고
https://midnight-commander.org/nopaste/skin_parser/outdir/
# 스킨 다운로드
cd ~/.config/mc/
wget https://midnight-commander.org/nopaste/skin_parser/skins/darkfar.ini
wget https://midnight-commander.org/nopaste/skin_parser/skins/double-lines.ini
wget https://midnight-commander.org/nopaste/skin_parser/skins/featured.ini
wget https://midnight-commander.org/nopaste/skin_parser/skins/gotar.ini
wget https://midnight-commander.org/nopaste/skin_parser/skins/nicedark.ini
# ini 설정에서 skin 값을 변경할 수 있다.
vi ~/.config/mc/ini
skin=darkfar
# darkfar 스킨 적용 화면
# 단축키
f9 : 풀다운 메뉴
f10 : 종료
ctrl+o : 콘손화면 보기 토글
DOS Norton Commander
노턴 커맨더(NC) https://en.wikipedia.org/wiki/Norton_Commander
개인적으로 90년대 ms-dos 환경에서 mdir 보다 nc 를 더 많이 사용했다.
현재 파일 탐색기의 기본 구조인 왼쪽에 디렉토리 오른쪽엔 선택한 디렉토리의 파일 내용 보기로 바로 .exe 를 실행시킬 수 있어 좋았다.
dosbox 환경에서 nc 실행 화면
다운로드 https://winworldpc.com/product/norton-commander/55x
플로피디스크 이미지(.img) 파일의 경우 7zip 프로그램으로 열 수 있다.
개인적으로 90년대 ms-dos 환경에서 mdir 보다 nc 를 더 많이 사용했다.
현재 파일 탐색기의 기본 구조인 왼쪽에 디렉토리 오른쪽엔 선택한 디렉토리의 파일 내용 보기로 바로 .exe 를 실행시킬 수 있어 좋았다.
dosbox 환경에서 nc 실행 화면
다운로드 https://winworldpc.com/product/norton-commander/55x
플로피디스크 이미지(.img) 파일의 경우 7zip 프로그램으로 열 수 있다.
MemCached 사용하기
# 여러개의 서버에서 이전에 계산된 값을 메모리에 저장하여 매번 계산하지 않게하는 원격 분산 캐시 시스템
# 주로 데이터 베이스의 부하를 줄이기 위해 사용
# LiveJournal, Wikipedia, Flickr, Twitter, Youtube 등에서 사용
# 내부 구성
# libevent(network library) : 코어부분으로 프로토콜 처리
# 해시테이블 : 요청 유형에 따라 데이터 처리(키-값 쌍으로 기록)하고 통계 정보 기록
# Memcached 클라이언트 라이브러리
# Memcached 서버가 아닌 클라이언트 라이브러리에서 분산 처리 담당
# Memcached 클라이언트 라이브러리의 옵션으로 분산 구성을 설정하면 클라이언트 라이브러리에서 데이터를 여러대의 원격 Memcached 서버로 분배
# Memcached 클라이언트 라이브러리 : libmemcached(C/C++), spymemcached(Java) 2.5 이상
# libmemcahed, spymemcached 등을 이용하여 분산 처리 가능
# memcached 와 libmemcached 를 묶어 MemBase 솔루션 제공
# 설치
# 먼저 libevent 설치
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make && make install
ls -ahl /usr/local/lib/libevent
# memcached
wget https://memcached.org/files/memcached-1.5.14.tar.gz
tar zxvf memcached-1.5.14.tar.gz
cd memcached-1.5.14
./configure --with-libevent=/usr/local/lib/libevent --enable-64bit
make && make install
ls -ahl /usr/local/bin/memcached
# memcached 가 실행 안되면 다음 동적라이브러리 설정파일에 libevent 경로 명시
vi /etc/ld.so.conf.d/libevent-i386.conf
/usr/local/lib/
# 분산 환경을 구축하기 위해서 memcached 클라이언트 라이브러리 사용
# libmemcached
wget http://launchpad.net/libmemcached/1.0/0.44/+download/libmemcached-0.44.tar.gz
# spymemcached
wget http://spymemcached.googlecode.com/files/memcached-2.5-23-g9d5d462-sources.zip
# 예제
# memcached 서버 가동
# 포트 : 11211(디폴트), 메모리(MB단위) : 2GiB, 쓰레드 : 6개, 최대 동시 접속 1024개, 데몬으로 수행(옵션없으면 일반 프로세스로 수행)
memcached -p 11211 -m 2048 -c 1024 -t 6 -d
# telnet 으로 memcached 에 접속해서 상태 확인
# 종료는 ctrl+] 입력후 quit
telnet localhost 11211
Connected to ysoftman-memcache
Escape character is '^]'.
stats
# telnet 이용해서 데이터 저장 및 조회
# key : 키 ysoftmankey
# flag : 사용자 플래그 0
# exptime : 만료시간 60초
# bytes : 데이터의 길이 14
# 데이터 길이가 실제 데이터보다 짝으면 에러 발생
# 데이터 길이가 실제 데이터보다 크면 데이터 길이까지 입력(엔터)해야 함
set ysoftmankey 0 60 14 입력후 엔터
YoonByoungHoon
# 조회
# 60초가 지나면 데이터는 사라져 조회되지 않는다.
get ysoftmankey
# 키값을 모르는 경우, active slabs(데이터가 들어있는 공간) 조회
# stats items 로 조회해도 된다.
stats slabs
# 위 결과 slab(item), dump할 데이터 개수
stats cachedump 1 100
# 덤프 결과 예시
# ysoftmankey : 키값
# 1 b: 키에 저장된 값 크기 1byte
# 1350000000 s : 저장시 타임스탬프
ITEM ysoftmankey [1 b; 1350000000 s]
# 참고로 캐시키 조회 ruby script
https://gist.github.com/bkimble/1365005
# nc(netcat) 로 접속 및 명령을 바로 실행할 수도 있다.
# 상태확인
echo -e "stats" | nc localhost 11211
# 저장된 데이터 개수
echo -e "stats items" | nc localhost 11211
# \r\n데이터\r 으로 이스케이프해야 한다.
# 저장
echo -e "set ysoftman1 0 30 8\r\nysoftman\r" | nc localhost 11211
# 조회
echo -e "get ysoftman1\r" | nc localhost 11211
# 전체 삭제
echo -e "flush_all" | nc localhost 11211
# memcached 데몬 종료
killall memcached
# 커맨드 참고
https://github.com/memcached/memcached/wiki/Commands
# 주로 데이터 베이스의 부하를 줄이기 위해 사용
# LiveJournal, Wikipedia, Flickr, Twitter, Youtube 등에서 사용
# 내부 구성
# libevent(network library) : 코어부분으로 프로토콜 처리
# 해시테이블 : 요청 유형에 따라 데이터 처리(키-값 쌍으로 기록)하고 통계 정보 기록
# Memcached 클라이언트 라이브러리
# Memcached 서버가 아닌 클라이언트 라이브러리에서 분산 처리 담당
# Memcached 클라이언트 라이브러리의 옵션으로 분산 구성을 설정하면 클라이언트 라이브러리에서 데이터를 여러대의 원격 Memcached 서버로 분배
# Memcached 클라이언트 라이브러리 : libmemcached(C/C++), spymemcached(Java) 2.5 이상
# libmemcahed, spymemcached 등을 이용하여 분산 처리 가능
# memcached 와 libmemcached 를 묶어 MemBase 솔루션 제공
# 설치
# 먼저 libevent 설치
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
tar zxvf libevent-1.4.13-stable.tar.gz
cd libevent-1.4.13-stable
./configure
make && make install
ls -ahl /usr/local/lib/libevent
# memcached
wget https://memcached.org/files/memcached-1.5.14.tar.gz
tar zxvf memcached-1.5.14.tar.gz
cd memcached-1.5.14
./configure --with-libevent=/usr/local/lib/libevent --enable-64bit
make && make install
ls -ahl /usr/local/bin/memcached
# memcached 가 실행 안되면 다음 동적라이브러리 설정파일에 libevent 경로 명시
vi /etc/ld.so.conf.d/libevent-i386.conf
/usr/local/lib/
# 분산 환경을 구축하기 위해서 memcached 클라이언트 라이브러리 사용
# libmemcached
wget http://launchpad.net/libmemcached/1.0/0.44/+download/libmemcached-0.44.tar.gz
# spymemcached
wget http://spymemcached.googlecode.com/files/memcached-2.5-23-g9d5d462-sources.zip
# 예제
# memcached 서버 가동
# 포트 : 11211(디폴트), 메모리(MB단위) : 2GiB, 쓰레드 : 6개, 최대 동시 접속 1024개, 데몬으로 수행(옵션없으면 일반 프로세스로 수행)
memcached -p 11211 -m 2048 -c 1024 -t 6 -d
# telnet 으로 memcached 에 접속해서 상태 확인
# 종료는 ctrl+] 입력후 quit
telnet localhost 11211
Connected to ysoftman-memcache
Escape character is '^]'.
stats
# telnet 이용해서 데이터 저장 및 조회
# key : 키 ysoftmankey
# flag : 사용자 플래그 0
# exptime : 만료시간 60초
# bytes : 데이터의 길이 14
# 데이터 길이가 실제 데이터보다 짝으면 에러 발생
# 데이터 길이가 실제 데이터보다 크면 데이터 길이까지 입력(엔터)해야 함
set ysoftmankey 0 60 14 입력후 엔터
YoonByoungHoon
# 조회
# 60초가 지나면 데이터는 사라져 조회되지 않는다.
get ysoftmankey
# 키값을 모르는 경우, active slabs(데이터가 들어있는 공간) 조회
# stats items 로 조회해도 된다.
stats slabs
# 위 결과 slab(item), dump할 데이터 개수
stats cachedump 1 100
# 덤프 결과 예시
# ysoftmankey : 키값
# 1 b: 키에 저장된 값 크기 1byte
# 1350000000 s : 저장시 타임스탬프
ITEM ysoftmankey [1 b; 1350000000 s]
# 참고로 캐시키 조회 ruby script
https://gist.github.com/bkimble/1365005
# nc(netcat) 로 접속 및 명령을 바로 실행할 수도 있다.
# 상태확인
echo -e "stats" | nc localhost 11211
# 저장된 데이터 개수
echo -e "stats items" | nc localhost 11211
# \r\n데이터\r 으로 이스케이프해야 한다.
# 저장
echo -e "set ysoftman1 0 30 8\r\nysoftman\r" | nc localhost 11211
# 조회
echo -e "get ysoftman1\r" | nc localhost 11211
# 전체 삭제
echo -e "flush_all" | nc localhost 11211
# memcached 데몬 종료
killall memcached
# 커맨드 참고
https://github.com/memcached/memcached/wiki/Commands