안녕하세요!
오늘은 예상치 못한 과제를 받아 다들 당황스러우셨을 것 같아요. 저도 리눅스 설치하는것부터 고난이었네요...ㅋㅋㅋ
그래도 덕분에 리눅스에 대해 많이 알게 되어서 매우 뜻깊은 하루가 되었던 것 같아요. 그럼 오늘 과제를 진행하면서 새롭게 알게된 내용에 대해서 정리하여 공유해보겠습니다.
지난 학습 정리 보기-> [부스트캠프 9기/챌린지] - [부스트캠프 9기 챌린지] 학습 정리 - 01일차
리눅스 아키텍쳐(AMD64 VS ARM64)
오늘 저를 많이 애먹인 부분입니다ㅠㅠ
저는 현재 M3 Pro 칩이 탑재된 Macbook Pro를 사용하고 있습니다. 제 노트북은 애플에서 설계한 칩을 사용하여 아키텍쳐가 ARM64기반이었는데, 아무 생각 없이 AMD64 아키텍쳐용 리눅스를 깔아버렸습니다. 결과는 에러...
이것 때문에 설치에 시간을 많이 소요하게 되어서 결론은 앞으로 운영체제를 설치할 때 아키텍쳐를 잘 확인하여 두번 까는 일이 없도록 하자! 입니다.
SSH로 원격 접속하기
ssh는 원격으로 해당 서버에 접속해서 shell을 사용할 수 있도록 해주는 프로토콜입니다.
기본적으로는 22번 포트를 사용하여 open되고, 아래 명령어들을 통해 ssh 서버를 열 수 있었습니다.
sudo apt install openssh-server #ssh 설치
sudo systemctl start ssh #ssh 실행
sudo systemctl start ssh #ssh 실행 확인
sudo systemctl enable ssh #부팅 시 자동으로 ssh 실행
sudo ufw allow ssh #ssh 포트(22번) 방화벽 해제
접속할 PC에선 아래 명령어를 통해 ssh 접속이 가능합니다.
ssh username@192.168.x.x
명령어를 실행한 결과에서 원하는 값만 가져오자!
리눅스에는 많은 명령어들이 있고 명령 실행 결과 중에서 원하는 값만 가져와서 출력하고 싶을 때가 많습니다.
그 때 쓰이는 명령어중에서 이번에 2개를 새로 배웠는데, grep과 awk입니다.
free를 입력했을 때 나오는 메모리의 사용량만 딱 가져오는 과정을 통해 두 명령어를 설명드리겠습니다.
# free 예시
total used free shared buff/cache available
Mem: 3998544 786184 2385420 50208 826940 3011452
Swap: 4294652 0 4294652
GREP
텍스트 파일에서 특정 패턴을 검색하고, 해당 패턴이 포함된 줄을 출력하는 도구
이 명령어를 통해 우선 우리가 필요한 Mem: 으로 시작하는 줄을 가져올 수 있습니다.
$ free | grep Mem:
Mem: 3998544 786184 2385420 50208 826940 3011452
AWK
파일이나 입력 데이터에서 패턴을 검색하고, 해당 패턴에 대해 지정된 작업을 수행하는 도구
이 명령어를 통해 이 한줄을 공백이나 탭을 기준으로 나뉘어진 배열로 생각하여 원하는 값만 가져올 수 있습니다.
$ free | grep Mem: | awk '{print($1)}'
Mem:
$ free | grep Mem: | awk '{print($2)}'
3998544
$ free | grep Mem: | awk '{print($3)}'
786184
$ free | grep Mem: | awk '{print($4)}'
2385420
💡추가 팁
$0 인덱스를 출력하게 되면 전체 모든 줄이 출력되게 됩니다.
그리고 print()내에서 각 인덱스들의 값들을 가지고 사칙연산도 가능합니다!
ex) '{print($3-$2)}'
리눅스에서 자동화를 하는법(crontab)
리눅스의 꽃이라고 불릴만한 자동화 명령어 crontab입니다.
crontab을 통해 특정 명령어를 원하는 시간에 자동으로 실행하게 하는게 가능합니다.
먼저 crontab을 설정할 수 있는 파일로 갈 수 있는 명령어를 입력합니다.
$ crontab -e
그리고 나오는 파일의 맨 아래로 가서 한줄한줄 원하는 작업에 대한 설정을 진행할 수 있습니다.
한줄당 하나의 자동화 명령어를 넣을 수 있고, 총 6가지의 정보를 입력해야 합니다.
아래는 crontab을 작성한 예시입니다.
# 매일 오전 5시 30분에 스크립트 실행
30 5 * * * /path/to/script.sh
# 매주 월요일 오전 3시에 백업 실행
0 3 * * 1 /path/to/backup.sh
# 매 15분마다 로그 파일 정리
*/15 * * * * /path/to/cleanup.sh
# 매월 1일 오전 2시에 시스템 업데이트
0 2 1 * * /path/to/update.sh
# 주말마다 특정 작업 실행
0 8 * * 6,7 /path/to/weekend_task.sh
더 자세하게 많은 경우를 알고싶다면 아래 사이트를 참조하시면 좋을 것 같습니다.
crontab은 자동화에 관심이 많아서 배워야겠다고 생각했었는데 이번 기회에 많이 찾아보고 직접 적용도 시켜볼 수 있어서 매우 뜻깊은 하루였던것같습니다.
내일 맞이할 과제도 기대됩니다!
'부스트캠프 9기 > 챌린지' 카테고리의 다른 글
[부스트캠프 9기 챌린지] 학습 정리 - 06일차 (0) | 2024.07.22 |
---|---|
[부스트캠프 9기 챌린지] 회고 - 1주차 (0) | 2024.07.20 |
[부스트캠프 9기 챌린지] 학습 정리 - 04일차 (1) | 2024.07.18 |
[부스트캠프 9기 챌린지] 학습 정리 - 03일차 (1) | 2024.07.17 |
[부스트캠프 9기 챌린지] 학습 정리 - 01일차 (1) | 2024.07.15 |