Bash 스크립트 병렬 처리 — xargs -P와 GNU parallel 실측 비교
로그 압축, 이미지 변환, 체크섬 검증처럼 파일 수백 개를 도는 배치 스크립트를 for 루프로 짜면 코어가 6개든 32개든 하나만 쓴다. &로 전부 백그라운드에 던지면 이번엔 수백 개 프로세스가 한꺼번에 떠…
쉘 스크립트 관련 Tips
로그 압축, 이미지 변환, 체크섬 검증처럼 파일 수백 개를 도는 배치 스크립트를 for 루프로 짜면 코어가 6개든 32개든 하나만 쓴다. &로 전부 백그라운드에 던지면 이번엔 수백 개 프로세스가 한꺼번에 떠…
처음 터미널 창을 마주하면 깜빡이는 커서 앞에서 뭘 입력해야 할지부터 막막하다. 온라인 가이드마다 "터미널을 열고 이 명령을 입력하세요"라고 나오는데, 정작 경로가 뭔지, 파이프(|)가 뭔지, sudo를 왜 조심해야 하는지는 설명 없이…
cron 배치가 예상보다 오래 걸려 다음 스케줄과 겹치면, 두 인스턴스가 같은 파일에 동시에 써서 데이터가 꼬이는 사고가 난다. PID 파일로 막는 방식은 프로세스가 비정상 종료되면 파일만 남아 다음 실행을 영영…
Bash 기본 동작은 명령 하나가 실패해도 스크립트가 멈추지 않고 다음 줄로 넘어간다. mkdir가 실패했는데 그다음 cd와 rm -rf *가 엉뚱한 디렉터리에서 실행되는 식의 사고가 여기서 나온다. set -euo pipefail은 이…
쉘 스크립트에서 $1, $2를 순서대로 읽는 방식은 옵션이 두세 개만 넘어가도 순서를 착각하기 쉽고, 필수 옵션 누락 같은 실수를 걸러낼 방법이 없다. 공백으로 이어붙인 문자열을 IFS로 잘라 쓰는 방식도 값…
배포 스크립트가 Ctrl+C나 SIGTERM으로 중간에 끊기면 임시 파일이 /tmp에 남고, lock 파일이 안 지워져 다음 실행이 죽고, 쓰다 만 결과 파일이 완료된 것처럼 남기도 한다. Bash의 trap은 시그널을 받거나 종료될…
sed는 스트림 편집기(stream editor)로, 텍스트 스트림을 편집하고 변환하는 데 사용되는 강력한 도구이다. sed는 주로 리눅스 및 유닉스 환경에서 활용되며, 특히 스크립트 및 대량 텍스트 처리에 유용하다. 이 글에서는 sed 사용법에…
리눅스 환경에서 프로세스 이름을 얻는 방법은 여러 가지가 있다. C 프로그래밍 언어에서 프로세스 이름을 얻는 방법과 터미널 명령어를 사용하여 프로세스 이름을 확인하는 방법에 대해 알아본다. C에서 프로세스 이름 얻기 C…
Linux 환경에서는 seq라는 명령어를 사용하여 숫자 시퀀스를 생성할 수 있다. 이를 통해 반복 작업을 수행하거나 특정 범위의 숫자를 생성할 수 있는데, 이를 활용하면 쉘을 수행하거나 쉘스크립트 작성에 도움이 된다. 이…
find 명령어는 리눅스/유닉스 계열 운영체제에서 파일 및 디렉토리를 검색하는데 사용되는 강력한 도구이다. 이 명령어는 다양한 옵션을 통해 다양한 케이스에서 유연한 검색을 가능하게 해준다. 이 글에서는 기본 사용법과 자주 사용되는 예제들을…