Linux 159

[Linux] gzip - 압축률 확인

개요gzip으로 압축된 파일이 원본 대비 얼마나 압축되었는지 확인하고 싶다. 압축 파일과 압축 해제한 파일의 용량을 비교해 보면 되겠지만, 굳이 압축을 풀지 않고 확인할 수 있는 방법을 알아두면 편한 것 같다.방법을 적어둔다.  압축률 확인gzip 압축 방식에 대해서 작업을 할 때는 gzip 명령을 사용한다. gzip 명령은 파일 압축, 파일 압축 해제, 내용 확인 등의 기능을 제공한다. 그중 압축률 확인은 내용 확인 기능에 해당한다.gzip -l # -l : 압축 파일 내용 나열위의 사진의 경우 압축률이 77.1%인 것을 확인할 수 있다. 여러 압축 파일을 나열하면 각각의 파일 압축률과 전체 파일 압축률을 확인할 수 있다.   참고 문서http://igoni.kr/books/1-os/page/gzip

Linux 2024.11.11

[Nginx] proxy 사용 시 upstream timed out (110: Connection timed out) while reading response header from upstream

현상Nginx를 프록시 서버로 사용하고 있는데 간헐적으로 504 Timeout이 발생하는 것을 확인했다.504 Gateway Time-outnginx원인을 확인하고 해결 방법……이라고 하기 보다는 현상 해소와 관련된 설정값을 적어둔다.   원인관련 로그는 niginx 로그의 proxy-error.log에서 찾을 수 있다.2024/10/17 08:06:01 [error] 1345049#1345049: *1213 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.100.100.100, server: an.internal.example.biz, request: "POST /se..

Linux 2024.11.04

[Linux] uniq - 중복 제거

개요Linux 상에서 여러 행에 걸친 내용을 입력으로 중복된 내용을 제거한 결과를 확인하고 싶다. 방법을 알아보자.  uniquniq 명령은 중복된 내용의 행이 연속으로 나타나는 경우, 중복으로 취급한다.uniq [-option] [filename]때문에 보통 내용을 정렬하는 sort 명령어와 함께 사용된다.   사용 예시아래와 같은 텍스트를 예시로 중복을 제거해보자.batabcappleAbcBALLABcbat 1. 중복 제거sort test.txt | uniquniq 명령은 기본적으로 중복 여부 판단시 대소문자를 구분한다. 중복 항목이었던 bat가 제거된 상태를 확인할 수 있다. 2. 중복된 항목 표시sort test.txt | uniq -d중복된 항목인 bat만 표시되는 모습을 확인할 수 있다. 3...

Linux 2024.10.28

[Tomcat] 응답에 Server 속성값 지정

개요2024.09.05-[Nginx] server_tokens - 서버 정보 명시 여부 결정에서 nginx 사용 시 서버 정보를 노출하지 않도록 설정을 했었다. 비슷한 설정으로 이번 글에선 Tomcat 사용할 때 응답에 server 정보를 설정해 보자.  기본 설정Tomcat 사용할 때의 서버 정보는 conf/server.xml의 Connector 설정에서 지정할 수 있는 것 같다.  설치 후 기본 설정은 위와 같은데, 기본 설치 후 서비스를 시작하여 Tomcat 서버에 접속해 보면 응답 헤더는 다음과 같다.   server 속성응답 헤더에 server 정보를 임의로 지정할 때는 server.xml의 Connector 부분은 server 속성을 추가하면 된다. server 속성은 http 응..

Linux 2024.09.23

[Nginx] server_tokens - 서버 정보 명시 여부 결정

개요최근 API 서버를 구성하면서 nginx를 사용하고 있는데, response header에서 아래와 같이 서버 정보가 노출되어 잇어 삭제해달라는 요청이 있었다.관련 설정에 대해서 적어둔다.  server_tokensserver_tokens는 오류 페이지만 Server의 Response Header에서 nginx 버전의 출력 여부를 결정한다.server_tokens 값설명onnginx 버전 출력. 기본값offnginx 버전 미출력buildnginx 버전 및 빌드 이름 출력   설정 방법Ubuntu 기준으로 /etc/nginx/nginx.conf에서 값을 설정할 수 있다.user www-data;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/m..

Linux 2024.09.20

[Shell] 변수 기본값 설정

