8주차 CSM_실습일지📝

ᴶᴬᴱᵞᴼᴼᴺ·2021년 4월 26일
1

컴퓨터 시스템관리

목록 보기
8/15

💡 이번 주에는 지금까지 배운 내용을 복습하는 시간을 가졌다. 1주차부터 7주차까지 학습한 주제는 리눅스 설치, 리눅스 명령어, X 윈도, 디스크관리, 셸 스크립트 프로그래밍, 작업예약 cron & at 이다.

실습과제

📌그동안 작성한 실습일지를 살펴보면서 가장 어렵거나 헷갈리거나 기억이 나지 않는 주제를 1~2개 선정하여 실습과제와 비슷한 형태의 과제 스스로 만들어서 실습해보기

1. 랜덤으로 리눅스 명령어 3개를 선정하여, 각각의 help 페이지를 txt파일로 저장한 뒤, 압축하기 (압축형태는 gzip과 bzip2 형식 중 선택) 파일 압축이 끝나면 압축된 파일의 허가권을 모든 사용자가 읽고 쓰고 실행할 수 있도록 변경하고 리눅스 명령어 help 페이지가 들어있는 txt 파일 3개 중 1개를 선택하여 소유자에게 실행 권한을 허가하기

: 2주차에 배운 파일 묶기와 압축 & 3주차에 배운 파일 권한 관리는 배운지 꽤 된 내용이라 기억이 잘 나지 않아서 이번 기회에 실습을 통해 복습을 하면 좋을 것 같다는 생각을 했다.

실습과정🔽

👉생각나는 리눅스 명령어 chown, adduser, passwd 각각의 help 페이지를 '명령어 이름.txt' 형식의 파일로 저장함

👉저장한 txt파일 3개를 tar 파일로 묶고, gzip으로 압축하는 과정. 압축파일의 이름은 'files.tar.gz'로 하였음

👉압축파일 files.tar.gz을 모든 사용자가 읽고 쓰고 실행할 수 있도록 변경함. chown.txt 파일은 소유자에게 실행 권한을 허가하도록 변경함.

2. cron으로 2분 마다 '/home'디렉터리와 그 하위 디렉터리를 '/backup'디렉터리에 백업하도록 작업예약하기

: 최근에 배운 내용이긴 하지만 수업을 들으면서 실습을 할때 문제가 발생하기도 했고 몇 일이 지난 시점에서 내용을 떠올리며 제대로 다시 해보고 싶다는 생각에 위와 같은 실습을 했다. 저번 주에 실습했던 문제와 비슷하지만 '2분마다' 작업예약을 하도록 변경하여 실습을 해보았다.

실습과정🔽

👉2분 마다 작업이 실행될 수 있도록 예약하기 위해 vi /etc/crontab 에 들어간 후 마지막 줄인 #위에 */2 * * * * root /root/HW.sh를 입력한 후 저장 및 종료

👉HW.sh 스크립트 만들고 저장 종료 한 후에 실행할 수 있도록 속성 변경(chmod +x HW.sh)

👉'backup' 디렉터리를 만들고 백업확인을 위해 시간을 수동으로 변경 (timedatectl set-ntp 0는 시간 동기화 해제를 위한 명령으로 원하는 시간으로 변경하면 본래 시간으로 동기화가 되지 않음) 시간 변경한 뒤 systemctl restart cron 입력하고 4분이 지난 후에 backup 디렉터리를 보면 2분, 4분일 때 예약작업한 것이 실행되었음을 알 수 있음. 2분, 4분, 6분, 8분...이렇게 2분마다 예약작업이 실행됨.

새로 알게 된 내용 및 복습한 내용

✔ 데이터 압축
: 데이터를 더 적은 공간에 효율적으로 기록하기 위한 기술

✔ tar
: Tape ARchive
▪ 유닉스에서 테이프 아카이브를 위해 고안한 파일 형식이며 이런 형식을 다루는데 사용되는 프로그램
▪ 파일 묶기와 압축을 모두 사용할 수 있음
▪ tar로 묶여지기 전 파일들의 속성, 심볼릭 링크, 디렉토리 구조 등을 그래로 가져갈 수 있음

