Programmer Application Note

2015년 4월 22일 수요일

git 삭제된 파일만 되돌리기

오후 4:59 Posted by PAN.SPOT , , No comments
svn을 쓰다가 git으로 넘어온 사람들을 보면 간혹 svn update와 같이 동작 하는것을 원하는 사람들이 있다. 삭제된 파일만 되돌리기를 하고 싶은경우 이다. 즉 여러개의 파일이 있을 때 수정된 파일을 제외 하고 삭제된 파일만 다시 reset 하고 싶을경우 이다. 먼저 UNDO 하는 방법을 알아보자. 1.모든 파일을 되돌릴 때 $git reset --hard HEAD 2.특정 파일만 되돌릴때 $git checkout -- file 2번을 이용하면 특정파일만 되돌릴 수 있으나 파일을 일일이 기입하는 것은 여간 귀찮은일이 아니다. 그래서 돌리고 싶은 파일만 삭제한 후 아래와 같이 입력한다. $git ls-files -d | xargs git checkout -- 파이프와 xargs를 이용한 방법으로 명령어를...

2015년 4월 21일 화요일

Gitlab error “fatal: The remote end hung up unexpectedly”

오후 7:00 Posted by PAN.SPOT , No comments
최초 데이터를 push 할 때 "fatal: The remote end hung up unexpectedly"가 난다면? 1.chunked boad size가 작아서 error 나는지 log를 확인 한다. $ su - $ vi /var/opt/gitlab/nginx/logs/gitlab_error.log [error] 23946#0: *885 client intended to send too large chunked body: 524304336 bytes, client: xxxx, server: xxxx 2.gitlab의 nginx max body size를 변경한다. $ vi /etc/gitlab/gitlab.rb nginx['client_max_body_size'] = 'XXXm' // XXXmbyte $...

git ignore 파일 쉽게 만들기

오후 5:45 Posted by PAN.SPOT , , No comments
리눅스 프로젝트를 하게 되면 make시에 각종 object 파일들이 생성되거나 변경 된다. 이 때 git에 적용하지 않을려면 .gitignore 파일에 무시할 폴더나 파일을 기록 하면 되는데 폴더가 많으면 쉽지 않다. 그렇때 아래의 커맨드를 이용해보자. 1. 최초 프로젝트를 make clean 한다. $make clean  2. 프로젝트를 git server에 push $git add -A $git push 3. 프로젝트를 컴파일 한다. $make 4. git status를 하면 make시에 생성되는 파일들이 나온다. 5. make 후 생성된 모든 파일들을 .gitignore에 저장한다. $git status --porcelain | grep '^??' | cut -c4- >>.gitignore 위의...

2015년 4월 14일 화요일

/dev/null 과 2 > &1

오전 12:11 Posted by PAN.SPOT No comments
아래의 명령어에서 사용된 것을 하나씩 확인 해보자 backup.sh > /dev/null 2>&1 >(리다이렉션) : 표준 출력을 다음에 위치한 곳으로 우회 시킨다. /dev/null : 모두 버려라 &j : j가 참조하고 있는곳 0:표준 입력,1:표준출력,2:표준에러 예) $backup.sh > log.txt backup.sh의 표준 출력을 log.txt로 보낸다. $backup.sh 2> err.txt backup.sh의 표준 에러를 err.txt로 보낸다. 이제 $backup.sh > /dev/null 2>&1 분석해보자. backup.sh > /dev/null - backup.sh의 표준 출력을 버려라. 2>&1 -...

2015년 4월 13일 월요일

주기적인 작업 crontab

오후 11:53 Posted by PAN.SPOT No comments
crontab 설정된 시간에 따라 그 시간에 맞는 서비스를 실행 시키는 것 일반적으로 주기적으로 백업이 필요할 때 사용한다. 예약된 리스트 $crontab -l 작업 수정 및 등록 $crontab -e 작업 삭제 $crontab -r 아래의 폴더에 실행파일을 넣으면 끝 /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly 정밀하게 설정하기 $su - (root 권한) $crontab -e 분(0-59) 시(0-23) 일(0-31) 월(1-12) 요일(0,7:일요일,1:월요일,.....) 명령어 예) */10 1-4 1,3 5 * backup.sh > /dev/null 2>&1 */10 : 매 10분 간격으로 1-4...

gitlab backup

오후 11:17 Posted by PAN.SPOT , No comments
#gitlab backup $sudo gitlab-rake gitlab:backup:create $sudo ls /var/opt/gitlab/backups #backup 위치 변경 $sudo vi /etc/gitlab/gitlab.rb gitlab_rails['backup_path'] = '변경될 위치' $sudo gitlab-ctl reconfigure # limit backup lifetime to 7 days - 604800 seconds $sudo vi /etc/gitlab/gitlab.rb gitlab_rails['backup_keep_time'] = 604800 $sudo gitlab-ctl reconfigure # restoring backup $sudo cp 1393513186_gitlab_backup.tar...

gitlab git-data 위치 변경

오후 11:11 Posted by PAN.SPOT , No comments
git-data의 위치를 A서버에서 B서버로 변경 하려면?? A 서버 = gitlab server B 서버 = data server (gitlab이 설치되어 있지않은 data server) 1. A서버의 git 계정의 uid와gid 정보를 가져옴.(uid:999,gid:999) 2. B서버에 git 계정을 추가 $sudo adduser --uid 999 git (A서버와 uid,gid를 일치 시킴 일치 시키지 않으면 permission denied 에러에 빠져 헤어나오지 못함.) 3. B서버(data가 저장될) 설정 $sudo mkdir git-data $sudo chown git:git git-data/ 4. B서버 삼바설정 $$sudo gitlab-ctl stop $sudo system-config-samba...

