반응형

출처 : http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine

ssh를 사용하여 원격 컴퓨터의 shell script를 실행하는 방법?

저는 원격 컴퓨터에서 로컬 shell script(윈도우즈/리눅스)를 실행해야 합니다.

A 컴퓨터와 B컴퓨터 모두에서 설정된 ssh가 있습니다. 저의 스크립트는 B컴퓨터에서 수행할 내용이 A컴퓨터에 있습니다.

로컬과 원격 컴퓨터는 윈도우즈나 유닉스 기반의 시스템일 수 있습니다.

plink/ssh를 사용하여 이를 실행할 수 있는 방법이 있을까요?


20개의 답변 중 1개의 답변

만약 A 컴퓨터가 Windows box라면 -m 파라미터와 함께 Plink(PuTTY의 일부)를 사용하실 수 있고 원격 서버에 로컬(내 컴퓨터의) 스크립트를 실행할 것입니다.

plink root@MachineB -m local_script.sh

만약 A컴퓨터가 유닉스를 기반으로한 시스템이면 다음처럼 사용할 수 있습니다.

ssh root@MachineB 'bash -s' < local_script.sh

이를 수행하기 위해 스크립트를 원격 컴퓨터로 복사하실 필요가 없습니다.


(번역과 관련없는) 추가내용

ssh 뿐만이 아니라 rsh도 똑같은 방법으로 실행이 가능합니다.

ssh root@MachineB 'bash -s' < local_script.sh

ssh 계정명@원격호스트(IP) 수행할명령어 < 로컬_스크립트.sh

만약 원격 컴퓨터의 프로그램이 수행이 되지 않는다면

로컬_스크립트.sh에서 export LD_LIBRARY_PATH를 원격컴퓨터에 맞게 설정하셔야 됩니다.

예) export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib

반응형

'리눅스 shell' 카테고리의 다른 글

expect  (0) 2015.08.09
리눅스 쉘에서 '>/dev/null 2>&1'의 뜻이 무엇인가요?  (2) 2015.07.10
rsync  (0) 2015.02.17
왜 쉘 명령어가 \(백슬래시)로 시작하나요?  (0) 2014.07.08
fg  (0) 2011.08.03
반응형

출처 : http://stackoverflow.com/questions/1282639/switch-git-branch-without-files-checkout

Git: 파일 checkout 없이 git branch 변경하기

= working area 변경 없이 git branch 변경하기

git에서 모든 파일을 checkout하지 않고 다른 브랜치로 변경하는 것이 가능한가요? 저는 branch를 변경한 후 모든 파일을 삭제하고 재 생성한뒤 commit하고 원래 branch를 다시 되돌렸습니다. 그리고 파일을 checkout하는데 시간이 너무 많이 걸립니다. (14000개 정도 파일이 있고 오래 걸립니다.)

분명히 하기 위해:

저는 github에 문서를 업로드 하였습니다.

저는 gh-pages branch를 가진 보관소(repository)가 있습니다. 저는 로컬 컴퓨터에서 문서를 재생성하여 그 파일들을 보관소 디렉터리에 복사하고 commit하고 github에 push하였습니다. 하지만 저는 로컬 컴퓨터에 문서의 복사본이 2개가 있기 때문에 내키지는 않습니다. 그리고 저는 'empty' branch를 만들기로 하고 'empty' 브랜치로 이동한 뒤 파일을 모두 삭제하였습니다. 하지만 원래 branch로 되돌아 오는데 오래 걸립니다. 그래서 이 질문을 합니다.

저는 gh-pages branch는 남기고 파일을 지울 수 있는 방법을 알고 싶지만 dirty working tree들을 남기고 싶지는 않습니다.

----

7 개의 답변 중 1개의 답변만 추려냄.

옙. 다음처럼 하시면 됩니다.

git symbolic-ref HEAD refs/heads/otherbranch
역자 주 : otherbranch는 변경하고자 하는 branch명입니다.

만약 이 branch로 commit할 필요가 있다면 해당 index를 리셋하길 원하시면 다음처럼 하시면 됩니다. 그렇지 않으면 마지막에 checkout된 branch를 기반으로 commit하여 마무리하시면 됩니다.
git reset


반응형

'Git' 카테고리의 다른 글

git log  (0) 2015.08.31
Git에서 새롭고 비어 있는 branch를 만드는 방법  (0) 2015.07.17
잃어버린 commit들 복구하기.  (0) 2015.01.22
Git: branch 포인터를 특정 commit으로 이동하게 하기.  (0) 2015.01.14
git config  (2) 2014.11.14
반응형

rsync

rsync는 두 컴퓨터 시스템을 똑같은 파일의 복사본으로 유지하는데 널리 사용되는 유틸리티입니다.

