검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 취미 및 잡담
스팀 빅 픽처: http://store.steampowered.com/bigpicture/
스팀OS: http://store.steampowered.com/livingroom/SteamOS/
스팀 머신: http://store.steampowered.com/livingroom/SteamMachines/
스팀 컨트롤러: http://store.steampowered.com/livingroom/SteamController/
인벤 스팀OS 기사: http://www.inven.co.kr/webzine/news/?news=63994
인벤 스팀 머신 기사: http://www.inven.co.kr/webzine/news/?news=64159
인벤 스팀 컨트롤러 기사: http://www.inven.co.kr/webzine/news/?news=64279
TIG 스팀OS 기사: http://www.thisisgame.com/webzine/news/nboard/4/?n=49654
TIG 스팀 머신 기사: http://thisisgame.com/webzine/news/nboard/4/?n=49737
TIG 스팀 컨트롤러 기사: http://thisisgame.com/webzine/news/nboard/4/?n=49807
엔하위키에 있는 관련 내용: http://mirror.enha.kr/wiki/%EC%8A%A4%ED%8C%80%28%ED%94%8C%EB%9E%AB%ED%8F%BC%29#s-1.1
스팀 컨트롤러 체험소감(1차 출처 가마수트라, 2차 출처 루리웹): http://bbs2.ruliweb.daum.net/gaia/do/ruliweb/default/pc/27/read?articleId=1205419&bbsId=G003&itemGroupId=1&pageIndex=1
스팀 컨트롤러 데모 비디오: http://www.phoronix.com/scan.php?page=news_item&px=MTQ4Mzc

  하나하나 설명하기 귀찮아서 먼저 링크 폭격으로 시작. 밸브가 전부터 빅 픽처 기능을 만들어 TV를 디스플레이어로 쓰기 좋게 만들고 스팀을 마치 콘솔인 것처럼 둔갑시키길레래 뭔 짓을 하나 했더니 생각지도 못한 스케일로 치고 나오는군요. 요약하자면

  '스팀 머신이라는 쪼매난 PC를 만들어서 그 안에 리눅스로 만든 스팀OS라는 걸 넣어서 팔테니까 넌 TV만 연결하면 돼. 아, TV로 게임하는데 키보드+마우스는 좀 거추장스럽지? 그러니까 스팀 컨트롤러라는 것도 만들어서 팔께.'

입니다. 빅 픽처는 연습 게임이었던 겁니다. 스팀 머신은 리눅스로 만들었기 때문에 당연히 윈도우 독점 게임은 실행할 수 없습니다. 그렇다면? PC로부터 스트리밍을 받아서 TV로 뿌려줍니다. 즉, PC와 스팀 머신을 동시에 사용해야 하지요. 물론 리눅스에서 실행할 수 있는 게임들은 자체적으로 실행이 가능합니다. 스팀 머신이 성공한다면 게임 개발업체는 싫어도 리눅스를 지원할 수 밖에 없겠죠. 이는 리눅스의 생태계 및 OS 점유율에 막대한 영향을 끼칠 수 밖에 없습니다. 저만 해도 게임과 은행업무만 아니면 집에서 리눅스를 쓰고 있었을 테니까요. 그래서 저는 아주아주 큰 기대를 하고 있습니다.

  또 하나 큰 관심거리는 스팀 컨트롤러입니다. 이 컨트롤러...그냥 컨트롤러가 아닙니다. 무려 키보드+마우스를 에뮬레이션하기 위해 태어난 컨트롤러입니다. 당연히 그에 따라 생긴 것부터 다른 컨트롤러와 크게 다릅니다. 양쪽이 모두 패드 형태로서 전면에는 XYAB 버튼만 있습니다. 그 위치도 매우 이상하여 실제 활용하기가 매우 힘들어 보이지만...그건 페이크고 사실 패드 부분을 버튼처럼 활용할 수 있습니다. 놀랍게도 소프트웨어적으로 패드를 여러 구역으로 나눠서 각각을 버튼처럼 활용할 수 있습니다. 키를 할당하는 것도 마치 컴퓨터의 키보드를 쓸 때처럼 커스터마이징이 가능하다고 합니다. 패드라 촉각이 심히 부족할 것 같은데 그것도 생각했는지 두 개의 선형 공진 진동자를 채택하여 새로운 세대의 초정밀 햅틱 피드백이 가능하게 설계하여 터치감을 살렸다고 합니다. 요즘 저도 PC에서 패드를 통해 다인용 게임 환경을 구축하려고 노력하고 있기 때문에 이 소식을 접했을 때 정말 기대하지 않을 수 없었습니다. 나오면 바로 구입할 생각입니다.

  아무튼 밸브의 이번 행보는 정말 대단하다고 할 수밖에 없고 기대 또한 큽니다. 이번 일이 성공해서 리눅스의 생태계와 게임 환경이 크게 개선되었으면 하는 바람입니다.
