티스토리 뷰

어제는 압축 관련 명령어들과 검색 기능을 가진 명령어들에 관하여 배웠다.

 

저번 포스팅에 아마존 리눅스 2023상에서 RSA 키가 인증이 안 된다고 했었지만, 된다는 제보가 들어와서 진행해 보았다.

 

오전 시간의 목표는 aws 인스턴트 2개를 실행하여 각각 RSA 인증방식과 ED25519 인증 방식을 사용하여 xshell으로 공개키 인증 방식으로 진입하는 것이 1차 목표이다.

 

2차 목표는 각각의 2개의 리눅스에 서로 다른 DB인 MariaDB와 mysql을 설치하는 것이 2차 목표이다.


/etc/ssh/sshd_config : ssh 서버 메인 설정 파일

PasswordAuemtocation

PubkeyAuthentication

permitRootLogin

 

일반적으로 설정 파일에서 

 

# :띄어쓰기가 있으면 설명
#:옵션

 

라고, 생각하면 된다.

 

저번에 했던 진행 방식을 그대로 따라서 해주면 된다.

 

/home/mega/.ssh/authorized_keys
의 약속을 지켜서 설정해 줘야 한다.

 

.ssh

700

authorized_keys

664


1 ssh-rsa -key value-
2 ssh-ed25519 -key value-

로 만들어주면 된다.

mkdir -m 700 .ssh
으로 바로 permission 값을 수정 가능하다.

 

 

아웃바운드 규칙은 모든 ip, 모든 프로토콜을 허용하는 규칙이 하나는 있어야 한다.

 

전에 배운 ACL 구문에서 최소한의 허용 구문이 하나는 있어야 한다는 것과 같은 개념인 것 같다.

 

일단 mariadb는 잘 실행이 되는 것 같다.

 

여기서 필자는 엄청난 실수를 저질렀는데 RSA 방식과 ED25519 방식의 리눅스가 있을 때 

 

당연히 RSA 방식을 먼저 사용하여 mariadb를 설치할 줄 알았는데 ed25519방식으로 설치하셨다.

 

뭐 그것까지는 문제가 없지만 clear를 눌러놓고 잊고 다시 RSA방식의 vm에 설치를 해버려서 고생을 좀 했다.

 

아무튼 mariadb를 지우고 mysql을 설치한 모습이다.

 

 

이 프로그램은 WinSCP인데 두 운영체제에서 파일을 옮기는 것을 도와주는 프로그램이다.

 

리눅스 -> 윈도우
윈도우 -> 리눅스 파일 이동

 

sql 진입 방법

mysql -h 서버_ip -p 3306 -u 계정명 -p 암호 DB명
mariadb -h 서버_ip -p 3306 -u 계정명 -p 암호


first party : /usr

third party : /opt 추가적인 단체들

 /var  Variable(가변)
/var/log/mysql---- 에서 grep으로 password 찾고


mysql -h 서버_ip -p 3306 -u 계정명 -p 암호 DB명


예약 작업

주기적으로 해야 하는 작업을 그 시간에 생각해서 하긴 어렵다.

at : 일시적으로 한 번만 예약

cron : 주기적인 예약

at : 일시적인 1번만 예약 
------
상대적 시간 지정법

사용법)  at [시간]
at now + 1 min :1분 뒤
at now + 2 hour :2시간 뒤

그만 치고 싶을 때 ctrl + d




at 18:00 :오후 6시 실행
at 06:00pm 현재 6시 전이면, 오늘 실행
 현재 6시 이후면, 내일 실행

at 18:00 tomorrow :내일 오후 6시
---------
절대적

at 2025-03-08 12:00


date +%Y-%m-%d_%H%M
2025-02-07_1256

 

