가끔은 SSH를 통해 상자에 접속하고 일부 스크립트를 실행하여 시스템을 변경합니다. 세션 종료 시 명시적으로(예 exit
: 셸에서 로그아웃) 또는 암시적으로(예: SSH 세션 시간 초과로 인해) 이 변경 사항을 취소하고 싶습니다 .
이 작업을 수행하기 위해 설정할 수 있는 것이 있나요?
Stratman의 예로, 파일을 생성하는 /etc/foo
동시에 rm /etc/foo
ssh 세션이 종료될 때 특정 시점에 작업을 수행하는 정리 스크립트를 등록하려고 한다고 가정해 보겠습니다.
답변1
두 가지 방법:
일회성 작업을 수행하려면 트랩을 설정할 수 있습니다 EXIT
.
trap 'rm /etc/foo' EXIT
현재 쉘이 종료될 때 주어진 코드가 실행됩니다. 트랩은 대화형 프롬프트에서 설정할 수도 있고, $HOME/.bash_profile
매번 발생하도록 하려는 경우에도 설정할 수 있습니다(트랩 설정에 유의하세요).다시이전에 설정된 트랩은 제거됩니다.) 당신은 할 수제거하다실행 전 트랩 trap - EXIT
.
또 다른 방법은 원하는 경우입니다.언제나대화형 로그인 셸이 종료될 때 특정 명령 집합을 실행하려면 해당 명령을 에 배치하면 됩니다 $HOME/.bash_logout
.
이 파일은 대화형 로그인 쉘이 종료되거나 비대화형 로그인 쉘이 실행될 때 실행됩니다 exit
.