본문 바로가기

Linux96

[Bash] 쉘 스크립트에서 사용자 입력 받기 (read 명령어 사용법) 쉘 스크립트를 작성하다보면 사용자의 입력을 받아야 하는 경우가 있다. Bash에서는 read 명령어를 이용해 사용자로부터 입력을 받을 수 있다. read 명령어로 사용자 입력 받기 사용자로부터 입력을 받기위해 read 명령어를 사용할 수 있다. read 명령어를 사용하는 예제를 살펴보자. #!/bin/bash echo "What is your name?" read name echo "Hello, $name!!" 사용자로부터 이름을 입력받아 인사를 하는 간단한 예제다. 이를 실행하면 다음과 같은 결과를 얻을 수 있다. $ bash test.sh What is your name? Dave Hello, Dave!! 두개 이상의 입력 받기 하나의 read 명령을 이용해 두 개 이상의 입력을 받을 수 있다. 공백.. 2022. 8. 27.
[Linux] ssh 터널링(ssh port forwarding) - Local / Remote / Dynamic Tunneling sh는 Secure SHell의 줄임말로 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜이다. 당연하게도 ssh는 원격 호스트로 접속하기 위해 가장 많이 사용된다. 그런데 ssh는 원격 호스트로의 접속과 더불어 ‘SSH Tunneling’ 혹은 ‘ssh port forwarding’이라는 재미있는 기능을 제공한다. SSH Tunneling(SSH Port Forwarding) 편의상 이후에는 그냥 SSH 터널링이라고 부르겠다. SSH 터널링은 프록시와 비슷한 역할을 한다. SSH 터널링을 사용할 수 있는 상황에 대한 예를 들어보겠다. Host A에서 Host B로 접근할 일을 생각해보자. Host A에 있는 어떤 앱의 클라이언트는 Host B에 있는 서버에 접속해야한다. 하지만 언제나 그렇듯 보안상 .. 2022. 6. 7.
[Linux] sar 명령어 사용법 - 디스크 IO 모니터링 sar 명령어는 System Activity Report의 약자로 시스템의 CPU, 메모리, 입출력 사용량 정보를 수집하고 리포팅하는 명령어다. 시스템의 리소스 사용 이력을 모니터링하고 파일에 저장한 후 리포팅 할 때 많이 사용한다. sar 설치 sar는 sysstat 패키지를 통해 설치할 수 있다. sysstat 패키지에는 sar를 비롯해 iostat, pidstat, mpstat 명령어가 포함되어 있다. $ sudo apt install sysstat $ sudo yum install sysstat sar 명령어 사용법 sar 명령어는 다음과 같은 문법으로 사용한다 $ sar [옵션] [인터벌] [횟수] 인터벌과 횟수 정보를 입력하지 않으면 시스템에서 기본적으로 수집하고 있는 지표를 보여준다. $ s.. 2022. 6. 5.
[Linux] iotop 명령어 사용법 - 디스크 사용량 모니터링 리눅스 시스템에서 디스크 입출력을 어떤 프로세스가 많이 유발하는지 모니터링해야 할 경우가 있다. 이 때, iotop 명령어를 사용하면 된다. iotop 설치 $ sudo yum install iotop iotop 명령어 사용법 iotop 명령어는보안 문제때문에 root 권한 혹은 NET_ADMIN capability를 필요로 한다. top 명령어를 실행하면 각 프로세스의 CPU 사용량과 메모리 사용량을 모니터링할 수 있는 것처럼 iotop 명령어를 실행하면 각 프로세스들의 디스크 입출력 정보를 모니터링할 수 있다. $ sudo iotop Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s Current DISK READ: 0.00 B/s | Current D.. 2022. 6. 4.
[Linux] iostat 명령어 사용법 - 디스크 사용량 모니터링 iostat는 디스크 입출력에 대한 통계정보를 측정할 수 있는 명령어다. 처리량이나 사용률, 대기열 길이와 트랜잭션 비율 그리고 서비스 시간 등의 정보를 확인할 수 있다. 리눅스 시스템을 운영하면서 갑자기 서버에 부하가 높다던가 서버의 응답속도가 저하되는 경우가 발생할 때 디스크 입출력에서 문제가 생긴게 아닌지 모니터링하고 문제를 찾을 수 있다. 목차 iostat 설치 iostat은 sysstat 패키지를 설치하면 사용할 수 있다. $ sudo yum install sysstat or $ sudo apt install sysstat iostat 사용법 iostat 명령어를 이용하면 디스크 디바이스에 대한 입출력 정보를 확인할 수 있다. $ iostat [옵션] [인터벌] [횟수] iostat의 옵션 뒤에.. 2022. 6. 3.
[Linux] apt와 apt-get 차이점 apt는 Advanced Packaging Tool의 약자로 우분투 같은 데비안 계열의 리눅스에서 사용하는 패키지 관리자다. 우분투 같은 데비안 계열의 리눅스에서 패키지를 설치할 때 apt install 혹은 apt-get install 을 사용한다. 어떤 글에서는 apt install을 사용하도록 설명되어 있고, 또 다른 글에서는 apt-get install을 사용하라고 설명되어 있다. apt와 apt-get은 어떤 차이일까? apt vs. apt-get 결론적으로 말하면 apt와 apt-get은 큰 차이가 없다. 그냥 내키는 대로 사용하면 된다. 원래 우분투를 비롯한 데비안 계열의 리눅스에서는 apt-get이나 apt-cache 같은 툴이 사용되어왔다. 오랜기간 사용되다보니 다양한 기능들이 추가되어 .. 2022. 6. 2.
[Linux] CentOS Failed to download metadata for repo ‘appstream’ 해결방법 CentOS에서 패키지 관리자인 yum이나 dnf를 사용하다가 'Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist'를 만나게 되는 경우가 있다. $ sudo yum update -y CentOS Linux 8 - AppStream 35 B/s | 38 B 00:01 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist CentOS를 위한 패키지 저장소의 주소가 잘 못되었거나 주소에 접속할 수 없기 때문.. 2022. 5. 26.
[Linux] CentOS 6,7,8 지원 종료 및 CentOS Stream 소개 CentOS는 'Community Enterprise Operating System'의 약자로 RHEL(RedHat Enterprise Linux)를 완벽하게 호환하는 오픈소스 리눅스 프로젝트다. RHEL의 안정성을 그대로 가져오면서도 무료로 사용할 수 있어 수 많은 개발환경과 서비스 환경에 설치되어 사용되고 있다. CentOS는 독립적인 오픈소스 프로젝트로 운영되어 오다가 2014년 RedHat에 인수된다. 상용 리눅스 RHEL을 만드는 RedHat에 인수되면서 CentOS가 언젠가는 서비스 종료되는게 아니냐는 우려가 있었는데 결국 2020년 CentOS의 서비스 정책이 변경되었다. 이제 CentOS 6, CentOS 7, CentOS 8 같은 버전들의 배포판은 사라지고 CentOS Stream이라는 .. 2022. 5. 25.
[Linux] atime, ctime, mtime 차이점 리눅스 파일에는 'atime', 'ctime', 'mtime' 3가지 시간 정보가 있다. 각각 Access Time, Change Time, Modify Time을 의미하는 시간이다. 파일 시스템에서 파일을 조회하거나 수정 날짜를 확인할 때, 이 세 가지 시간의 정확한 차이점을 알고 있어야 잘 못된 파일을 지우거나하는 일이 발생하지 않는다. atime (Access Time) atime은 파일에 마지막으로 접근(Access)한 시간을 기록한다. 파일이 어떤 명령어나 스크립트, 프로그램에 의해 열리거나 읽혔을 때 갱신된다. vi나 emac 같은 에디터 프로그램뿐만 아니라 cat, tail 같은 명령어에 의해 읽힌 경우에도 갱신된다. Access Time의 경우 너무나도 자주 갱신이 된다. 파일에 접근할 때.. 2022. 2. 28.