유닉스와 같은 시스템과 파일 동기화와 전송 2가지 모두 기능하는데 널리 사용됩니다.

rsync 알고리즘은 델타 인코딩 형태로 네트워크 사용량을 최소화합니다.

zlib은 추가적인 압축을 하는데 사용될 수 있고 데이터 보안을 위해 SSH나 stunnel이 사용될 수 있습니다.


사용예시

rsync -avz rsync://rsync.iana.org/tz/data/ ~/data/dst

rsync.iana.org/tz/data/의 디렉터리 안의 파일들을 $HOME/data/dst 디렉터리로 동기화 복사를 수행한다.


옵션

-a, --archive : archive mode

디렉터리까지 동기화 복사(-r, --recursive)를 하며, 심볼릭 링크(-l, --link), 파일권한(-p, --perm), 사용자 및 그룹 소유자(-g & -o), 수정시간(-t, --times) 도 유지하며 동기화 복사를 한다.

-v : verbose, 자세한 정보 출력)

-z : 압축전송.


출처

http://en.wikipedia.org/wiki/Rsync

http://linux.die.net/man/1/rsync

http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/



반응형
반응형

출처 : http://gitready.com/advanced/2009/01/17/restoring-lost-commits.html

잃어버린 commit들 복구하기

만약 당신이 마지막 commit을 버리기 위해 git reset --hard HEAD^ 를 실행하였습니다. 그런데 그 변경이 필요하지 않았음이 밝혀졌습니다.  당신은 두 번 다시 완벽하게 알고리즘을 구현할 수 없고 다시 원래대로 복구해야 합니다. 겁먹지 말고 git은 당신의 잃어버린 그 commit을 가지고 있습니다. reset할 때 당신이 버린 commit은 "dangling" 상태가 됩니다. 그것은 git의 데이터로 보관되어 있고 다음 garbage collection 때 치워질 것입니다. 당신이 위 명령을 실행했을 때 부터 git gc를 실행하지 않는다면 당신은 그것을 복구할 수 있습니다.

예를 들어 저는 이 블로그를 위한 코드를 작성하였습니다. 그리고 바로 다음을 실행합니다.

$ git show-ref -h HEAD
  7c61179cbe51c050c5520b4399f7b14eec943754 HEAD

$ git reset --hard HEAD^
  HEAD is now at 39ba87b Fixing about and submit pages so they don't look stupid

$ git show-ref -h HEAD
  39ba87bf28b5bb223feffafb59638f6f46908cac HEAD

우리의 HEAD는 하나의 commit으로 저장된 상태입니다. 이 때 우리는 git pull으로 그것을 원래대로 돌릴 수 있다면 우리의 local repository는 그 commit을 알고 있다고 가정할 수 있습니다. 우리는 그것을 원래대로 돌리기 위해 그 commit의 SHA1이 필요합니다. 우리는 fsck명령으로 그 commit에 대해 알고 있다는 것을 증명할 수 있습니다.

$ git fsck --lost-found
  [... some blobs omitted ...]
  dangling commit 7c61179cbe51c050c5520b4399f7b14eec943754

또한, git은 reflog명령을 사용하여 아직 그 commit에 대해 알고 있다는 것을 확인 할 수 있습니다.

$ git reflog
  39ba87b... HEAD@{0}: HEAD~1: updating HEAD
  7c61179... HEAD@{1}: pull origin master: Fast forward
  [... lots of other refs ...]

결국, 우리는 복구하고자 하는 SHA1:7c61179 을 알았습니다. 만약 현재 branch에 복구하고자 하는 그 commit을 바로 적용하려면, git merge함으로서 그 commit으로 복구할 것입니다.

$ git merge 7c61179
  Updating 39ba87b..7c61179
  Fast forward
    css/screen.css |    4 ++++
    submit.html    |    4 ++--
    2 files changed, 6 insertions(+), 2 deletions(-)

이 명령은 우리의 잃어버린 변화들을 되돌릴 것이고 HEAD가 그 commit을 가리키도록 보장할 것입니다. 여기서부터 평소처럼 작업을 이어서 할 수 있습니다. 또한, 당신은 새로운 branch로 복구할 SHA1을 checkout할 수 있지만 merge가 당신이 그 hash를 가지고 있을 때 잃어버린 commit을 복구하는 가장 빠르고 쉬운 방법입니다. 혹시 당신이 다른 방법을 알고 계시면 댓글을 남겨주세요!

만약 이러한 상황에서 할 수 있는 더 많은 option들을 알고 싶다면, Mathieu Martin’s illustrated guide to recovering lost commits with Git이 충분히 당신에게 도움이 될 것입니다.


