🌏 OS/Linux

🌏 OS/Linux

[Shell Script] 파일 내용 여부에 따라 명령어 실행하기

[Shell Script] 파일 내용 여부에 따라 명령어 실행하기 명령어를 실행할 때, 로그인을 해서 토큰을 받아와야하는 경우나, 매 시간마다 인증을 받아야 하는 경우에 매번 스크립트를 실행할 때마다 인증을 받기는 매우 귀찮다. 그래서 토큰 파일에 내용이 있으면 로그인 명령을 실행하고, 그렇지 않으면 다음 커맨드를 실행하는 스크립트를 생성하기로 결정😉 처음엔 파일의 크기를 이용하는 방식으로 짰음 token_file="~/token_file" if [[ ! -s "$token_file" ]]; then $command_to_run else echo "File exists. Skipping command execution." fi 위 스크립트에서 ! -s 조건은 파일이 존재하고 크기가 0보다 큰지를 확인한다..

🌏 OS/Linux

[Linux] SSH 설정 변경, 포트 변경

[Linux] SSH 설정 변경, 포트 변경 SSH 설정을 변경하려면 먼저 SSH 구성 파일에 액세스를 해야함 대부분의 리눅스 시스템에서 SSH 구성 파일은 '/etc/ssh/sshd_config'에 위치함 'sshd_config' 파일은 SSH 서버의 구성 파일로, OpenSSH 서버에서 사용됨 이 파일을 수정하여 SSH 서버의 동작을 변경하거나, 사용자 인증 및 보안 설정을 조정할 수 있음 1. 설정 변경 SSH 구성 파일을 연다 sudo vi /etc/ssh/sshd_config 주요 옵션은 아래와 같음 옵션 설명 Port SSH 서버가 수신 대기하는 포트 번호 ListenAddress SSH 서버가 바인딩할 IP 주소 PermitRootLogin root 계정으로의 SSH 로그인 허용 여부 Pas..

🌏 OS/Linux

[Linux] 시스템 로그

[Linux] 시스템 로그 로그 커널과 리눅스 시스템이 제공하는 여러 서비스와 응용 프로그램이 발생시키는 메시지 로그를 저장하고 있는 파일이 로그파일, 대부분 /var/log 디렉터리에 위치 로그 파일을 통해 시스템의 상태를 확인 가능 리눅스 시스템 로그 rsyslog 구성 파일 /etc/rsyslog.conf my info 생성 리눅스 저널 로그 journalctl 기존의 syslog 형식에 따라 로그를 저장 저장된 로그에 접근하기 위해 journalctl 명령 사용 ⇒ 바이너리 파일이라 cat으로 읽을 수 없음 저널에서 message 파일을 대체하는 것이 journalctl 명령 재부팅 시 로그가 삭제됨 ⇒ /var/log/journal 디렉토리에 저장하면 영구보존 journalctl #저널 로그 확..

🌏 OS/Linux

[Linux] 볼륨 파티션, 포맷, 마운트 (2)

[Linux] 볼륨 파티션, 포맷, 마운트 (2) 저번 포스팅에서 신규 볼륨을 연결 한 후 파티션을 나누는 작업까지 해보았다. 이어서 포맷과, 마운트까지 진행해보자 Let's go~💃 1. 볼륨 생성 및 디스크 파티션 관리 https://heywantodo.tistory.com/89 저번 포스팅 참고! 2. 포맷 포맷이란? 디스크나 파티션에 파일 시스템을 생성하는 작업을 의미함 포맷을 통해 파일 시스템은 디스크 또는 파티션의 논리적인 구조를 설정하고, 데이터를 저장할 수 있는 형식으로 초기화됨 리눅스에서 사용되는 주요 파일 시스템 포맷 파일 시스템 설명 장점 단점 ext4 널리 사용되는 기본 파일 시스템으로 안정성과 성능이 뛰어남 안정성, 성능, 확장성 큰 파일 시스템에는 적합하지 않음 XFS 고성능 파..

