안녕하세요!
오늘은 예상치 못한 과제를 받아 다들 당황스러우셨을 것 같아요. 저도 리눅스 설치하는것부터 고난이었네요...ㅋㅋㅋ
그래도 덕분에 리눅스에 대해 많이 알게 되어서 매우 뜻깊은 하루가 되었던 것 같아요. 그럼 오늘 과제를 진행하면서 새롭게 알게된 내용에 대해서 정리하여 공유해보겠습니다.
지난 학습 정리 보기-> [부스트캠프 9기/챌린지] - [부스트캠프 9기 챌린지] 학습 정리 - 01일차
[부스트캠프 9기 챌린지] 학습 정리 - 01일차
안녕하세요!저는 현재 부스트캠프 9기 웹모바일 챌린지에서 웹 풀스택에 속해서 현재 열심히 학습에 몰두하고있는 김정욱이라고 합니다.저와 같이 진행하고 있는 캠퍼 그리고 진행자분들이 볼
hel-p.tistory.com
리눅스 아키텍쳐(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.guru - The cron schedule expression generator
loading... We created Cronitor because cron itself can't alert you if your jobs fail or never start. Cronitor is easy to integrate and provides you with instant alerts when things go wrong. Sign Up Free
crontab.guru
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 |