2022. 1. 6. 19:59ㆍ회고
가상머신 리눅스 요구사항 :
- 각자 컴퓨터 환경에서 사용할 수 있는 가상 환경(Virtual Machine)에서 리눅스 운영체제를 설치한다.
- 가상 환경에 원격으로 접속할 수 있도록 ssh 설정을 하고, root 계정 이외에 본인 접속할 계정을 추가한다.
- 본인 계정에 대한 패스워드를 설정한다.
- 로컬 컴퓨터에서 가상 환경 리모트 컴퓨터에 ssh로 접속해서 본인 계정으로 로그인한다.
- 본인 계정에서 /backup 디렉토리를 생성하고 764 모드로 접근 권한을 바꿔서, 본인 계정으로 쓸 수 있도록 설정한다.
- 리눅스를 설치하고 가상 환경에서 터미널을 열고 date 날짜를 오늘 날짜로 출력한 상태로, 화면을 캡처한다.
<ssh 접속하기>
사용한 명령어 :
$ sudo apt update
$ sudo apt install openssh-server
[openssh-server] 를 설치
$ sudo systemctl enable ssh
$ sudo systemctl start ssh
[ssh server] 실행
우분투는 기본적으로 ssh client가 설치되어있음.
< root 계정 이외에 본인이 접속할 계정 추가 >
sudo adduser <username>
명령을 사용해서 유저 생성, 기타 정보는 공백으로 두고 생성한다
다시, root계정이 접속했던 것과 동일하게
< backup 디렉토리 생성 후 764 권한 >
764가 의미하는바
r 실행, w 쓰기, x 실행
chmod와 권한 관련내용 : https://recipes4dev.tistory.com/175
< 날짜 출력 >
쉘 스크립트 요구사항 :
- 내 PC의 특정한 디렉토리 아래 day1 부터 day16까지 문제 해결을 저장한 디렉토리가 있다고 가정한다.
- 각 디렉토리 아래에는 작업한 소스 파일들이 들어있다.
- 작업한 소스는 a.cs 처럼 파일 내용은 없어도 되고, 확장자가 cs로 끝난다.
- bash 셀 스크립트로 현재 디렉토리 아래있는 day1에서 day16 디렉토리 중에서 있는 .cs 파일만 zip으로 압축해서 백업하는 스크립트를 자동화해서 구현한다.
- 백업 파일이니까 어떤 제약사항이 있는지 고민해본다.
- 디렉토리 정보를 포함해야 하나? 다른 디렉토리에 파일이름이 겹칠 수 있나?
- 스크립트 진행 도중에 .cs 파일이 없는 디렉토리가 있으면, 어느 디렉토리가 없는지 문구를 출력한다.
- 예를 들어 day7/ 경로 아래 .cs 파일이 없으면 day7 is empty 같은 문구를 출력할 수 있다.
- 스크립트는 .cs 파일들을 압축해서 가상머신 리눅스 /backup 경로에 복사한다.
- 로컬에 생성한 .zip 파일은 scp 명령을 사용해서 가상 머신으로 복사한다. (패스워드를 입력하는 단계를 생략할 필요는 없다.)
- 백업 파일 이름에는 실행한 날짜를 붙여서 복사한다. 예시) backup_20220105.zip
< 쉘스크립트 hello, wolrd! 출력 >
로컬에 폴더 및 cs파일 생성
로컬에서 wsl 세팅 후 쉘 스크립트 작성
하지만 scp 명령에서 permission denied 가 발생한다
시도해본 방법 :
- chmod로 권한 부여 - 실패
- scp 명령 앞에 sudo 붙이기 - 실패
- 파일 경로 자세히 붙이기 ex) /home/leezzangmin/backup_$today.zip - 실패
- 알고보니 username이 zzangmin 이 아니라 zzang 이였다. 될리가 없었네 ^^; - 성공!
허무하지만 이렇게 삽질을 조금이라도 해보는게 더 느는 방법... 스택오버플로우는 왜 들어갔을까..
더 해볼 것 :
- 파일명이 중복일 경우
- 패스워드 입력을 생략해야 진정한 자동화가 아닐까
- crontab 적용해보기?
- day1 ~ day 16까지 파일생성하는 스크립트 작성해보기
참고자료 :
https://unluckyjung.github.io/linux/2020/07/31/Ubuntu_ssh_connect/
https://codechacha.com/ko/ubuntu-install-openssh/
https://tomcabin.tistory.com/3
'회고' 카테고리의 다른 글
말하는 감자의 13개월 개발자 취준 회고 (14) | 2023.02.09 |
---|---|
코드스쿼드 마스터즈 백엔드[JAVA] 코스 마무리 회고 [2022.06.10] (16) | 2022.06.14 |
코드스쿼드 TODO 프로젝트 학습회고 [2022.04.04 - 2022.04.15] (3) | 2022.04.16 |
코드스쿼드 마스터즈 백엔드[JAVA] 코스 중간 회고 [2022.04.03] (2) | 2022.04.04 |
코드스쿼드 마스터즈 백엔드[JAVA] 코스 2주차 회고 [2022.01.16] (0) | 2022.01.17 |