2013/10/13 15:16 2013/10/13 15:16
Posted
Filed under 쉘 스크립트
참조 원문 : Unix: Tracking disk space usage

  특정 파일에 날짜와 df의 결과 중 사용률을 기록하는 스크립트로서 사실 스크립트의 결과물이 뛰어나거나 한 건 아닌데 처리 방법이 독특한 것 같아 기록합니다.

  먼저 스크립트를 작성한 곳의 파일시스템 상태는 아래와 같습니다.
$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       34G   28G  4.7G  86% /
/dev/sda1              99M   16M   79M  17% /boot
/dev/sda2            11.0G  9.8G  1.2G  89% /home
tmpfs                 7.9G  200M  7.7G   3% /dev/shm
  첫 번째 파일시스템명이 너무 길어 두 줄로 나눠서 출력된 걸 볼 수 있습니다. 아래는 이를 염두하고 작성한 스크립트 내용입니다.
#!/bin/bash

dt=`date +%D`
log="/var/tmp/du.log"

df -h > /tmp/du$$

while read line
do
    fields=`echo $line | awk '{print NF}'`
    case $fields in
    1) echo -n "$dt $line " >> $log;;
    5) echo $line | awk '{print $4}' >> $log;;
    6) echo -n "$dt "
        echo $line | awk '{print $1,$5}' >> $log;;
    esac
done < /tmp/du$$

rm /tmp/du$$
  기록되는 내용은 아래와 같습니다.
09/15/13 /dev/mapper/VolGroup00-LogVol00 86%
09/15/13 /dev/sda1 17%
09/15/13 /dev/sda2 89%
09/15/13 tmpfs 3%
  원한다면 파일시스템명 대신 마운트 포인트를 기록할 수 있습니다. 이 경우 파일시스템명이 너무 길어서 두 줄로 나뉜 상황일 때 파일시스템명만 나온 줄은 무시하게 됩니다. 다만 정상적인 줄과는 필드의 개수가 다르므로 여전히 별도의 처리는 필요합니다.
#!/bin/bash

dt=`date +%D`
log="/var/tmp/du.log"

df -h > /tmp/du$$

while read line
do
    fields=`echo $line | awk '{print NF}'`
    case $fields in
    5) echo -n "$dt " >> $log
        echo $line | awk '{print $5,$4}' >> $log;;
    6) echo -n "$dt " >> $log
        echo $line | awk '{print $6,$5}' >> $log;;
    esac
done < /tmp/du$$

rm /tmp/du$$
  기록되는 내용은 아래와 같습니다.
09/15/13 / 86%
09/15/13 /boot 17%
09/15/13 /home 89%
09/15/13 /dev/shm 3%
2013/09/20 06:44 2013/09/20 06:44
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Rsync (Remote Sync): 10 Practical Examples of Rsync Command in Linux

1. 로컬에 있는 파일과 디렉토리의 복사/동기화
로컬 컴퓨터에 있는 파일 복사/동기화
# rsync -zvh backup.tar /tmp/backups/
created directory /tmp/backups
backup.tar
sent 14.71M bytes  received 31 bytes  3.27M bytes/sec
total size is 16.18M  speedup is 1.10
  위의 예에서 목적지가 존재하지 않았다면 rsync가 목적지 디렉토리를 자동으로 만들어준다.

로컬 컴퓨터에 있는 디렉토리 복사/동기화
# rsync -avzh /root/rpmpkgs /tmp/backups/
sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/nagios-3.5.0.tar.gz
rpmpkgs/nagios-plugins-1.4.16.tar.gz
sent 4.99M bytes  received 92 bytes  3.33M bytes/sec
total size is 4.99M  speedup is 1.00

