
find와 exec 조합하기(+ 서버 계정의 uid 변경하기 )
새로운 서비스 릴리즈를 준비하고 있는데, 도커를 이용하고 점진 적으로 기존 레거시 앱들도 도커로 전환할 계획을 가지고 있습니다. 기존 레거시 앱들이 호스트에서 구동되기 때문에 호스트의 파일 시스템 일부를 볼륨으로 지정하여 앱 사이의 데이터를 공유하고 있습니다. 이를 위해서 호스트의 계정과 컨테이너에서 구동되는 계정의 uid를 일치하도록 했습니다. 개발서버에서 문제 없이 구동했고, 이제 릴리즈 일정이 다가옴에 따라 스테이지 서버와 운영서버에 배포를 시작했는데, 문제가 생겼습니다. 스테이지 서버와 운영 서버는 최근에 받은 서버이고, 운영 주체가 다릅니다. 그래서 개발서버와 달리 직접 컨트롤 할 수가 없습니다. 여기서 문제가 발생했는데, 스테이지 서버와 운영 서버에서 발급 받은 계정의 uid가 기존에 사용하던..

Find 결과에서 Permission denied 제거하기
유닉스 계열의 OS를 사용하다 보면 가장 많이 쓰는 명령 중 하나가 find가 아닐까 싶습니다. 그런데 find 중에 Permission denied라는 메시지 때문에 정작 찾고자 하는 결과를 찾기가 힘들었던 경험은 없으신가요? 아래 그림처럼요. 정작 찾고자하는 workspace를 Permission denied에 가려서 찾기 어렵습니다. 바라는 결과는 이런 건데 말이죠. 저걸 걸러보고자 grep을 사용해도 결과는 마찬가지입니다. $ find / -name workspace | grep -v Permission 결과가 걸러지지 않는 이유는 grep으로 find의 결과가 전달되기 이전에 예외가 발생했기 때문에 걸러지지 않는 것입니다. 그러면 예외를 보이지 않게 하면 원하는 결과를 얻을 수 있을 것이다라는 ..