본문 바로가기

쉘스크립트

(12)
리눅스 부팅시 쉘 스크립트 실행하기 # 리눅스 부팅시 쉘 스크립트 실행하기 1. crontab 편집 모드로 들어간다. crontab -e 2. @reboot 명령을 통하여 실행하고자 하는 스크립트 경로를 입력한다. @reboot /home/test/test/programstart.sh 3. 저장한다. 아래의 매개변수를 사용하여 간단하게 적용 가능하다. @reboot = run at boot and reboot only @yearly = run at midnight Jan 1 each year (equiv to 0 0 1 1 *) @annually = run at midnight Jan 1 each year (equiv to 0 0 1 1 *) @monthly = run at midnight on the first day of each mo..
(Shellscript) 쉘스크립트 Postgresql 오늘날짜로 dump파일 생성하고 해당 파일을 S3 버킷에 전송하기 # 오늘날짜로 Postgresql 덤프파일 생성하기 1. 금일 날짜 얻어오는 방법은 아래와 같다. today=$(date "+%Y%m%d") echo "sample_${today}.txt" > 결과 $ sample_20201031.txt - 오늘 날짜와 시간 구하는 스크립트 echo “오늘시간” time=`date +%Y-%m-%d” “%H:%M:%S` echo $time 2. Postgre dump 파일 생성 - 아래의 명령어로 생성 시 권한 오류가 발생 할 수 있다. pg_dump -U postgres test_db > db_backup.sql - 권한 오류 해결 pg_dump wikijs > ~/db_backup_wikijs.sql cd ~ ~의 경로는 /var/lib/postgresql 이다. -..
Docker Container를 자동으로 종료 및 삭제 후 재 시작하는 스크립트 # Cloud9을 개발환경으로 구성하게 되면 생기는 문제점 - Spot 인스턴스의 한계 Spot 인스턴스는 말 그대로 사용시 에만 동작을 하는 구조이다. 그래서 디폴트 30분이 지나면 자동으로 "중지" 상태로 돌아간다. 문제는 중지가 되었을때, 기존에 실행중이던 애플리케이션은 종료가 되거나, 없어진다는 점이다. # 해결방법 1. 아래와 같이 간단하게 스크립트를 작성 후 Cloud9이 꺼지거나 실행할때마다 스크립트 파일을 실행해주는 방법이 있다. - 파일 생성 : vim auto_start.sh - 파일 실행 : sh auto_start.sh ### Dpcker 전체 컨테이너 삭제 ### #-- 현재 실행중인 docker 컨테이너 조회 docker ps -a #-- 현재 실행중인 docker 컨테이너 전체..
sleep (지연) sleep 명령어 사용법 sleep 1 # 1초 일시 정지 sleep 1s # 1초 일시 정지 sleep 1m # 1분 일시 정지 sleep 1h # 1시간 일시 정지 sleep 1d # 1일 일시 정지 위와 같이 sleep 명령어에 s(초, second), m(분, minute), h(시간, hour), d(일, day) 단위로 원하는 값을 입력하면 해당 시간만큼 프로그램을 일시정지한다. 따로 단위를 붙히지 않으면 기본적으로 초 단위로 인식을 한다. eks 에서 자원 리소스 실행시 sleep 명령어 사용하여 적용하기 deployment 후 5초간 지연, delete 후 5초간 지연 후 kubectl로 pod를 조회하면 명령어 이다. kubectl delete -f deployment-api-dev.ya..
xargs xargs 명령은 두개 이상의 명령어를 조합할 때 아주 요긴하다. 앞 명령어의 결과를 다음 명령어의 입력으로 넘기는 파이프(|)와 함께 사용함으로써, 앞 명령어의 출력값을 다음 명령어의 인자(argument)로 넘길 수 있기 때문이다. 예제 1. ls 명령으로 파일 목록을 출력하고, 해당 목록에서 .bak 파일만 골라서 rm 명령으로 삭제 # .bak 파일 확인 ls | grep "\.bak$" # .bak 파일을 rm 명령으로 삭제 ls | grep "\.bak$" | xargs rm ls와 grep의 조합으로 삭제할 대상 파일명을 추려낸 후에 이것을 rm 명령의 인자로 넘기는 것이다. 별도의 옵션이 없을 경우 이전 명령에 의한 출력값은 xargs 명령에서 가장 끝으로 가게 된다는 점에 유의하자. 2...
복사, 이동 및 폴더내 갯수 카운팅 폴더내 파일을 다른 폴더로 이동 mv /data/file/IF/AAA/AAA/*.* /data/file/IF/BBB/ 폴더내 파일을 다른 폴더로 복사 cp /data/file/BACKUP/AAA/AAAAA/*.* /data/file/RECV/BBB/ 응용 경로를 변수로 설정하고, 변수로 값을 받아 mv 명령어로 이동 작업을 수행 # 실 환경 작업 루트 디렉토리 ROOTDIR=/forder_01/DATA/FILE/AA/RECEIVE # 복사 작업 디렉토리 TARGETDIR=/forder_02/EXPORT/COPY # 전송디렉토리로 AAA BBB DAT 가 포함된 파일을 이동 mv $ROOTDIR/*AAA*BBB*DAT $TARGETDIR # 권한 변경 chown AAA:BBB $TARGETDIR/*DAT ..
Crontab 크론탭 설정 # 3시간마다 실행하는 크론탭 설정 crontab -e 실행 명령 옵션 설명 (날짜, 시간, 분, 주 등등) crontab -l : 크론탭 리스트 확인 M H DOM MON DOW Command M : 분 H : 시간 DOM : 일 MON : 월 DOW : 주 EX ) 매일 오전 4시 1분에 명령을 실행하라. 1 4 * * * /usr/bin/somedirectory/somecommand EX ) 1분마다 실행하라 */1 * * * * /usr/bin/somedirectory/somecommand → 실제 3시간마다 동작하는 crontab 작성 → : 0 */3 * * * /usr/bin/somedirectory/somecommand
폴더 및 파일 삭제 파일 삭제 rm [파일명] 폴더 삭제 rm -r [폴더명] 하위 파일까지 삭제 rm -f [폴더명] 안물어보고 강제 삭제 rm -rf [폴더명]