'분류 전체보기' 카테고리의 글 목록 (29 Page)
본문 바로가기

분류 전체보기980

[Linux 셸 스크립트] 날짜 처리 - 051 date 명령어로 두 날짜를 비교하고 날짜차를 구하기 1. 사용 명령어 (1) date (2) expr 2. 키워드 & 사용처 (1) 키워드 날짜, UNIX 시간, 에포크 초 (2) 사용처 시간 문자열 둘을 비교해서 몇일 차이인지 계산하고 싶을 때 사용합니다. 3. 실행 예제 $ ./date-epoch.sh day1(2021/03/25 12:12:12): 1616728332 day2(2021/03/24 10:10:10): 1616634610 day interval: 1 4. 스크립트 #!/bin/sh # 비교할 두 날짜를 변수로 정의 day1="2021/03/25 10:10:10" ① day2="2021/03/26 12:12:12" ① # 날짜에서 epoch 초를 얻으려면 +%s 사용(리눅스) # -d 옵션은 FreeBSD/Mac에서 사용 불가 day1_e.. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 050 sed로 파일 치환 심볼릭 링크를 실제 파일로 바꾸지 않게 하기 1. 사용 명령어 (1) sed (2) readlink 2. 키워드 & 사용처 (1) 키워드 심볼릭 링크, 파일 치환, 실제 파일 (2) 사용처 sed 명령어 -i 옵션으로 심볼릭 링크를 대상으로 할 때 사용합니다. 3. 실행 예제 $ ls -F orig/sed-symlink.sh*target.txt@ 현재 디렉터리에 심볼릭 링크 target.txt@가 있고 orig/ 디렉터리에 실제 파일이 존재함 $ ls orig/ target.txt $ ./sed-symlink.sh $ ls -F orig/sed-symlink.sh*target.txt@ $ ls -F orig/ target.txttarget.txt.bak 실제 파일이 바뀜 4. 스크립트 #!/bin/sh filename="target.txt" if .. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 049 이중 실행이 가능한 임시 파일 작성하기 1. 사용 명령어 (1) date (2) cat 2. 키워드 & 사용처 (1) 키워드 임시 파일, 프로세스 ID (2) 사용처 스크립트를 동시에 실행할 때 임시 파일이 중복되지 않도록 하고 싶을 때 사용합니다. 3. 실행 예제 $ ./tmppid.sh Fri Mar 26 14:52:11 KST 2021 4. 스크립트 #!/bin/sh tmpfile="tmp.$$" ① date > $tmpfile ② sleep 10 cat $tmpfile ③ rm -f $tmpfile 5. 해설 이 스크립트는 프로그램에서 잠시 사용하는 임시 파일을 다룹니다. 스크립트 실행 시 date 명령어로 현재 시각을 임시 파일에 쓰고 10초 기다린 후 그 값을 파일에서 읽어서 출력합니다. 이 예제에서는 셸 변수 tmpfile로 지정.. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 048 .svn 등 숨은 파일과 디렉터리만 나열하기 1. 사용 명령어 (1) ls (2) case 2. 키워드 & 사용처 (1) 키워드 숨김 파일, 닷 파일 (2) 사용처 숨김 파일만 대상으로 처리하고 싶을 때 사용합니다. 3. 실행 예제 $ ./dotfile.sh dot file: .bashrc dot fiel: .cshrc dot directory: .svn/ 4. 스크립트 #!/bin/sh # IFS에 줄바꿈 설정 IFS=' ① ' ① # 현재 디렉터리 아래에 있는 파일을 $filename으로 순서대로 처리 for filename in $(ls -AF) ② do case "$filename" in ③ .*/) echo "dot directory: $filename" ;; .*) echo "dot file: $filename" ;; esac done .. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 047 바이너리 파일에 포함된 문자열 열기 1. 사용 명령어 (1) strings (2) grep 2. 키워드 & 사용처 (1) 키워드 바이너리 파일, 검색, 실행 파일 (2) 사용처 에러 메시지를 바탕으로 그 메시지를 출력하는 명령어를 찾고 싶을 때 사용합니다. 3. 실행 예제 $ ./strings.sh /home/park/myapp/bin/start: error: Unknown Error /home/park/myapp/bin/kill: Unknown Error at %s /home/park/myapp/bin/kill: Unknown Error at %s:%d 4. 스크립트 #!/bin/sh # 검색할 에러 메시지 message="Unknown Error" strings -f /home/park/myapp/bin/* | grep "$messag.. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 046 작업 파일을 만들 때 내용을 읽지 못하도록 보안 대책 세우기 1. 사용 명령어 (1) umask 2. 키워드 & 사용처 (1) 키워드 보안, 권한, umask (2) 사용처 스크립트에서 권한을 지정해서 파일을 작성하고 싶을 때 사용합니다. 3. 실행 예제 $ ./umask.sh $ ls -l total 8 -rw------- 1 park 48 Mar 26 12:33 idinfo.tmp -rwxr-xr-x 1 park 39 Mar 26 12:32 umask.sh 4. 스크립트 #!/bin/sh umask 077 ① # echo 명령어 출력을 권한 600인 임시 파일로 작성 echo "ID: abcd123456" > idinfo.tmp ② 5. 해설 이 스크립트는 umask 명령어오 임시 파일 권한을 설정합니다. 이러면 다른 사람이 파일 내용을 보는 걸 막아서 보안을.. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 045 디렉터리에 있는 서브 디렉터리들의 디스크 사용량 조사하기 1. 사용 명령어 (1) du (2) sort 2. 키워드 & 사용처 (1) 키워드 디스크 사용량, 파일 크기 (2) 사용처 디렉터리마다 디스크 사용량을 표시하고 싶을 때 사용합니다. 3. 실행 예제 $ ./du-sub.sh 29116/home/park/myapp/data/dir1/ 4716/home/park/myapp/data/dir2/ 1020/home/park/myapp/data/dir3/ 4. 스크립트 #!/bin/sh data_dir="/home/park/myapp/data" # $data_dir 디렉터리의 서브 디렉터리 용량 표시 du -sk ${data_dir}/*/ | sort -rn ① 5. 해설 이 스크립트는 셸 변수 data_dir로 지정한 디렉터리에서 서브 디렉터리들의 디스크 사용량.. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 044 두 디렉터리를 비교해서 한 쪽에만 있는 파일 표시하기 1. 사용 명령어 (1) find (2) sort (3) comm 2. 키워드 & 사용처 (1) 키워드 파일 목록, 디렉터리 비교 (2) 사용처 두 디렉터리가 비슷한 구조일 대 한쪽에만 있거나 양쪽에 있는 파일을 보기 좋게 목록화하고 싶을 때 사용합니다. 3. 실행 예제 $ ./find-comm.sh ./dav.conf ./default.conf ./info.conf ./mpm.conf ./ssl.conf ./userdir.conf ./vhosts.conf 4. 스크립트 #!/bin/sh # 비교할 디렉터리명 dirA="dir1" dirB="dir2" # dir1/과 dir2/ 파일 목록 차이를 조사하기 ( cd dir1; find . -maxdepth 1 -type f -print | sort ) > .. 2021. 3. 26.
[Linux 셸 스크립트] 파일처리 - 043 두 파일을 비교해서 오래된 파일 삭제하기 1. 사용 명령어 (1) test (2) rm 2. 키워드 & 사용처 (1) 키워드 타임스탬프, 새로운/오래된 (2) 사용처 타임스탬프를 비교해서 어느 쪽이 오래되었는지 판단하고 싶을 때 사용합니다. 3. 실행 예제 $ ./olddel.sh [log2.log]->newer, [log1.log]->older 4. 스크립트 #!/bin/sh # 비교 대상 파일 log1="log1.log" log2="log2.log" # 인수 파일이 존재하는지 확인해서 존재하지 않으면 종료 filecheck() ① { if [ ! -e "$1" ]; then ② echo "ERROR: File $1 does not exist." >&2 exit 1; fi } filecheck "$log1" ③ filecheck "$log2".. 2021. 3. 25.
[Linux 셸 스크립트] 파일처리 - 042 처리 시작 전에 실행 권한을 확인해서 정상 동작이 가능한지 확인 후 실행하기 1. 사용 명령어 (1) test (2) [ 2. 키워드 & 사용처 (1) 키워드 파일 속성, 상태 확인, 파일 테스트, 권한 (2) 사용처 스크립트 초기 설정 등에서 특정 파일의 존재 확인이나 권한 확인을 하고 싶을 때 사용합니다. 3. 실행 예제 $ ./test.sh start. 4. 스크립트 #!/bin/sh start_command="./start.sh" if [ -x $start_command" ]; then ① $start_command else echo "ERROR: -x $start_command failed." >&2 exit 1 fi 5. 해설 이 스크립트는 현재 디렉터리에 있는 start.sh를 실행하는 간단한 스크립트입니다. start.sh를 실행할 수 있는지를 스크립트 내부에서 미.. 2021. 3. 25.