차이점
"" 특수문자를 해석
' 무시
` 명령어

 

file-일자-tar.gz

 

이런 식으로 변수 사용이 가능하다.


DATE=`date +%Y-%m-%d_%H%M`
DATE라는 변수에 포맷된 일자를 넣고

tar cfz /backup/backup-$DATE.tar.gz /etc
/etc 파일을 묶어서 gzip으로 압축해서 backup-DATE값.tar.gz 파일이름으로 만들어라

 

시간이 지남에 따라 파일이 생성되는 것을 볼 수 있다.

at list 보기
at -l, atq

 

at 예약 작업 지우기 
at -r 번호, atrm 번호

 

 


cron : 주기적인 작업 예약

 

요일이 들어간 순간 주와 관련이 생긴다.
1-5은 월~금을 포함한 것


 

1. 사용자 cron
             ㄴ crontab 명령어로 작업
                          $ crontab -e :반복 작업 편집(등록)
                          $ crontab -l :반복 작업 확인
                          $ crontab -r :반복 작업 제거

                          # crontab -u 계정   -e  :타 사용자의 반복 작업 편집(등록)
                                                         -l  :타 사용자의 반복 작업 확인
                                                         -r  :타 사용자의 반복 작업 제거

 

 

편집 시 변수를 잘 사용해 주면, 가독성에 매우 큰 효과를 볼 수 있다.

 

1. path에 적기
2. 절대경로로 지우기
홈디렉토리를 path에 등록

 

환경변수에 입력하지 않았을 시 실행이 안 될 수 있다.

PATH에 등록이 안돼있으니, 등록을 하던가 아니라면 간단하게 위치를 알려주며 실행해 주면 된다.

./workday.sh <== 위치를 보여주기

 

시간을 바꿔가며 4시마다 파일을 만드는지 확인한 그림이다.


2. 시스템 cron : 보통 root가
         ㄴ /etc/crontab 파일 편집

 

 

현재는 /etc/cron.d/파일명을 만들어서 개별적으로 작업별로
파일을 만들어서 작성한다.

명령어란에 스크립트(실행) 파일을 직접 입력해도 되고,
run-parts 옵션과 절대 경로를 입력해도 된다.
단, run-parts로 설정된 옵션은 해당 경로에 실행을 넣기만하면 자동으로 실행된다.

 

1. 파일 실행
/etc/cron.d/0

2. 디렉토리안에 넣어서 실행

 

df ==> 디스크 확인
ssd = nvme

awk
sed

 

 

이름만 봐도 느낌이 온다.

 

이 폴더 안에 넣어두면 적힌 주기마다 실행을 시켜준다.

 

실행이 잘 되는 것을 볼 수 있다.




리다이렉션

: 출력이나 입력의 방향을 전환하는 용도로 사용한다.



 사용법
명령어 > 파일명 : 명령어의 정상 실행 결과를 파일명에 저장, 
기존의 동일 이름의 파일이 있으면 제거하고 새 파일을 생성

명령어 >> 파일명 : 명령어의 정상 실행 결과를 파일명에 저장, 
기존의 동일 이름의 파일이 있으면 기존 내용 아래에 추가 붙여넣기함


명령어 2> 명령어 : 명령어의 에러 결과만 파일에 저장




명령어 : 명령어의 실행 결과를 모니터(표준 출력)로 출력한다.

명령어1 > 파일명 명령어1의 출력을 모니터가 아닌 파일명으로 출력(저장)

명령어 2> 파일명 명령어 실행 시 오류 메시지를 모니터가 아닌 파일명으로 출력(저장)

명령어 < 파일명 반복적으로 입력되는 내용들을 키보드가 아닌 파일에 저장해놓고, 
명령어 실행 시 파일 내용을 읽어 들여 입력처리 한다.

date



명령어 실행 시 추가적인 입력이 필요할 경우 
키보드(표준 입력)로 통해 입력된다.
명령어 < 파일명 명령어 실행 시 추가적인 입력이 파일의 내용으로 입력된다.




/etc/mail/access.db
ㄴ 파일을 메일서버가 메일 수신 시 송신자의 계정명 또는 도메인명 또는 IP주소 등을 조사하여 메일 수신할지, 거부할지, 반송할지를 해당 파일을 참조하여 결정하는 파일이다.
/etc/mail/access.db 파일은 사람이 직접 읽고 쓸 수 없는 파일이다.

makemapasp 명령어로 사용자의 입력을 access.db 로 생성해야 한다. 




@naver.com
ㄴ네이버도메인 받고

메일 서버는 다시 쓰려면 처음부터 다시 써야 한다.

 

하지만 앞에 나온 명령어 < 파일방식을 사용해서 파일을 관리하는 방식으로 적는 시간을 크게 단축할 수 있다.


strings 기계어를 최대한 해석해서 보여준다.