🌏 OS/Linux

[Linux] 볼륨 파티션, 포맷, 마운트 (1)

[Linux] 볼륨 파티션, 포맷, 마운트 ✔ 신규 볼륨으로 AWS EBS 사용 EBS는 볼륨을 늘리는 것은 쉽게 가능하지만 줄이는 것은 굉장히 어려우니, 처음부터 불필요 한 용량의 너무 큰 볼륨 디스크를 사용하는것은 지양 그리고 가용영역이 똑같아야함!! 가용영역이 다르면 스냅샷으로 옮기는 방법이 있긴하지만 매우 번거로우니 ec2가 올라간 곳과 동일한 가용영역에 볼륨을 생성 볼륨을 연결 한 후 lsblk 명령어를 사용하면 disk가 잘 붙은 모습을 볼 수 있다. 하지만 아직 파티션과 포맷이 되지 않은 상황 파티션 -> 포맷 -> 마운트까지의 절차를 지금부터 알아보자 1. 디스크 파티션 관리 ⚠ 파티션을 조작할 땐 신중해야 한다. 잘못된 조작은 데이터 손실이나 시스템 오작동을 유발할 수 있다. 그리고 반드..

🌏 OS/Linux

[Linux] Disk 관리

[Linux] Disk 관리 디스크 용량 단위 운영 체제는 저장 장치의 단위로 바이트(Byte)를 사용 리눅스 시스템 전체의 디스크 사용량 확인 #파티션을 기준으로 디스크 사용량을 출력 df #파일이나 디렉토리를 기준으로 디스크 사용량을 출력 du 용량을 메가(MB) 기가(GB) 단위로 표시 (기본 단위는 KB) df -h 파일이나 디렉토리를 기준으로 디스크 사용량 확인 디스크 디바이스 정보 1. 디스크 디바이스 이름 확인 sda, sdb, sdc, sdd 등으로 확인 루트전용은 앞에 x가 붙음 (ex. xvda, xvdf, xvdg) 등 2. 논리적으로 분리된 디스크 파티션 확인 sda -> sda1, sda2 xvda sda -> xvda1, xvda2 리눅스 디스크 디바이스 확인 lsblk #전체 ..

🌏 OS/Linux

[Linux] 원격 접속하기 & 파일 전송하기 (SSH, SCP)

[Linux] 원격 접속하기 & 파일 전송하기 (SSH, SCP) SSH : 원격으로 다른 컴퓨터에 로그인 할 때 사용되는 프로토콜 SSH 로그인 ssh 유저명@호스트명 또는 IP주소 ssh ubuntu@172.0.0.1 포트 번호 지정 ssh -p 포트번호 유저명@호스트명 또는 IP주소 ssh -p 2222 ubuntu@172.0.0.1 연결 종료 exit SCP : 원격 호스트와 로컬 호스트 간 파일을 복사하기 위한 프로토콜 1. 원격 호스트 -> 로컬 호스트 원격 머신의 "/home/ubuntu/test.txt" 파일을 로컬 머신의 "/tmp/" 디렉토리로 복사 ssh 유저@호스트: scp ubuntu@example.com:/home/ubuntu/test.txt /tmp/ 2. 로컬 호스트 -> 원..

🌏 OS/Linux

[Linux] 리눅스 파일 압축

[Linux] 리눅스 파일 압축 tar Archiving : 원본의 속성을 그대로 보존하면서 여러개의 파일/디렉토리 묶어서 보존(Backup) tar 특정 디렉토리 안의 파일을 하나의 Archive 파일로 묶어 보관 tar -f file 새롭게 만들 아카이브 파일의 이름을 지정할 때 사용 (기본 옵션) -c create 새로운 아카이브를 생성, 기존 아카이브 덮어쓰기 (파일 묶을 때 사용) -t list 아카이브 파일에 포함된 내용 출력 -v verbose 처리되는 과정(파일 정보)를 자세히 나열 -x extract 아카이브 파일을 해제 zip Compression : 큰 사이즈의 파일을 작은 사이즈로 압축해서 보존 zip 하나의 파일로 묶어주고(Archiving) 무손실 압축(Compression)을 ..