개요 쉘 스크립트에서 변수를 초기화화하면 환경변수 등으로 설정된 값을 사용하거나 그렇지 않은 경우가 존재할 수 있다. 때문에 쉡 스크립트에서 변수를 초기화할 때 기본값을 설정하는 방법을 제공해주고 있다. 이 글에서는 변수 선언 시 기본값을 설정하는 방법에 대해 적어둔다. 변수의 상태 쉘 스크립트에서 변수의 상태는 크게 세 가지로 구분할 수 있다. 선언된 변수 값이 NULL이 아닌 변수 값이 NULL인 변수 선언되지 않은 변수 쉘 스크립트는 변수의 상태와 사용한 확장자에 따라 기본값으로 초기화되는 조건이 달라질 수 있다. - / = 참조하는 변수가 선언되지 않은 경우에는 -, :, = 등의 확장자를 사용하여 변수의 기본값을 초기화한다. 확장자 설명 ${VAR-value} VAR이 선언되지 않은 경우, va..

Linux/Shell Script 2024.03.07

[Linux] sshpass - 원격 서버 crontab 설정하기

개요 Bash 쉘 스크립트에서 sshpass를 이용해 원격 서버의 crontab에 스케쥴링 설정을 추가하려고 한다. 방법을 적어둔다 + 기존 항목에서 추가할 항목을 확인하거나 수정하는 등의 작업은 다루지 않는다. 쉘로 crontab 설정 crontab_set_str='crontab에 설정할 내용' (crontab -l 2>/dev/null; echo "$crontab_set_str") | crontab - 동작 방식 1. crontab -l 2>/dev/null : 현재 crontab 항목 확인 2. echo "$crontab_set_str" : 기존 crontab 항목에 추가할 항목 출력. 1번을 함께 고려하면 기존 항목과 같이 출력하는 것이 된다. 3. crontab - : 전달받은 파일, 표준 입력..

Linux 2023.11.24

[Linux] sshpass - 문자열을 원격 서버 파일로 전달하기

개요 Bash 쉘 스크립트에서 변수에 저장되어 있는 문자열을 sshpass를 이용해 원격 서버에 저장하려고 한다. 방법을 적어둔다. 시도 처음에는 다음과 같은 명령어를 사용했다. #!/bin/sh SCRIPT='전달할 문자열' SSH_PASSWD='SSH 비밀번호' SSH_USERNAME='SSH 계정명' IP='원격지 IP' PATH='파일경로' FILE_NAME='파일명' sshpass -p $SSH_PASSWD ssh -p $SSH_PORT -o StrictHostKeyChecking=no -t $SSH_USERNAME@IP 'echo $SCRIPT > $PATH/$FILE_NAME' 하지만 실행했을 때 의도한 대로 동작하지 않고, 원격지 서버에는 빈 파일만 생성되어 있었다. 해결 문자열을 원격지 ..

Linux 2023.11.22

[Shell Script] 데이터 타입과 Test 명령

Shell 데이터 타입과 test 명령 Shell에는 숫자와 문자를 구분하는 데이터 타입이 없고, 사칙연산을 위한 연산자도 없다. 명령문을 구성하는 모든 것은 문자열이고, 산술 연산은 확장이나 명령을 통해 제공된다. 즉, 32와 "32"는 동일하다. 또한 문자열을 다루는 부분에서는 문자열로, 산술 연산을 다루는 부분에서는 숫자로 사용된다. test 명령은 shell Script 작성 시 빠지지 않고 등장하는 표현식으로 보통 조건문에 많이 사용한다. test와 [는 같은 명령이다. test -d /etc; echo $? [ -d /etc ]; echo $? Shell에서 test 명령을 사용할 때는 다음과 같은 점을 주의해야 한다. test 명령 사용 시 주의점 1. 변수 비교 시 qoute 처리 필요 t..

Linux/Shell Script 2023.10.11

[Linux] newgrp - 재로그인 없이 그룹 적용하기

개요 일반 사용자가 도커를 사용할 수 있도록 그룹을 추가했는데, 해당 설정은 바로 적용되지 않고 재로그인을 해야 적용된다. 스크립트로 환경을 세팅하면서 도커도 사용할 수 있었으면 싶어 재로그인 없이 그룹을 적용하는 방법은 없는지 확인해 봤는데, 방법 자체는 존재했다. 바로 newgrp 명령을 사용하는 방법이다. newgrp 사용자의 GID를 변경하는 명령어로, 사용하면 새로운 쉘을 실행하고 사용자의 그룹을 매개변수 group으로 지정한 그룹으로 변경한다. 기본적으로 newgrp 명령은 /etc/passwd에 지정된 그룹으로 변경한다. newgrp [ - ] [ -l] [ Group ] # 예시 newgrp docker newgrp 명령은 GID가 아니라 그룹의 이름만을 인식하고, 변경된 사항은 해당 세션..

Linux 2023.10.09