tar파일로 묶고, gzip으로 압축
: tar zcvf gzip.tar.gz *
tar파일로 묶고, bzip2로 압축
: tar jcvf bzip2.tar.bz2 *

✔ 파일 허가권
: 파일 허가권을 변경하는 명령어
▪ 소유자, 그룹, 그 외 사용자 별로 구분하여 관리
▪ root 사용자 또는 해당 파일의 소유자만 실행 가능
▪ 읽기(read), 쓰기(write), 실행(execute)권한

chmod 777 today.txt // 모든 사용자가 today.txt 파일을 읽고, 쓰고, 실행할 수 있음
chmod u+x today.txt // 소유자에게 실행 권한 허가
chmod u+r today.txt // 소유자에게 읽기 권한 허가
chmod u+w today.txt // 소유자에게 쓰기 권한 허가

✔ cron : 주기적으로 반복되는 일을 자동으로 실행할 수 있도록 시스템 작업을 예약하는 것

👀 /etc/crontab 형식

: '분, 시, 일, 월, 요일' 5부분으로 나눠져 있으며 사용자가 원하는 대로 실행명령을 할 수 있음
👉저번 주에 이와 관련된 실습을 했을 때는 01 03 15 * * root /root/myBackup.sh 를 입력하면서 01은 왜 맨 앞에 있고 03을 왜 그 다음에 오며 순서가 왜 저렇게 되는지 정확히 이해하며 넘어가지 않았었는데 이번 주에 내가 만든 실습과제를 하면서 시행착오를 겪으며 순서가 갖는 의미를 알수 있었고 위의 사진처럼 리눅스에서 친절하게 어떤식으로 입력을 하면되는지 명시해주고 있다는 것을 이제서야 알 수 있었다🤦‍♀️

문제 발생 및 해결방안

cron을 이용하여 작업예약을 할때 vi /etc/crontab에 들어가서 '2분마다' root가 /home 디렉터리를 /backup 디렉터리로 복사하도록 그에 해당하는 실행명령을 입력해야 했는데 '2시간마다' 작업이 실행되도록 예약을 해놔서 예약한 작업이 실행되지 않는 문제를 겪었다.
✍이는 /etc/crontab의 형식을 정확하게 숙지하지 못한 상태에서 일어난 문제였고, 다시 vi /etc/crontab에 들어갔을때 */2를 minute에 해당하는 부분에 넣지 않았다는 것을 깨닫고 나서 수정을 한 후에 문제가 해결되었다.

회고

  • 플러스(+)
    : 매주 새롭게 배우는 내용에만 집중하다보면 이전에 배웠던 내용을 매주 복습하는 않는 이상 잊어버리기 쉬운데 이번 주에 지금까지 배웠던 내용들을 다시 한번 살펴보고 내가 스스로 문제도 만들어보며 이전에는 그냥 스치듯 봤던 것을 정확하게 짚고 넘어갈 수 있어서 좋았다.

  • 마이너스(-)
    : 어떤 문제를 내더라도 어려움 없이 실습이 진행되어야 하는데 여러 개념이 복합적으로 적용된 문제를 실습하려고 하면 막히는 부분이 생기고 어려움이 있었다. 이를 통해서 이제까지 학습한 주제들과 관련된 몇몇 내용은 복습이 더 필요하다는 것을 알 수 있었고 매주 복습은 힘들더라도 시간을 내서 실습을 반복적으로 해야겠다고 생각했다.

  • !!!!!
    : 새로운 내용을 배우는 것도 중요하지만 이렇게 중간점검을 하는 시간을 갖는 것도 중요하고 필요한 과정이라는 것을 다시 한번 느꼈다. 앞으로 '시간내서 복습하고 실습해보기'를 실천하도록 노력해야겠다:-)

0개의 댓글