HowTo, Linux

git 파일 삭제후 복구.

git 를 사용하다 보면 local 저장소에서 실수로 파일을 삭제하는 실수를 저지를 수 있다. 이때 파일을 되살린다고 ‘git pull’ 이나 ‘git fetch’를 해봐도 나오는 메시지는 최신판(Already up-to-date)라는 것이다. 이를 이용하는 경우에 어떻게 해야하나? 먼저 삭제한 디렉토리로 이동한다. 그리고 다음과 같이 입력을하면 삭제한 파일 목록을 얻을 수 있다.

사실 삭제된 파일은 다시 checkout 받으면 된다. 다음과 같이 말이다.

리눅스를 잘 다루는 사람이라면 이것을 한번에 할수 있다.

     

Linux

Thread

이 문서는 Perl Thread 문서를 기반으로 작성되었습니다. Thread 의 기초부터해서 Thread의 구현을 Perl, Python 으로 직접 구현해보고 비교하도록 하겠습니다. 출처: http://www.xav.com/perl/lib/Pod/perlthrtut.html Thread? 쓰레드(Thread)는 프로세스(Process)보다 작은 프로그램 단위 입니다. 좀 더 정확하게 말하자면 프로그램은 적어도 한개의 프로세스로 구성되며 적어도 하나의 쓰레드로 구성됩니다. 적어도 하나의 프로세스에서 하나의 쓰레드는 결국 하나의 실행 포인트를 가집니다. 적어도 하나의 프로세스내에서 다중 쓰레드를 쓴다는 것은 결국 다중의 실행 포인트를 가진다는 것을 의미 합니다. 다중의 실행 포인트? 요즘에 멀티코어(Multi Core) CPU가 많이 나옵니다. 프로그램은 이 멀티코어 CPU에 의해서 실행되는데 […]

HowTo, Linux

CHEF CLIENT 설치 – PART4

앞에서 chef 운영을 위한 server와 workstation 을 설치했다. 이제 chef 를 가지고 관리를 할 대상인 서버에 chef client 를 설치하는 방법에 대해서 설명한다. chef 에서 관리해야할 대상 서버를 Node혹은 Client 라고 부른다. 이러한 서버들은 chef server와 통신을 통해서 각종 작업을 수행하는데, 이 역활을 담당하기는게 바로 chef-client 이다. chef client 설치는 서버에 직접 들어가서 프로그램을 설치하고 관련 파일을 업데이트하는 작업을 통해서도 할 수 있지만 Chef 스럽게 workstation에서 knife 명령어를 이용해서 간단히 Chef Client 를 설치할 수 있다. 이뿐 아니라 설치와함께 이 서버를 […]

HowTo, Linux

Chef Workstation 설치 – Part 3

chef workstation 은 knife 를 설정면 하면된다. 다시말해서 별다른 패키지가 필요없고 특정 시스템 계정사용자에게 knife 를 사용할 수 있도록 설정만하면 그게 바로 workstation 이 되는 것이다. 하지만 별도의 시스템에 workstation 을 설치하고자 할 경우에 knife 명령어가 없다. 그렇다고 chef server 패키지를 설치할려고 하니 불필요한 서비스들이 너무 많은게 문제다. 이럴때는 chef develoment kit 를 설치하면 된다. chef development kit 은 말그대로 chef 관련 개발을 위한 kit 을 제공하는 것으로 이는 chef workstation 환경을 기반으로 한다. 따라서 chef development kit 패키지를 설치하면 […]

HowTo, Linux

Chef 서버 설치하기 – Part 2

이번 시간에는 Chef 서버를 설치해보도록 한다. 설치에 앞서 Chef 서버를 설치할 서버들에 대한 정보는 다음과 같다. 배포판: Ubuntu 14.04.2 LTS CPU: 1 core RAM: 1024 여기서 중요한 것은 배포판이다. 최근들어 많은 배포판들이 init 에서 systemd 로 바꾸는 추세다. 우분투(Ubuntu)에 경우 systemd 를 도입할 생각이 없다라고 했었지만 14.10 에서 이를 뒤집어 systemd 를 도입했다. init 과 systemd 는 서버 프로그램 시작과 종료하는 방법만 다른게 아니기 때문에 이를 구분하는 것은 매우 중요하다. 여기서 설치할 14.04 는 현재 init 을 따른다. Download 다운로드는 chef […]

HowTo, Linux

Chef 에 대해서 – Part 1

