알고리즘과 언어/shell(bash)
-
스크립트 중복 실행 방지알고리즘과 언어/shell(bash) 2022. 6. 20. 20:24
a.sh 에서 b.sh의 스크립트 중복 실행을 방지하기 위해서는 ps -ef | grep b.sh | grep -v | wc -l 값이 1 이상인지를 통해서 b.sh 가 실행되고 있는지를 확인하면 되겠지만 a.sh에서 a.sh 스스로가 중복실행되는지를 체크하기 위해서는 위와 같은 방법으로 확인하기 어렵다. 1. a.sh 스크립트에서 동명의 a.sh가 실행되는지를 확인하기 위해서 ps -ef를 한다면, 본인도 세어지기 때문에 0인지 아닌지로 체크할 수 없음. 2. 실제로 선행되는 a.sh가 없는 경우에 ps -ef를 통해 기준을 잡으려고 했지만, 1이 나올 것이라는 기대와 달리 3이 나왔음. (2였으면 ps -ef가 실행되는 커맨드의 자식 프로세스까지 세어졌다고 생각할 수 있겠지만, 3이 나오는 경우도 존..
-
-
linux 디렉토리 생성 중복/중첩 관련 (mkdir -p)알고리즘과 언어/shell(bash) 2022. 6. 6. 19:54
리눅스에서는 같은 디렉토리를 2번 생성하면 에러를 낸다. 쉘 스크립트 내에서 mkdir을 하면 이 부분이 염려되는데, 이미 있는 디렉토리라면 무시하고 싶을 때 -p 옵션을 넣어주면 된다. `mkdir -p 경로 ` 이렇게 넣어주고 같은 디렉토리를 만든 다음에 ls -l 명령어를 통해 디렉토리의 수정 시간을 보면 맨 처음 만들어진 시간임을 알 수 있다. (이미 있는 경우, 다시 만들지 않는다.) 또한 -p옵션은 다른 용도로도 사용되는데, 중간에 포함된 디렉토리를 만들어주는데도 사용된다. 예를 들어 홈 디렉토리에 HIHI 라는 디렉토리가 없는 상황에서, mkdir /HIHI/here 을 하게 되면 오류를 발생한다. 하지만 mkdir -p /HIHI/here을 하게 되면, 홈 디렉토리 아래에 HIHI도 만들어..
-
shell script 내에 nohup 사용알고리즘과 언어/shell(bash) 2022. 6. 3. 17:14
nohup 은 백그라운드에서 프로세스가 도는 것을 보장. `실행할파일1 &`: 파일 백그라운드에서 돌아감. 그러나 터미널에서 로그아웃 시 프로세스 End `nohup 실행할파일1 &` : 파일 백그라운드에서 돌아감. 터미널 로그아웃 하더라도 프로세스 돌아감. -> 중간에 로그아웃되거나 쉘이 종료되더라도 프로그램이 무사히 돌아가는 것을 보장한다. nohup.out 이라는 곳에 자동으로 로그를 남기게 되는데, 리다이렉션(>)을 통해 정상/에러 로그를 다른 곳에 보관할 수 있다. 불필요한 로그를 쌓기 싫다면 (nohup.out이 계속 갱신된다면 파일이 커질 것이기 때문에), `nohup 실행할_파일 > /dev/null 2>&1 &` 명령어를 통해 모두 쓰레기통(/dev/null)로 버린다.
-
tail -f 보다 효율적인 less +F알고리즘과 언어/shell(bash) 2022. 6. 2. 17:06
https://jongmin92.github.io/2018/03/29/Linux%20&%20Ubuntu/less/ tail -f 보다 효율적인 less +F에 대해 알아보자 Stop using tail -f얼마전 tail -f를사용하며 스크롤 기능을 사용하고 싶어 검색하던 중 less +F를 알게 되었습니다. less +F에 대해 잘 설명한 글이 있어 번역해보려 합니다. 해당 글은 Stop using tail -f (mostly jongmin92.github.io 하나의 파일을 모니터링할 때는 less +F가 편리. (navigation과 watching 모드 전환이 쉽기 때문에) 다수의 파일은 안된다. ctrl-c로 네이게이션 모드로 변경해서 전체 파일을 읽듯이 확인 가능하고, F를 눌러 모니터링 모드..