2015년 4월 12일 일요일

gitlab 서버 구축

오후 5:52 Posted by PAN.SPOT , No comments
ubuntu 14.04 버전 (64bit) 1. Install and configure the necessary dependencies $sudo apt-get install openssh-server $sudo apt-get install postfix 2. Download the Omnibus package and install everything $wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.2-omnibus-1_amd64.deb $sudo dpkg -i gitlab_7.9.2-omnibus-1_amd64.deb 3. Configure and start GitLab $sudo gitlab-ctl reconfigure 4....

2015년 4월 9일 목요일

C++ 표준

오후 4:52 Posted by PAN.SPOT , No comments
연도 C++ 표준 비공식 이름 2011년 ISO/IEC 14882:2011 C++11 (c++0x) 2007년 ISO/IEC TR 19768:2007 C++TR1 2003년 ISO/IEC 14882:2003 C++03 1998년 ISO/IEC 14882:1998 C++98...

trac 서버 구축

오전 2:38 Posted by PAN.SPOT , No comments
ubuntu 14.04 기준 1.패키지 설치 $sudo apt-get install apache2 $sudo apt-get install apache2-utils $sudo apt-get install trac libapache2-mod-python python-setuptools $sudo apt-get install rcconf 2.apache authorization 파일 생성 최초 생성 시 $sudo htpasswd -c /etc/apache2/authorization.auth 사용자명 사용자 추가 시 $sudo htpasswd  /etc/apache2/authorization.auth 사용자명 3. apache2 trac 설정 $sudo vi /etc/apache2/mods-enable/svntrac.conf <Location...

svn 서버 구축

오전 2:38 Posted by PAN.SPOT , No comments
ubuntu 14.04 기준 1.패키지 설치 $sudo apt-get install apache2 $sudo apt-get install apache2-utils $sudo apt-get install subversion libapache2-svn $sudo apt-get install rcconf 2.apache authorization 파일 생성 최초 생성 시 $sudo htpasswd -c /etc/apache2/authorization.auth 사용자명 사용자 추가 시 $sudo htpasswd  /etc/apache2/authorization.auth 사용자명 3. apache2 svn 설정 $sudo vi /etc/apache2/mods-enable/svntrac.conf <Location...

svn merge

오전 12:34 Posted by PAN.SPOT , No comments
● svn merge -r 옵션과 -c 옵션 svn merge -c 130 == svn merge -r 129:130 svn merge -c -130 == svn merge -r 130:129 ● merge branches -> trunk          ▶ branches에서 수정된 30~34번까지의 내용을 trunk에 적용하려면? $svn switch trunk URL : 작업사본을 trunk로 변경 (이미 trunk라면 생략) $svn merge...

2015년 4월 7일 화요일

linux 쉘 명령어 모음

오후 8:26 Posted by PAN.SPOT No comments
$ll : ls -l $Pushd : 현재디렉토리저장 $Popd : 저장한 디렉토리로 이동$Dirs : 저장된 디렉토리 표시 $chgrp 그룹명 파일또는폴더 :  그룹 변경 $df : 마운트된 파일 시스템의 사용 가능한 공간 확인 $du : 디렉토리의 파일용량 $free : 현재 메모리 사용량 및 사용가능한 메모리 $w : 현재 로그인한 사용자가 무엇을 하는지 알려줌  $tty : 시스템에서 연결되어 사용하는 터미널 ...

svn url 변경

오후 7:07 Posted by PAN.SPOT , No comments
서버 저장소 주소 변경 $svn relocate branches <-> trunk 간 주소 변경 $svn switch    - switch는 하나의 로컬작업 저장소에서  branches로 일시 전환 했다가 trunk로 전환 할때 사용 ...

svn 충돌 해결법

오후 6:54 Posted by PAN.SPOT , No comments
(e) edit - 병합된 파일을 편집기로 열기  (df) diff-full - 병합된 파일을 보기  (r) resolved - 병합된 파일을 채택하기  (dc) display-conflict - 모든 충돌 사항을 보이기(잘 병합된 부분 제외)  (mc) mine-conflict - 충돌 부분에 대하여 작업사본을 선택하기  (tc) theirs-conflict - 충돌 부분에 대하여 저장소본을 선택하기 (mf) mine-full - 충돌난 파일에 대하여 작업사본 파일을 선택하기 (tf) theirs-full - 충돌난 파일에 대하여 저장소본 파일을 선택하기 (p) postpone - 나중에 해결할 것으로 표시해두기 (l) launch - 외부...

apt-get

오후 6:37 Posted by PAN.SPOT , No comments
apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구입니다. 패키지 인덱스 인덱스 정보를 업데이트 : apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 있습니다. 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻습니다. $sudo apt-get update 설치된 패키지 업그레이드 : 설치되어 있는 패키지를 모두 새버전으로 업그레이드 합니다. $sudo apt-get  upgrade 의존성검사하며 설치하기 $sudo apt-get dist-upgrade 패키지 설치 $sudo apt-get install 패키지이름 패키지 재설치 $apt-get...