IT 이야기/Linux 셸 스크립트137 [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. [Linux 셸 스크립트] 파일처리 - 041 HTML 파일인 .htm과 .html 확장자를 txt로 일괄 변경하기 1. 사용 명령어 (1) mv 2. 키워드 & 사용처 (1) 키워드 확장자, 파일명 변경, case문 (2) 사용처 확장자가 제각각인 파일들을 하나의 확장자로 변경하고 싶을 때 사용합니다. 3. 실행 예제 $ ls abc.html index.htm rename.sh same.htm same.html space.html # ./rename.sh $ ls abc.txt index.txt rename.sh same.txt space.txt 4. 스크립트 #!/bin/sh for filename in * ① do case "%filename" in ② *.htm | *.html ③ # 파일명 앞 부분을 취득(index) headname=${filename%.*} ④ # 파일명을 .txt로 변환 mv "$file.. 2021. 3. 24. [Linux 셸 스크립트] 파일처리 - 040 파일 퍼미션과 타임 스탬프 등 원래 파일 속성을 유지한 채 파일 복사하기 1. 사용 명령어 (1) getopts (2) cp 2. 키워드 & 사용처 (1) 키워드 복사, 백업, 파일 속성, 심볼릭 링크 (2) 사용처 디렉터리를 복사할 때 파일 속성과 심볼릭 링크를 포함해서 백업하고 싶을 때 사용합니다. 3. 실행 예제 $ ./cp-p.sh-a 4. 스크립트 #!/bin/sh backup dir="home/park/backup" # myapp 디렉터리를 $backup_dir 밑에 백업 복사 while getopts "a" option do case $option in a) cp -a myapp "$backup_dir" exit ;; esac done cp -R myapp "$backup_dir" 5. 해설 이 스크립트는 현재 디렉터리에 있는 myapp 디렉터리 아래에 있는 파일.. 2021. 3. 24. [Linux 셸 스크립트] 파일처리 - 039 tar 아카이브에 파일 추가하기 1. 사용 명령어 (1) tar (2) date 2. 키워드 & 사용처 (1) 키워드 tar, 아카이브, 추가, 어펜드 (2) 사용처 월별 아카이브에 목차 파일을 추가하는 등 기존 tar 아카이브에 파일을 추가하고 싶을 때 사용합니다. 3. 실행 예제 $ tar tf 202103.tar 기존 파일 확인 log/ log/20210301.log log/20210302.log log/20210303.log $ ./tar-add.sh 실행 log/20210304 $ tar tf 202103.tar 추가된 내용 확인 log/ log/20210301.log log/20210302.log log/20210303.log log/20210304.log 4. 스크립트 #!/bin/sh # 년월로 아카이브 파일 지정(예 :.. 2021. 3. 24. [Linux 셸 스크립트] 파일처리 - 038 tar 아카이브할 때 일부 파일이나 디렉터리 제외하기 1. 사용 명령어 (1) tar 2. 키워드 & 사용처 (1) 키워드 tar 아카이브, 제외, 예외 (2) 사용처 tar 명령어로 아카이브 파일을 만들면서 Subversion의 [.svn] 디렉터리 등 특정 파일이나 디렉터리를 제외하고 싶을 때 사용합니다. 3. 실행 예제 $ ls -aF myapp ./../.svn/bin/etc/log/ $ ./tar-exclude.sh myapp/ myapp/etc/ myapp/etc/app.conf myapp/etc/disk.conf myapp/log/ myapp/bin/ myapp/bin/start myapp/bin/stop 4. 스크립트 #!/bin/sh tar cvf archive.tar --exclude ".svn" myapp 5. 해설 이 스크립트는 tar.. 2021. 3. 24. [Linux 셸 스크립트] 파일처리 - 037 gzip 명령어로 압축률 높이기 1. 사용 명령어 (1) gzip (2) bzip2 (3) xz 2. 키워드 & 사용처 (1) 키워드 압축률, gzip 형식 (2) 사용처 다른 프로그램과 연계하기 위해 암축 형식은 gz 그대로이지만 압축률을 높이고 싶을 때 사용합니다. 3. 실행 예제 $ ./gzip.sh $ ls archive.tar.gz gzip.sh log 4. 스크립트 #!/bin/sh tar cf archive.tar log # -9 옵션으로 압축률을 최대로 함 gzip -9 archive.tar ① 5. 해설 이 스크립트는 디렉터리 log를 tar 아카이브한 다음에 gzip으로 압축합니다. ①에서 gzip 압축할 때 -9 옵션을 주어 압축률을 옵립니다. gzip 형식 압축 파일은 유닉스 환경에서는 예전부터 많이 써왔고 셸 스.. 2021. 3. 24. [Linux 셸 스크립트] 파일처리 - 036 중요한 파일을 암호 걸어서 zip으로 아카이브하기 1. 사용 명령어 (1) zip 2. 키워드 & 사용처 (1) 키워드 암호, 암호화, zip 파일 (2) 사용처 중요한 정보를 담은 로그 파일 등을 암호가 있는 zip으로 아카이브 할 때 사용합니다. 3. 실행 예제 $ ./passzip.sh Enter password: 2021. 3. 24. [Linux 셸 스크립트] 파일처리 - 035 로컬 디렉터리에 파일을 만들지 않고 직접 원격 호스트에 아카이브하기 1. 사용 명령어 (1) tar (2) ssh (3) cat 2. 키워드 & 사용처 (1) 키워드 tar 아카이브, 원격 호스트, 중간 파일 (2) 사용처 tar 아카이브를 작성해서 원격 호스트에 복사하면서 중간 파일을 만들지 않고 직접 복사하고 싶을 때 사용합니다. 3. 실행 예제 $ ./tar-ssh.sh myapp/log myapp/log/20210322.log myapp/log/20210323.log myapp/log/20210324.log 4. 스크립트 #!/bin/sh username="park" server="192.168.1.5" tar cvf - myapp/log | ssh ${username}@${server} "cat > /backup/myapplog.tar" ① 5. 해설 이 스크립.. 2021. 3. 24. 이전 1 ··· 7 8 9 10 11 12 13 14 다음