파일처리_10 로그 파일이 엄청 많은 디렉터리에서 파일들에 명령어를 일괄 실행하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: find, xargs, grep
키워드: 인수, 명령행 인수, 대량 파일
사용처: 파일이 너무 많아 단순히 *로 파일을 지정하면 에러가 발생하는 상황에서 grep 명령어 등을 실행하고 싶을 때
실행 예제
$ ./xargs-grep.sh
/var/log/myapp/49294.log:2012-12-24 00:04:59 [ERROR] File Not Found.
/var/log/myapp/23100.log:2013-06-10 03:54:21 [ERROR] I/O Error.
/var/log/myapp/14322.log:2013-10-...
파일처리_09 작업 파일 디렉터리에서 1년 이상 갱신되지 않은 파일 삭제하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: find, xargs
키워드: 갱신일, 날짜, 파일 삭제, 자동 삭제
사용처: 오랫동안 변경되지 않은 파일이나 오래된 로그 파일을 삭제하고 싶을 때
실행 예제
$ ./find-del.sh # --------------현재 날짜가 2013년 11월 26일이라면
/var/log/myapp/201211250147.log
/var/log/myapp/201211200147.log
/var/log/myapp/201211150147.log
스크립트
#!/bin/sh
logdir="/var/log/myapp"
# 최종 갱신...
구글 드라이브 외부 접속 가능한 이미지 URL 생성하기(2024년 변경)
Google-drive 외부 접속 image 구글의 url 변경
얼마전 깃허브 블로그 포스팅하던 중 갑자기 구글 드라이브에 업로드 되어있는 사진들이 갑자기 보이지 않게 되었습니다.
예전에 갑자기 외부링크 권한이 변경된 적이 있어, 드라이브에 외부링크 권한이 변경되었는지 확인하였으나,
이상을 발견하지 못했고, 한참을 구글링하여 비슷한 문제가 발생한 어느 외국인에게 도움을 요청하여 해결하였습니다.
하기 이슈트래커를 통해서도 아래와 같이 url 형식이 변경된 것을 확인 하실 수 있습니다.
Google issue tracker: https://issuetracker.google.com/issues/319531488?p...
파일처리_08 특정 디렉터리에서 n일 전부터 m일 전까지 변경된 파일 목록 얻기(mtime 개념)
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: find
키워드: 어제, 그저께, 날짜, 타임스탬프, mtime
사용처: 특정 기간에 작성, 변경된 파일 목록을 만들고 싶을 때
실행 예제
# 현재 시각이 2013년 11월 26일 20:00
$ ./find-mtime.sh
/var/log/myapp/201311222346.log
/var/log/myapp/201311230446.log
/var/log/myapp/201311230946.log
/var/log/myapp/201311240046.log
/var/log/myapp/201311242046.log
스크립트
#!/...
파일처리_07 여러 HTML 파일에서 title 태그만 추출해서 각각 다른 파일로 출력하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: basename, sed
키워드: for문, 파일 목록, HTML 태그, 다른 파일
사용처: 여러 HTML 파일에서 특정 요소만 추출해서 HTML 파일마다 다른 파일로 출력하고 싶을 때
실행 예제
$ ls output/
$ ./htmltitle.sh
$ ls output/
about.txt index.txt menu.txt
스크립트
#!/bin/sh
# 현재 디렉터리에 있는 .html 파일이 대상
for htmlfile in *.html # -----------------------------------------...
파일처리_06 신규 파일을 만들지 않고 이미 있는 파일만 파일 갱신일을 바꾸기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: touch
키워드: 타임 스탬프, 신규 파일, 갱신일
사용처: touch 명령어로 타임스탬프를 갱신하는 초기화 스크립트 등에서 존재하지 않는 파일은 새롭게 만들고 싶지 않을 때
실행 예제
$ ./touch.sh
스크립트
#!/bin/sh
# [YYYYMMDDhhmm.SS]로 [년월일시분.초] 지정
timestamp="201311190123.45"
# 파일 타임스탬프 갱신
# -c 옵션이 있으므로 lock 파일은 신규 파일을 만들지 않음
touch -t $timestamp app1.log # -----------...
파일처리_05 파일 내용을 삭제해서 빈 파일로 만들기(null, :(널명령어))
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: :(널명령어), uptime, sleep
키워드: 빈 파일, 초기화
사용처: 스크립트 시작할 때 기록 파일, 임시 파일을 초기화하고 싶을 때
실행 예제
$ ./null.sh
스크립트
#!/bin/sh
# uptime 명령어 기록 파일 정의
uptimelog="uptime.log" # ----------- 1
# 널 명령어로 빈 파일로 초기화
: > $uptimelog
# 10초마다 6번, uptime 명령어 실행
for i in 1 2 3 4 5 6 # ------------- 2
do
uptime >...
195 post articles, 28 pages.