반응형
반응형

출처 : http://stackoverflow.com/questions/5471174/git-move-branch-pointer-to-different-commit

Git: branch 포인터를 특정 commit으로 이동하게 하기.

check-out된 branch의 포인터를 이동하기 위해 git reset --hard 명령을 사용할 수 있습니다. 하지만 check-out되지 않은 branch의 포인터를 다른 commit을 가리키도록 이동하는 방법을 알고 싶습니다. (기존에 추적중인 원격 branch같은 다른 정보들은 유지되어야 합니다.)


3 개의 답변 중 1개의 답변만 추려냄.

git branch -f <branch-name> [<new-tip-commit>]

만약 new-tip-commit 이 생략되면 기본적으로 현재 commit을 가리킵니다.

반응형

'Git' 카테고리의 다른 글

git log  (0) 2015.08.31
Git에서 새롭고 비어 있는 branch를 만드는 방법  (0) 2015.07.17
Git: 파일 checkout 없이 git branch 변경하기  (0) 2015.03.18
잃어버린 commit들 복구하기.  (0) 2015.01.22
git config  (2) 2014.11.14
반응형



Git 최초설정

/etc/gitconfig 파일 : 시스템의 모든 사용자와 모든 저장소에 적용되는 설정. git config --system 옵션으로 이 파일을 읽고 쓸 수 있다.

~/.gitconfig 파일 : 특정 사용자에게만 적용되는 설멍이다. git config --global 옵션으로 이 파일을 읽고 쓸 수 있다.

.git/config : 이 파일은 Git 디렉터리에 있고 현재 작업 중인 프로젝트에만 적용된다. 각 설정은 역순으로 우선시된다. 그래서 .git/config가 /etc/gitconfig보다 우선한다.

프로젝트마다 적용하고 싶으면 --global 옵션을 빼고 명령을 실행한다.

설정 확인

git config --list : 설정한 모든 것을 보여준다.


사용자 정보

Git이 커밋할 때 사용하는 사용자 정보를 설정한다.

git config --global user.name "John Doe"

git config --global user.email johndoe@example.com

편집기

Git에서 사용할 텍스트 편집기를 고른다.

git config --global core.edit emacs

Diff도구

Git에서 Merge 충돌을 해결하기 위해 사용하는 Diff도구를 설정할 수 있다.

git config --global merge.tool vimdiff

vimdiff 참조 

http://blog.daum.net/trvoid/236


출처

http://git-scm.com/book/ko/v1/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%B5%9C%EC%B4%88-%EC%84%A4%EC%A0%95


git commit 메세지 인코딩 관련 정보

git config --global i18n.commitEncoding cp949

메세지를 commit할 때 저장될 메세지의 인코딩 정보.

git config --global i18n.logoutputencoding cp949

git log, git show, git blame 명령어로 화면에 보여줄 때 출력될 문자열의 인코딩 정보. 없으면 i18n.commitEncoding를 사용한다.


출처

http://nabiro.tistory.com/153

https://www.kernel.org/pub/software/scm/git/docs/git-commit.html


git에서 파일 권한 변화를 무시하도록 설정하는 방법이 있을까요?
예시)Git에서 unstaged changes로부터 "oldmode 100755 new mode 100644"를 제거하는 방법?
git config --global core.fileMode false
현재 프로젝트에 적용하는 방법
git config core.fileMode false

출처


반응형
반응형

출처 : http://stackoverflow.com/questions/924729/mysql-select-many-fields-how-best-to-display-in-terminal

SELECT가 많은 칼럼 필드들을 가질 때 터미널에 최고의 방법으로 표시하는 방법은?


저는 Putty를 사용하고 있고 다음 쿼리를 실행하였습니다.

mysql> SELECT * FROM sometable;

'sometable'은 많은 필드 칼럼들이 있고 터미널에 표시될 많은 칼럼들이 결과로 있습니다. 다음 줄까지 필드들이 표시되어 있어서 필드 값과 컬럼 제목을 보는데 어렵습니다.

터미널에서 이러한 데이터를 보는 해결책은 무엇이 있을까요?

(추신 : 저는 phpMyAdmin이나 다른 GUI 인터페이스에 접근할 수 없습니다.)

MySQL 쿼리 결과를 text나 CVS로 명령어로 저장하는 방법이나 명령어를 입력하늡 방법같은 해결책을 찾아주셨으면 합니다.

---------------

8 개의 답변 중 2개의 답변만 추려냄.

1. 이 방법이 유용할 것입니다. (윈도우는 안됨):

mysql> pager less -SFX
mysql> SELECT * FROM sometable;

