전체/장난하기
bash shell command overriding
Coolen
2009. 1. 12. 15:46
ssh, scp 등을 쓸 때, 뭔가 다른일을 추가적으로 하고 싶을 때가 있습니다.
예를 들어
특정 서버들을 다루기 위한 shell로 활용하기 위해서 사용할 수 있습니다. ssh에는 -i 옵션으로 키를 설정할 수 있습니다. 이 옵션을 자동으로 사용하기 위해서... 대략 이런 시나리오로 쓸 수 있겠지요.
예를 들어
ssh 172.16.1.1 ls -al을 할 때, 172.16.1.1 로그를 남긴다든지 할 수 있겠죠.
ssh() {라고 .bash_profile 등에 넣어 주면 됩니다. 그러면 동일한 이름의 함수를 만들게 되고, 해당 함수 내에서는 재귀 호출이 일어나지 않도록 명시적으로 PATH에서 찾게하는 것이죠.
echo "ssh $@" >> /tmp/ssh.log
command -p ssh $@
}
특정 서버들을 다루기 위한 shell로 활용하기 위해서 사용할 수 있습니다. ssh에는 -i 옵션으로 키를 설정할 수 있습니다. 이 옵션을 자동으로 사용하기 위해서... 대략 이런 시나리오로 쓸 수 있겠지요.
1. ssh-keygen -f cloud.key하고 싶은 얘기는 command 라는 bash 빌틴 명령어와 -p 옵션이었습니다.
2. cloud.key.pub 을 서버들에 복사.
3. bash --rcfile cloud.sh
4. cloud.sh 에는
ssh() {
command -p ssh -i cloud.key $@
}
반응형