🌏 OS/Linux

[Linux] 리눅스 크론탭 스케줄 (Crontab Schedule)

[Linux] 리눅스 Crontab 크론탭 유닉스, 리눅스, 맥OS 등의 운영체제에서 사용되는 작업 예약 프로그램 일정 시간마다 실행 될 커맨드나 스크립트를 정의 할 수 있음 자동적으로 실행 될 작업을 관리할 수 있도록 도와줌 크론탭 구성 (리눅스의 시간) * * * * * 순서대로 분 시 일 월 요일 분 0~59 시 0~23 일 1~31 월 1~12 요일 0 1 2 3 4 5 6 7 (0과 7 둘다 일요일) ' * ' 는 해당 필드의 모든 시간을 의미 콤마(,) 로 구분하여 여러 시간대를 지정할 수 있음 하이픈(-) 으로 시간 범위를 지정 할 수 있음 (ex. * 2-10 * * *) 슬래쉬(/)로 시간 간격을 지정할 수 있음 (ex. */3 * * * *) 크론탭 기본 명령어 예약된 작업 리스트 출력..

🌏 OS/Linux

[Linux] 리눅스 쉘 프로그래밍 (2)

리눅스 쉘 프로그래밍 (2) 1. 조건문 쉘 스크립트 조건문 if-then-fi 조건 명령어, command 실행 결과에 따른 서로 다른 command를 실행 if grep 계정명 /etc/passwd &> /dev/null then 계정이 존재합니다 else 계정 생성 fi case $var의 값에 따라 선택해서 명령어를 실행 echo -n "What do you want?" read answer case $answer in yes) echo "System restart.";; no) echo "shutdown the system.";; *) echo "entered incorrectly";; esac 2. 반복문 쉘 스크립트 반복문 while 다음의 command가 성공하는 동안 do~done 사이의..

🌏 OS/Linux

[Linux] 리눅스 쉘 프로그래밍 (1)

리눅스 쉘 프로그래밍 1. 리눅스 Shell Script 리눅스 쉘 스크립트 리눅스 command들을 모아 놓은 ASCII Text 파일 실행 퍼미션을 할당해야 실행 가능 (chmod) Shell 구문은 기본 top-down 방식으로 해석해서 실행됨 ✔ #으로 시작하는 line은 comment (주석) ✔ #!/bin/bash를 최상단에 적어줘야지 bash로 실행 가능 위치 매개 변수 Positional Parameters $1, $2, $3와 같은 변수에 저장되어 Script에 전달 2. Input & Output echo 문자열이나 변수를 출력하는 명령어 echo 옵션 메세지 -n : 메시지 출력 후 newline 문자를 추가하지 않음 -e : backslash escape 문자를 해석하여 특별한 의..

🌏 OS/Linux

[Linux] 리눅스 Shell 명령어

리눅스 Shell 명령어 1. 리눅스 Shell Shell Shell 명령어 해석기 사용자가 프롬프트에 입력한 명령을 해석해서 운영체제에게 전달 Shell의 종류 Bourne shell (sh) AT&T 벨 연구소의 스티븐 본이 개발한 오리지널 셸 C Shell (csh, tcsh) Bill joy가 C언어의 기술을 넣어 만든 셸 C언어의 문법을 적용 Korn shell (ksh) David Kom이 기존 sh에 csh의 기능을 포함시켜 생성 Bourne-again shell (bash) GNU Project로 만들어 짐 csh, ksh이 가진 기능을 포함하면서 sh와 호환성을 많이 높임 사용 가능 한 Shell 리스트 확인하기 cat /etc/shells 현재 로그인 한 Shell 확인하기 echo $..

heywantodo
'🌏 OS/Linux' 카테고리의 글 목록 (4 Page)