서버환경이 분산화되면서 수많은 서버들을 관리해야 문제가 생긴다. 대략 1,000대 서버에 Apache 웹서버 설정을 변경하고 그것을 적용하라고 한다면 단시간내에 어떻게 할 것인가와 같은 문제들이다. 프로그램을 개발하고 그것을 서버에서 돌리기위해서는 기본적인 인프라 관리가 필수인데 최근에 글로벌 서비스가 많아지면서 분산된 대랭의 서버들을 어떻게 다룰것인가 하는 문제대한 해답으로 Chef, Puppet 과 같은 인프라스트럭쳐 자동화 프로그램들이 등장했다. 이 문서는 Chef 에 대한 기초적인 내용을 다룬다. 범위는 다음과 같다. Chef 에 대해서 설치 레시피, 쿡북 작성 다양한 예제들. Chef 에 대해  Chef 는 서버나 애플리케이션을 쉽게 […]

HowTo, Linux

snmpd 로 인해 발생한 시스템 접속 불가 문제

제가 운영하는 시스템에는 snmpd 가 기본으로 서비스되고 있습니다. 각종 시스템의 상태를 파악하기 위해서 snmpd 를 활용하는 거지요. 그런데, 얼마전에 이 snmpd  때문에 아주 큰 문제가 된 일이 있었습니다. 이 문서는 그것이 무엇이며 왜 발생했고 어떻게 처리하는지에 대한 문서 입니다. snmpd snmpd 는 국제표준으로 IT기기에 각종 상태들을 네트워크를 통해서 제공할 수 있도록 설게된 SNMP를 제공하는 데몬이다. 수 많은 서버에 기본으로 탑재되어 있어 별다른 노력없이 사용이 가능하다. 리눅스 플랫폼에서 snmpd 를 사용하는데 있어 현재 인자값 사용에 문제가 있다. 인자값의 잘못된 사용으로 인해서 […]

HowTo, Linux

SSH 포트 포워딩.

많은 IT 종사자들은 회사 보안 때문에 특정 서버에 포트를 오직 SSH 와 서비스를 위한 포트만을 열어둔 경우가 많다. 그런데 서버를 관리하다보면 특정 서비스 체크를 위한 매니징 서비스에 접속을 해야하는 경우가 발생한다. 이럴 경우 사내 보안팀에 매니징 서비스 접속을 위해서 포트를 개방해 줄것을 요구할 수 있지만 이럴때에 SSH 의 포트 포워딩(Port Forwarding)을 이용하면 쉽게 해결 할 수 있다. SSH 포트 포워딩에도 다음과 같이 세가지 종류가 있다. Local Port Forwarding Remote Port Forwarding Dynamic Port Forwarding SSH 포트 포워딩은 SSH 서버를 Gateway […]

HowTo, Linux

디바이스를 이용한 화면전송

리눅스에 접속되어 있는 상태에서 상대방에게 화면을 전송하고 싶다면 디바이스를 이용한 화면전송 을 이용하면 됩니다. 방법은 아주 간단합니다. 우선 텔넷이나 ssh로 두분이 같은 시스템에 접속 합니다. 저의 디바이스(가상 터미널)명을 찾아야 합니다. #tty 이 명령어를 입력하시면 다음과 같은 가상터미널이 나타납니다.

그럼, 함께 접속된 상대방의 디바이스(가상터미널)명을 또 찾아야 합니다. #w 이 명령어를 입력하시고 고객이 잡고 있는 가상터미널을 찾거나 만일 어떤 가상 터미널을 잡고 있는지 잘 모르겠으면 고객에게 tty 명령어를 입력하여 나타나게 되는 가상터미널 번호를 알아 내시면 됨니다. 예) /dev/pts/2 이 나타났다고 가정 […]

HowTo, Linux

Proxy 서버 개념

Forward Proxy 포워드 프락시(Forward Proxy)는 클라이언트가 타켓서버(목표서버)의 주소를 받아서 타켓서버로 연결을 시켜준다. 클라이언트는 타켓서버의 주소를 요청하면 프락시 서버는 뒷단에 타켓서버의 주소를 가진 서버에 연결을 포워딩 한다. 프락시 서버는 타켓서버의 주소를 가지고 있지 않다. Reverse Proxy 리버스 프락시(Reverse Proxy)는 타켓서버의 주소가 아닌 프락시 서버가 타켓서버의 주소를 가지고 있고 프락시 서버가 이를 받아서 뒷단에 실제 타켓 서버로 연결을 시켜준다. 그러니까 타켓서버의 주소를 프락시서버가 가지고 있어야 하며 클라이언트는 타켓서버의 주소로 요청을 하면 프락시 서버가 응답을 하게 된다.