2. 서버로/에서 파일과 디렉토리 복사/동기화
로컬 서버에 있는 디렉토리를 원격 서버로 복사
$ rsync -avz rpmpkgs/ root@192.168.0.101:/home/
root@192.168.0.101's password:
sending incremental file list
./
httpd-2.2.3-82.el5.centos.i386.rpm
mod_ssl-2.2.3-82.el5.centos.i386.rpm
nagios-3.5.0.tar.gz
nagios-plugins-1.4.16.tar.gz
sent 4993369 bytes  received 91 bytes  399476.80 bytes/sec
total size is 4991313  speedup is 1.00
원격 디렉토리를 로컬 머신에 복사/동기화
# rsync -avzh root@192.168.0.100:/home/tarunika/rpmpkgs /tmp/myrpms
root@192.168.0.100's password:
receiving incremental file list
created directory /tmp/myrpms
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/nagios-3.5.0.tar.gz
rpmpkgs/nagios-plugins-1.4.16.tar.gz
sent 91 bytes  received 4.99M bytes  322.16K bytes/sec
total size is 4.99M  speedup is 1.00

3. SSH를 통한 rsync
SSH를 통해 원격 서버에서 로컬 서버로 단일 파일 복사
  프로토콜을 지정하려면 -e 옵션을 사용한다. ssh를 사용할 것이므로 -e 옵션과 ssh를 함께 사용한다.
# rsync -avzhe ssh root@192.168.0.100:/root/install.log /tmp/
root@192.168.0.100's password:
receiving incremental file list
install.log
sent 30 bytes  received 8.12K bytes  1.48K bytes/sec
total size is 30.74K  speedup is 3.77
SSH를 통해 로컬 서버에서 원격 서버로 단일 파일 복사
# rsync -avzhe ssh backup.tar root@192.168.0.100:/backups/
root@192.168.0.100's password:
sending incremental file list
backup.tar
sent 14.71M bytes  received 31 bytes  1.28M bytes/sec
total size is 16.18M  speedup is 1.10

4. 진행률 표시
  --progress 옵션을 사용한다.