이 쿼리는 위의 파라미터로 된 less 명령어를 통해 파이프로 출력할 것입니다. 또한 이 쿼리는 테이블 출력을 화살표 키를 이용하여 가로 세로 스크롤(이동)되게 할 수 있습니다.

q  키를 누르면 이 보기를 끝내며 less 툴을 종료할 것입니다.

2.

SELECT * FROM sometable\G

위 쿼리의 행은 다음처럼 표시될 것입니다.

*************************** 1. row ***************************
             id: 1


반응형
반응형

출처 : http://stackoverflow.com/questions/24671049/query-for-a-relation-between-calendar-object-and-espers-eql


There is a class becoming event objects. 

객체가 되려는 다음과 같은 클래스가 있습니다.

class StockTickEvent { Calendar timestamp; ... }


Also, there is an EQL statement. 

또한, 다음과 같은 EQL 문장이 있습니다.

select * from StockTickEvent.win:ext_timed(timestamp, 10 seconds)


Is the class right or valid for this EQL statement? If so, what type can timestamp be? For example, the type of timestamp can be Calendar, Date, or long(unix time value).

이 클래스가 이 EQL 문장에 맞나요? (유효한가요?) 그렇다면 timestamp 변수 타입은 무엇이 될 수 있나요? 예를 들자면 Calendar, Date, long이 있습니다.


답변

The ext-timed data window takes an expression returning a long value. You could add a method to the event returning the long-msec for the calendar.

ext-timed 데이터 윈도우는 long 값을 리턴하는 표현을 취합니다. calendar(로 사용한 변수)에 대해 long-msec을 리턴하는 이벤트를 가지는 메소드를 추가해야 합니다.

반응형
반응형

출처 : http://stackoverflow.com/questions/15691977/why-start-a-shell-command-with-a-backslash

왜 쉘 명령어가 \(백슬래시)로 시작하나요?

\curl -L https://get.rvm.io | bash -s stable

왜 이 명령어가 '\'로 시작하나요 ? 여기를 클릭하면 제가 본 사이트입니다.

2개의 답변

alias curl='curl --some --default --options'

만약 당신이 curl 이란 alias를 설정해 놓았고 이 alias를 사용하고 싶지 않다면 백슬래시를 넣음으로써 alias를 사용하게 않고 curl 바이너리를 직접 실행하도록 합니다.

이는 현재 사용중인 쉘(shell)에서만 적용됩니다. alias는 쉘 스크립트에서는 효과가 없기 때문에 거기엔 넣을 필요가 없습니다. 




 Bourne/POSIX 쉘 명세서는 says 현재 사용중인 쉘에서 alias 치환은 명령어가 인용에 사용하는 문자들이 있을 때 억제된다고 설명이 되어 있습니다. 백슬래시가 그 중 한 방법이고 작은 따옴표와 큰 따옴표를 통해 다른 알려진 방법으로 인용하는 방법도 있습니다. 다음 모두는 alias 치환을 억제할 것입니다.
 \curl
 cur\l
 \c\u\r\l
 "c"url
 "curl"
 "c""u""r""l"
 'curl'
 'cu'"rl"

 \curl 를 사용하는 것은 가장 보편적이고 읽기 쉬운 방법입니다. 이는 표준화된 특징이기 때문에 모든 Bourne 쉘에서 잘 작동할 수 있습니다.

반응형

'리눅스 shell' 카테고리의 다른 글

ssh를 사용하여 원격 컴퓨터의 shell script를 실행하는 방법?  (0) 2015.03.26
rsync  (0) 2015.02.17
fg  (0) 2011.08.03
iostat  (0) 2011.08.03
ntsysv  (0) 2011.07.12
반응형

스마트폰(웹)을 통한 PING 체크

1. 장점

스마트폰, 태블릿, PC 등의 기계에 상관없이 웹을 통해 여러 호스트들을 동시에 핑을 쏘아 확인할 수 있습니다.

2. 사용법

1. 주소(도메인 또는 IP)를 입력하신 후 추가를 클릭합니다.
2. 시작을 누르시면 호출주기마다 핑을 체크하게 됩니다.
3. 상태가 이면 ping 성공, 이면 ping 실패입니다. 
※ 언제든지 주소(도메인 또는 IP)는 추가하실 수 있습니다.

3. 제작정보

링크 : http://webping.url.ph



반응형

'My Work' 카테고리의 다른 글

텔레그램 숫자야구 봇  (0) 2015.09.30
1. CLang-LLVM 설치  (6) 2015.04.19
마이피플 숫자야구 봇  (8) 2013.07.30
Wheeler(마우스 휠버튼을 이용한 화면 캡쳐프로그램)  (2) 2010.12.19
FreeTDS  (0) 2010.02.11

+ Recent posts