bash
-
디렉토리 목록을 정렬 후 상위 N 개의 디렉토리만 남기고 모두 삭제하기bash 2022. 1. 21. 21:27
문제 아래와 같이 backup 디렉토리에 날짜 이름으로 5개의 하위 디렉토리가 있다. 이름순으로 정렬했을 때 가장 최근 디렉토리 2개(20220104, 20220105)만 남기고 모두 삭제하고 싶다. windbird@AL01929730:~$ ls -l ./backup total 20 drwxr-xr-x 2 windbird windbird 4096 Jan 21 21:14 20220101 drwxr-xr-x 2 windbird windbird 4096 Jan 21 21:14 20220102 drwxr-xr-x 2 windbird windbird 4096 Jan 21 21:14 20220103 drwxr-xr-x 2 windbird windbird 4096 Jan 21 21:14 20220104 drwxr-x..
-
프로세스가 실행 중인지 체크 후 실행하기bash 2021. 10. 14. 11:15
문제 프로세스가 이미 실행 중이면 실행하지 않고, 실행중이지 않으면 실행하는 스크립트를 작성한다. (스크립트를 반복 실행 하더라도 프로세스가 중복 실행되지 않도록 한다.) 프로세스가 실행될 때 PID 를 파일로 기록하고, kill -0 PID 로 체크 하도록 한다. 코드 #!/bin/bash ulimit -c unlimited BIN_DIR=`dirname "$0"` BASE_DIR=`cd "$BIN_DIR"; cd ..; pwd` LOG_DIR=$BASE_DIR/logs PID_FILE=$BASE_DIR/application.pid # PID_FILE 이 존재하고, 해당 PID 로 running 중이면 application 을 실행하지 않고 exit 한다. if [ -f $PID_FILE ]; then..
-
실행되는 스크립트로 부터 프로젝트 홈의 절대 경로 알아내기bash 2021. 10. 13. 11:17
문제 디렉토리 구조가 아래와 같고, /home/windbird/work/project/bin/run.sh 가 있을 때 $pwd /home/windbird $tree work/ work/ └── project ├── bin │ └── run.sh ├── conf │ └── server.conf └── logs cd /home/windbird/; sh work/project/bin/run.sh 로 실행되거나 cd /home/windbird/work; sh project/bin/run.sh 로 실행되든지 간에 항상 프로젝트 홈인 /home/windbird/work/project 가 출력되도록 run.sh 스크립트를 작성해 보자 코드 #!/bin/bash bin_dir=`dirname "$0"` home_dir..
-