# rsync -avzhe ssh --progress /home/rpmpkgs root@192.168.0.100:/root/rpmpkgs
root@192.168.0.100's password:
sending incremental file list
created directory /root/rpmpkgs
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
           1.02M 100%        2.72MB/s        0:00:00 (xfer#1, to-check=3/5)
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
          99.04K 100%  241.19kB/s        0:00:00 (xfer#2, to-check=2/5)
rpmpkgs/nagios-3.5.0.tar.gz
           1.79M 100%        1.56MB/s        0:00:01 (xfer#3, to-check=1/5)
rpmpkgs/nagios-plugins-1.4.16.tar.gz
           2.09M 100%        1.47MB/s        0:00:01 (xfer#4, to-check=0/5)
sent 4.99M bytes  received 92 bytes  475.56K bytes/sec
total size is 4.99M  speedup is 1.00

5. --include와 --exclude 옵션 사용
  전체 대상 중 추가로 포함할 것과 제외할 것을 지정한다. 아래 예는 R로 시작하는 모든 파일 및 디렉토리를 대상으로 삼는다.
# rsync -avze ssh --include 'R*' --exclude '*' root@192.168.0.101:/var/lib/rpm/ /root/rpm
root@192.168.0.101's password:
receiving incremental file list
created directory /root/rpm
./
Requirename
Requireversion
sent 67 bytes  received 167289 bytes  7438.04 bytes/sec
total size is 434176  speedup is 2.59

6. --delete 옵션 사용
  소스에 어떤 파일이나 디렉토리가 없지만 목적지에는 있는 경우 --delete 옵션을 사용하면 목적지에 있는 해당 파일을 삭제한다.
# touch test.txt
# rsync -avz --delete root@192.168.0.100:/var/lib/rpm/ .
Password:
receiving file list ... done
deleting test.txt
./
sent 26 bytes  received 390 bytes  48.94 bytes/sec
total size is 45305958  speedup is 108908.55

7. 전송할 파일의 최대 크기 설정
# rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ root@192.168.0.100:/root/tmprpm
root@192.168.0.100's password:
sending incremental file list
created directory /root/tmprpm
./
Conflictname
Group
Installtid
Name
Provideversion
Pubkeys
Requireversion
Sha1header
Sigmd5
Triggername
__db.001
sent 189.79K bytes  received 224 bytes  13.10K bytes/sec
total size is 38.08M  speedup is 200.43

8. 성공적으로 전송한 후 소스 파일들 삭제
# rsync --remove-source-files -zvh backup.tar /tmp/backups/
backup.tar
sent 14.71M bytes  received 31 bytes  4.20M bytes/sec
total size is 16.18M  speedup is 1.10

9. 실제 실행 없이 테스트만 수행(dry run)
# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/
backup.tar
sent 35 bytes  received 15 bytes  100.00 bytes/sec
total size is 16.18M  speedup is 323584.00 (DRY RUN)

10. 대역폭 제한 설정
# rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  root@192.168.0.100:/root/tmprpm/
root@192.168.0.100's password:
sending incremental file list
sent 324 bytes  received 12 bytes  61.09 bytes/sec
total size is 38.08M  speedup is 113347.05


2013/09/19 10:52 2013/09/19 10:52
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Install NVIDIA Drivers in RHEL/CentOS/Fedora and Debian/Ubuntu/Linux Mint

  이 글에서는 오픈 소스 NVIDIA 드라이버인 Nouveau가 아닌 NVIDIA의 (오픈 소스가 아닌)공식 드라이버를 설치하는 방법을 소개합니다. 이를 위해선 자동으로 동작하는 Nouveau를 먼저 중단시키는 작업이 필요합니다.

  먼저 아래의 명령어를 통해 본인의 그래픽 카드를 확인할 수 있습니다.
# lspci -nn | grep VGA
  다음으로 /etc/apt/sources.list 파일의 끝에 아래의 저장소를 추가합니다.
deb http://ftp.debian.org/debian/ wheezy main contrib non-free
  그 후 /etc/modprobe.d/blacklist.conf 파일에 아래의 줄을 추가하여 nouveau를 블랙리스트로 등록합니다.
blacklist nouveau
  이제 아래 명령어로 드라이버와 필요한 커널 패키지를 설치합니다.
# apt-get update
# apt-get install nvidia-kernel-dkms nvidia-glx nvidia-xconfig nvidia-settings
# apt-get install nvidia-vdpau-driver vdpau-va-driver
  X 서비스(gdm3)를 중단합니다.
# service gdm3 stop
  새로운 xorg.conf 파일을 생성합니다.
# X -confugure
  생성한 xorg.conf.new 파일을 /etc/X11/xorg.conf 파일로 복사합니다.
# cp /root/xorg.conf.new /etc/X11/xorg.conf
  root 계정으로 X 윈도우를 실행합니다.
# startx
2013/09/12 10:09 2013/09/12 10:09
Posted
Filed under 프로그램과 명령어/기타 프로그램
원문 링크 : Advanced Copy – Modified cp Command That Shows Progress Bar
홈페이지 : http://beatex.org/web/advancedcopy.html

  cp 명령어를 개조하여 파일 복사 중 진행 상황과 초당 복사 속도를 보여주는 옵션(-g)을 추가한 프로그램입니다. 기본 cp에도 꼭 있었으면 하는 기능이지만 과연 그렇게 될 일이 있을런지...기능 자체는 마음에 드는데 당연하지만 제대로 사용하려면 기존의 cp를 대체하도록 복사해야 한다는 점이 좀 걸리네요.
2013/09/04 09:29 2013/09/04 09:29
Posted
Filed under 취미 및 잡담
  보드 게임과 PS비타(+소프트웨어)를 드디어 모두 처분했습니다. 요즘 같은 시대에 오프라인으로 모여서 보드 게임을 할 수가 있어야지 원...빈 공간이 많이 생겨서 좋네요. 역시 요즘 같은 시대엔 돈도 거의 안 들면서 미리 시간 잡고 준비할 필요도 없이 원할 때 편히 할 수 있는 PC 게임이 최고인 것 같습니다. 엑박 컨트롤러를 별도로 구입하면 집에 친구들이 방문했을 때 같이 할 수도 있고요.


2013/08/20 16:19 2013/08/20 16:19
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : How to conduct security vulnerability assessment of a remote server with OpenVAS

  OpenVAS는 취약점 스캐닝 및 관리 도구로 이루어진 오픈 소스 프레임워크로서 GPL 라이선스로 다양한 플랫폼에서 자유롭게 사용할 수 있습니다.

출처: http://www.openvas.org/

  이 글에서는 OpenVAS로 원격 서버에 대한 보안 취약점 분석 방법을 알아보겠습니다. OpenVAS는 소스 코드나 리눅스 패키지로 설치할 수 있으며 원한다면 가상 어플라이언스로서 실행하는 것도 가능합니다. 이 글에서는 VirtualBox를 이용해 가상 어플라이언스로 돌리는 것을 기준으로 하겠습니다.


1. OpenVAS 가상 어플라이언스 설치
  먼저 OpenVAS OVA 이미지를 내려받습니다. 그 후 VirtualBox를 실행하고 "Import Appliance"를 선택하여 OVA 이미지를 추출합니다. "Bridge Adapter"를 선택하고 스캔 대상이 있는 네트워크에 연결합니다.

  OpenVAS 어플라이언스를 켭니다. 콘솔 스크린이 나타나면 root로 로그인합니다. 디폴트 root 패스워드는 "root"입니다.

  OpenVAS는 Debian Squeeze를 기반으로 합니다. 기본적으로 설치 직후에 기반 시스템을 업그레이드하여 최신 보안 업데이트를 설치하는 것이 좋습니다.
# apt-get dist-upgrade
# apt-get upgrade
  미리 설치된 암호키를 제거한 뒤, 새로운 키를 생성합니다. 이 키는 인증된 스캔 결과와 기타 인증 정보를 암호화할 때 사용합니다.
# gpg --homedir=/usr/local/etc/openvas/gnupg --delete-secret-keys 94094F5B
# gpg --homedir=/usr/local/etc/openvas/gnupg --delete-keys 94094F5B
# openvasmd --create-credentials-encryption-key
  참고로 위의 키 생성 작업은 많은 시간을 소요할 수 있습니다.(최대 60분) 키 생성이 끝나면 OpenVAS 매니저를 재시작합니다.
# /etc/init.d/openvas-manager restart
  OpenVAS에는 Greenbone Security Assistant라는 웹 클라이언트가 포함되어 있습니다. 이 웹 클라이언트는 OpenVAS의 모든 기능을 활용하기 위해 최적화된 웹 기반의 인터페이스를 제공합니다.

2. OpenVAS 관리 웹 인터페이스에 접속
  OpenVAS의 웹 인터페이스에 접속하려면 https://<OpenVAS 어플라이언스의 IP 주소>로 접속합니다. OpenVAS는 자체 서명한 SSL 인증서를 사용합니다. 그러므로 웹 브라우저로 처음 접속했을 때 예외 사이트로 등록해야 합니다. 미리 설정된 관리용 OpenVAS 계정(login: "admin", 패스워드: "admin")으로 로그인합니다. 그러면 아래와 같은 OpenVAS의 메인 윈도우를 볼 수 있습니다.

출처: 참조 원문 사이트


3. 스캔 대상 설정
  먼저 할 일은 스캔 대상(예: 스캔할 원격 호스트)을 설정하는 겁니다. "Configuration" -> "Targets" 메뉴에서 새로운 대상을 추가하기 위해 별 모양의 아이콘을 클릭합니다.

  "manual"을 선택하여 원격 호스트의 IP 주소를 입력합니다. 드랍 다운 리스트에서 포트 리스트를 선택합니다. 완료하면 "Create Target" 버튼을 클릭합니다.

출처: 참조 원문 사이트


4. 설정과 스캔 시작
  스캐닝 시작을 위해 새로운 작업을 생성합니다. "Scan Management" -> "New Task" 메뉴를 선택합니다. 새로운 스캔의 이름을 입력합니다. "Scan Config"에서 원하는 설정을 선택합니다. 이것은 어떤 취약점 테스트를 진행할지를 결정합니다. 밑에서도 설명하겠지만 원하는대로 직접 scan config를 만들 수도 있습니다. "Scan Target"에서 아까 만든 대상을 선택합니다. 모든 선택이 끝나면 "Create Task" 버튼을 클릭합니다.

출처: 참조 원문 사이트

  작업을 생성하면 "Actions" 필드에 있는 "Play" 버튼을 클릭하여 대상에 대한 스캐닝을 시작합니다. Task Details 페이지에서 스캔 진행률을 확인할 수 있습니다.

출처: 참조 원문 사이트


5. 취약점 스캔 보고서 확인
  스캔이 끝난 후 "Actions" 필드에 있는 돋보기 아이콘을 클릭하여 스캔 결과의 요약 내용을 확인할 수 있습니다.

  스캔 결과는 "High", "Medium", "Low" 위험도로 분류되며, 자세한 로그도 포함하고 있습니다. 밝혀진 보안 문제마다 요약된 취약점 내용, 영향도, 관계된 소프트웨어/OS, 보완 방법을 보고합니다. 아래는 샘플 스캔 보고서의 스크린샷입니다.

출처: 참조 원문 사이트

  원한다면 스캔 보고서를 다운로드가 가능한 문서로 출력할 수 있습니다. OpenVAS는 스캔 보고서를 PDF, TXT, HTML, XML을 포함한 다양한 포맷으로 출력하는 것을 지원합니다.

  또한 "Asset Management" -> "Hosts" 메뉴를 통해 각 스캔 대상에 대해 자세한 "prognostic(진단)" 보고서를 확인할 수 있습니다. 조사를 원하는 대상에 대해 "Prognostic Report" 아이콘을 클릭합니다. 위에서 이미 설명했던 스캔 보고서가 특정 스캔에 대한 결과를 제공했다면, 진단 보고서는 특정 호스트에 대한 모든 이전 스캔의 총체적인 결과를 자세히 제공합니다. 일반적인 진단 보고서는 아래와 같이 생겼습니다.

출처: 참조 원문 사이트


6. 취약점 스캔을 원하는대로 설정하기
  스캔 설정을 원하는대로 생성하거나 수정하는 것도 가능합니다. 이미 있는 스캔 설정을 보려면 "Configuration" -> "Scan Configs"로 갑니다. 아래는 스캔 설정이 네트워크 취약점 테스트(NVTs) 목록을 포함하고 있는 모습입니다. 현재 스캔 설정을 수정하기 위해 설정을 XML로 출력할 수 있으며, 그것을 수정한 후 다시 읽어들일 수 있습니다.

출처: 참조 원문 사이트

  또한 "Configuration" -> "Port Lists"에서 스캔할 포트의 목록도 수정할 수 있습니다.

출처: 참조 원문 사이트


7. 최신 취약점 테스트 도구 다운로드
  OpenVAS 프로젝트는 네트워크 취약점 테스트(NVTs), 보안 컨텐트 자동화 프로토콜(SCAP), CERT 자문의 공개 정보 공급을 유지하고 있습니다. 간단히 "Administration"에서 "Synchronizing with Feed now" 버튼을 클릭함으로써 최신 정보 공급을 반영할 수 있습니다.

출처: 참조 원문 사이트

2013/08/18 17:12 2013/08/18 17:12
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Recover deleted LVM partitions in CentOS/RHEL/Fedora

  이 글은 실수로 LVM 파티션을 삭제했을 때 vgcfgrestore 명령어로 해당 파티션을 복구하는 내용을 다루고 있습니다. 리눅스는 lvm 설정의 백업 복사본을 /etc/lvm/archive 디렉토리에 보관합니다. 이 글에서는 10GB lvm 파티션을 지운 상태에서 그것을 복구하는 과정을 소개합니다.

1. 볼륨 그룹(예: my-vg)의 백업본 설정을 찾는다.
# vgcfgrestore --list   < 볼륨그룹명 >
# vgcfgrestore --list my-vg

출처: 참조 원문 사이트

  위의 출력 결과에서 동그라미 안에 있는 것이 복구 대상인 것으로 가정합니다.


2. vgcfgrestore와 아카이브 파일을 사용하여 LVM 파티션을 복구한다.
# vgcfgrestore -f /etc/lvm/archive/<파일명> <볼륨그룹명>
예:
# vgcfgrestore -f /etc/lvm/archive/my-vg_00002-692643462.vg  my-vg
"Restored volume group my-vg"
  이제 lvm 파티션을 마운트하여 데이터가 무사한지 확인할 수 있습니다.
2013/08/18 15:55 2013/08/18 15:55
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : 20 Linux Tips Worth Trying

  GRUB에 이상이 발생한 경우 복구하는 방법을 소개합니다. 먼저 GRUB 2를 지원하는 라이브CD/DVD(우분투 9.10 이상)로 부팅 후 터미널을 열어 fdisk -l 명령어로 복구할 GRUB 2의 설정 파일이 있는 파티션(과 루트 파일시스템의 파티션)을 확인합니다. 디폴트의 경우 첫 번째 파티션이 /boot 파일시스템, 두 번째 파티션이 루트 파일시스템을 담고 있으므로 여기서는 각각 /dev/sda1과 /dev/sda2로 가정하고 설명하겠습니다. 아래의 절차에 따라 복구를 진행합니다.
$ sudo mkdir /media/sda
$ sudo mkdir /media/sda/boot
$ sudo mount /dev/sda2 /media/sda/
$ sudo mount /dev/sda1 /media/sda/boot
$ sudo mount --bind /dev /media/sda/dev
$ sudo mount --bind /proc /media/sda/proc
  루트 파일시스템을 마운트한 위치에 chroot를 걸어줍니다.
$ sudo chroot /media/sda
  GRUB을 재설치합니다.
# grub-install /dev/sda
Installation finished. No error reported.
  에러가 발생한다면 아래의 명령어를 실행합니다.
# grub-install --recheck /dev/sda
  설치 후 chroot를 종료하고 GRUB을 복구하기 위해 걸었던 마운트를 해제한 뒤에 리붓을 합니다.
# exit
$ sudo umount /media/sda/proc
$ sudo umount /media/sda/dev
$ sudo umount /media/sda/boot
$ sudo umount /media/sda
$ sudo reboot
  이런 번거러운 작업을 해야 하는 이유는 설치할 GRUB의 설정 파일이 필요하기 때문입니다.

2013/08/14 14:23 2013/08/14 14:23
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : How to create a secure incremental offsite backup in Linux with Duplicity

  재해 복구를 위해 원격 지역에 백업을 하는 경우 보통은 공인망을 통해 데이터가 오가기 때문에 암호화를 염두해야 합니다. 또한 백업으로 인해 소모되는 대역폭, 디스크 스토리지, 시간을 아끼기 위해 풀 백업이 아닌 증강 백업의 지원여부도 중요합니다.

  Duplicity는 암호화가 가능한 증강 백업 툴로서 librsync를 사용하여 대역폭/공간에 있어 효율적인 증강 아카이브를 생성합니다. 또한 GnuPG를 사용해 백업 아카이브를 암호화와/나 사인을 할 수 있어 인증받지 않은 데이터 접근과 조작을 방지합니다.

  이 글에서는 Duplicity로 원격 지점에 보안이 적용된 증강 백업을 하는 방법을 설명합니다.

Duplicity 설치
  데비안 계열에 설치하는 방법은 아래와 같습니다.
$ sudo apt-get install duplicity python-paramiko
  레드햇 계열에 설치하는 방법은 아래와 같습니다. 단, CentOS나 RHEL은 먼저 EPEL 저장소를 사용해야 합니다.
$ sudo yum install duplicity python-paramiko

SCP를 통한 보안성 있는 원격 증강 백업
  로컬 디렉토리(예: ~/Downloads)의 증강 백업본을 만들어 SCP를 이용해 원격 SSH 서버에 전송하려면 아래의 명령어를 사용합니다. 참고로 그 전에 원격 SSH 서버에 대해 패스워드 없이 SSH 로그인을 할 수 있도록 설정해야 합니다.
$ duplicity ~/Downloads scp://user@remote_site.com//home/user/backup/
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase:
Retype passphrase to confirm:
No signatures found, switching to full backup.
--------------[ Backup Statistics ]--------------
StartTime 1375918500.17 (Wed Aug  7 19:35:00 2013)
EndTime 1375918539.07 (Wed Aug  7 19:35:39 2013)
ElapsedTime 38.90 (38.90 seconds)
SourceFiles 3
SourceFileSize 65982804 (62.9 MB)
NewFiles 3
NewFileSize 65982804 (62.9 MB)
DeletedFiles 0
ChangedFiles 0
ChangedFileSize 0 (0 bytes)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 3
RawDeltaSize 65978708 (62.9 MB)
TotalDestinationSizeChange 66132356 (63.1 MB)
Errors 0
-------------------------------------------------
  처음 원격 백업을 실시하면 풀 백업을 하게 되며, 암호화를 위한 초기 GnuPG 패스프레이즈를 설정하게 됩니다. 그 다음부터는 증강 백업을 하게 되며, 처음에 설정한 GnuPG 패스프레이즈를 매번 입력해야 합니다.

비대화 모드를 통한 보안성 있는 원격 증강 백업
  패스프레이즈를 입력하는 것이 싫다면 아래처럼 Duplicity를 실행하기 전에 PASSPHRASE 환경변수를 설정할 수 있습니다.
$ PASSPHRASE=mypass duplicity ~/Downloads scp://user@remote_site.com//home/user/backup/
  커맨드라인에 평문 패스프레이즈를 넣기 싫다면 아래의 백업 스크립트를 사용하는 방법도 있습니다. 당연히 본인만 읽을 수 있도록 퍼미션을 설정해야 합니다.
export PASSPHRASE=yourpass
duplicity ~/Downloads scp://user@remote_site.com//home/user/backup/
unset PASSPHRASE

암호화 없이 원격 증강 백업
  암호화할 필요가 없다면 암호화를 비활성화할 수도 있습니다.
$ duplicity --no-encryption ~/Downloads scp://user@remote_site.com//home/user/backup/

원격 백업의 무결성 확인
  중요한 데이터의 경우 원격 백업이 성공적으로 됐는지 확인할 필요가 있습니다. 로컬과 원격 볼륨이 동일한지 확인하려면 아래의 명령어를 사용합니다.
$ duplicity verify scp://user@remote_site.com//home/user/backup/ ~/Downloads
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Wed Aug  7 19:34:52 2013
Verify complete: 8 files compared, 0 differences found.
  참고로 "verify" 옵션을 사용할 때는 로컬과 원격 디렉토리의 순서를 반대로 적어야 합니다. 즉, 원격 디렉토리를 먼저 적어야 합니다.

원격 백업을 사용하여 복구
  원격 백업본을 사용해 로컬에 적용하려면 아래와 같은 명령어를 실행합니다.
$ duplicity scp://user@remote_site.com//home/user/backup/ ~/Downloads_restored
  원격 백업을 사용하여 복구하려면 지정한 복구 대상 디렉토리(예: Downloads_restored)가 로컬에 존재하지 않아야 합니다.

FTP를 통한 보안성 있는 원격 증강 백업
  SCP와 더불어 FTP를 포함한 몇 가지 다른 프로토콜을 사용하는 것도 가능합니다. FTP를 사용하려면 아래와 같은 형식을 이용합니다.
$ duplicity ~/Downloads ftp://username@ftp_server.com/backup_directory
  비대화형으로 실행하려면 FTP_PASSWORD 환경변수에 FTP 패스워드를 설정합니다.
$ FTP_PASSWORD=mypass duplicity ~Downloads ftp://username@ftp_server.com/backup_directory

트러블슈팅 팁
  아래와 같은 에러가 발생한다면 python용 SSH2 프로토콜 라이브러리를 설치하지 않은 것입니다.
BackendException: Could not initialize backend: No module named paramiko
  문제를 해결하기 위해 데비안 계열의 경우 아래 명령어를 실행합니다.
$ sudo apt-get install python-paramiko
  레드햇 계열의 경우 아래 명령어를 실행합니다.
$ sudo yum install python-paramiko

  아래와 같은 에러가 발생한다면 원격 SSH 서버에 대해 패스워드 없이 SSH 로그인을 할 수 있도록 설정하지 않은 것입니다.
BackendException: ssh connection to xxx@xxxx failed: No authentication methods available
2013/08/12 15:39 2013/08/12 15:39