본문 바로가기
728x90
반응형

CentOS722

40. Linux - 나만의 Service를 만들어 구동해보자2 지난 포스팅에서는 Linux 서비스에 필요한 쉘 스크립트(기타 실행파일도 가능하다), 서비스 사용 이유 및 service 파일에 작성하는 옵션에 대해 알아보았다. 이번 포스팅에서는 자체 쉘 스크립트를 만들고, 만든 스크립트를 서비스로 등록하여 동작되도록 하는 전 과정에 대해 작성해보려 한다. 구동할 서비스는 다음과 같다. systemctl status를 치면, 해당 서비스에 대한 실시간 로그를 확인할 수 있는데, 이 로그에 짝수를 0부터 20까지, 홀수를 1부터 19까지 1초에 하나씩 출력하는 서비스 2개를 만들어보려 한다. 두 개의 서비스를 만드는 이유는 앞선 포스팅에서 보았던 옵션들(Requires, Wants 등) 일부를 확인하기 위함이다. 1. 스크립트의 작성 스크립트는 아래와 같이 두 개를 작성.. 2021. 9. 25.
39. Linux - 나만의 Service를 만들어 구동해보자1 필자가 지금까지 대부분의 Linux Service를 공부하며 포스팅 하다보니, "직접 서비스를 만들어 구동하는 것도 필자의 실력으로 이제는 가능하지 않을까?"라는 물음이 생겼다. 다행히 쉬는 날이 나름 길게 생긴 덕에 하루 동안 집중해서 하나씩 테스트를 하다보니, 직접 만든 쉘 스크립트로 서비스를 구동하는 것이 생각만큼 크게 어렵지는 않았다. 이번 포스팅에서는 리눅스의 서비스 데몬, 그러나 사용자가 직접 만든 서비스를 구동하는 방법에 대해 알아보려한다. 포스팅에 앞서, 몇 가지 기초적인 지식이 필요한 내용이 있는데, 그 부분에 대해서 간략하게만 언급하고서 넘어가려 한다. 1. 쉘 스크립트(Shell Script) 이름이 거창해보이지만 어려운 개념은 아니다. 쉘 스크립트는 Linux의 명령어를 사용자가 원.. 2021. 9. 24.
38. Linux - SNMPv1/v2를 사용한 서버 원격 모니터링 업무 진행 중에 새로운 지식을 쌓게되는 경우에만 Linux 관련 글을 쓰게 되는 듯 하다. 조금 더 부지런하고 싶지만, 우선 돈을 벌어야 하니... 이번에 필자가 Linux 관련 포스팅을 진행할 주제는 SNMP다. 1. SNMP란? SNMP는 Small Network Management Protocol의 약자다. 쉽게 말하면 네트워크 상에 존재하는 서버, PC등을 관리하는 프로토콜이라고 보면 된다. 필자가 쉽게 설명했지만 아직까지는 감이 잘 오지 않을 것이다. 필자가 네트워크 운영자라고 해보자. 네트워크 운영에 필요한 방화벽은 물론이거니와, 라우터, 스위치, 그리고 기타 솔루션 제품군까지 운영자가 관리해야하는 제품은 매우 많다. 문제는 이 장비들이 이상없이 잘 동작하고 있는지 주기적으로 점검을 진행해야하.. 2021. 9. 18.
12. [CentOS7, Python] Django Sqlite 버전 관련 에러 해결법 1. 개요 Error Log: ... File "/root/Django/Root/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py", line 68, in check_sqlite_version raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17). ... Python Django로 manage.py 파일을 이용해 db migrate를 진행 시, 위와 같은 에러가 나타나는 경우에 대한 해결 방법을 포스팅하려 한다. 위의 에러 로그는 Python 또는 pip로 설치된 Django의 버.. 2021. 6. 4.
37. Linux - yum, rpm 대신 소스파일로 프로그램 설치하기 필자가 최근 리눅스에서 Python의 최신 버전을 깔기 위해 yum과 rpm 명령어를 열심히 날렸으나, 최신 버전의 설치가 불가능한 상황에 맞닥드리게 되었다. 특이하게도 CentOS7은 yum으로 python3 설치 시 최신 버전을 3.6.x 버전으로 표시하는데, 실제 필자가 필요로하는 버전은 최신 안정화버전인 3.9버전 이상이기 때문에 yum으로 설치가 불가능한 상황이었다. 물론 rpm 파일이야 널리고 널려있지만, 이번만큼은 source 파일로 직접 설치하는 과정을 진행해보려 한다. 사실, Python 뿐만 아니라 SQLite라고 불리는 패키지 또한 최신 버전으로 설치를 진행해야 하는데, SQLite는 rpm 파일이 없어서 source 파일로 직접 설치해야했기도 했고, 필자 역시 source 파일 설치.. 2021. 5. 31.
36. Linux - 메일서버 구축 및 메일 전송2 - Postfix 설정 및 메일 전송 지난 포스팅에 이어, 이번 포스팅에서는 메일 서버의 구축과 메일 전송을 진행해보려한다. 메일 서버와 관련된 이론적인 내용은 이곳을 참고하자. 1. 메일 서버 SMTP 서비스 실행 및 외부와의 통신 확인 메일 서버의 구축에 가장 필요한 프로토콜은 SMTP(Simple Mail Transfer Protocol)다. SMTP는 TCP 25번을 사용하는 프로토콜로 사용자가 작성한 메일을 전달받아, 목적지 도메인의 메일 서버로 전송하거나, 타 메일서버로부터 들어온 메일을 내 메일 서버 내 사용자에게 전달하는 역할을 한다. SMTP를 지원하는 Linux의 서비스는 Sendmail과 Postfix가 있다. Sendmail은 Postfix 이전에 만들어진 서비스인데, 별도로 패키지 설치를 해야하는 것과 더불어, 사용을.. 2021. 5. 2.
35. Linux - 메일서버 구축 및 메일 전송 1, 개요 오랜만에 작성하는 Linux 포스팅이다. 사실 1월 중에 언제라도 시간이 되면 빨리 작성을 시작해야겠다고 마음먹었던 메일서버 구축 포스팅인데, 코로나때문에 밀린 일이 많다보니, 1월 중순까지 도저히 시간이 나지 않았다. 테스트 진행 후 포스팅을 해야하는 Linux 특성도 있었고... 어쨌든, 이번 포스팅에서는 Linux의 메일 서버의 개요에 대해 이야기해보려 한다. 1. Linux 내에서 메일 서버의 필요성 (1) 관리자가 사용자에게 중요하지 않은 내용의 메세지 전달에 사용 Linux는, 관리자가 Linux에 현재 접속하여 사용중인 사용자에게 공지 알림을 줄 수 있는 명령어가 존재한다. 바로 wall 명령어와 write 명령어인데, 시스템을 종료해야 해서 사용자에게 공지를 한다던가, 특정 사용자가 시스템.. 2021. 1. 23.
34. Linux - NTP 서버 설치 및 시간 동기화2 지난 포스팅에서는 NTP 서버의 원리와 간략한 구축 방법에 대해 알아보았다. 그리고 이번 포스팅은 - 무려 한 달이 넘는 기간만에 다시 작성한다.. - NTP와 관련된 리눅스 명령어와 ntpd 설정 파일에서 restriction에서 사용하는 기타 옵션에 대해 조금 더 알아보려 한다. 1. ntpstat ntpstat 명령어는 현재 Linux 시스템에서 NTP 연동 상태를 확인하는 명령어다. 필자는 실제 노트북의 Linux가 상위 Stratum NTP 서버로부터 시간 동기화를 받고 있고, 가상 머신에서 동작중인 Linux가 실제 리눅스의 NTP 정보를 참조하고 있다. 따라서 가상 서버에서 ntpstat 명령어를 사용하면, 다음과 같이 정상적으로 NTP가 동작중이라는 문구가 출력된다. 이번에는 클라이언트인 .. 2020. 12. 9.
33. Linux - NTP 서버 설치 및 시간 동기화1 1. NTP 서버는 무엇이며 왜 필요할까? 인트라넷에 여러 서버를 구성하다보면, 서버 사이 동기화를 진행해야 하는 순간이 온다. 이 서버 사이 동기화에서 가장 중요한 물리적인 요인은 시간인데, 각 서버의 운영체제 시간(또는 하드웨어 시간)이 조금이라도 틀어지게 되면 연동이 되지 않거나, 연동이 되더라도 나중에 시스템에 문제가 생겼을 때, 로그를 확인하는 과정에서 시간 간극으로 인해 정확한 원인을 파악하지 못하는 경우가 발생하게 된다. 예를 들어 A라는 서버가 B라는 서버보다 시간이 10분 정도 빠르게 설정되어 있고, 두 서버가 동기화되어 있는 상태라고 하자. 그리고 이 시스템에 이슈가 발생하여 기록된 로그를 확인하는데, 두 서버 사이 시간 차이가 존재한다면, A서버 고장이 기록된 시점보다 10분 늦은 시.. 2020. 10. 25.
32. Linux - rpm 명령어 기본 사용법3(의존성 외) 지난 2개의 포스팅을 통해, rpm 명령어를 사용하여 Linux에 설치된 패키지(프로그램)에 대해 확인하는 방법, 그리고 새 패키지의 설치와 삭제 방법에 대해 알아보았다. 패키지의 설치 및 삭제에 대해 설명한 포스팅에서, 쉬운 예시를 들기 위해 net-tools 패키지를 설치/삭제해보았는데, 실제 리눅스에서 rpm 명령어를 통해 수동으로 패키지를 설치하는 경우, 의존성이라고 불리는 녀석 때문에 간간히 설치가 진행되지 않는 경험을 하신 분들도 있을 것이다. 일반적으로 yum 명령어를 사용하여 패키지를 설치하는 경우, 설치하려는 패키지가 필요로 하는 다른 패키지나 소캣 파일도 함께 자동으로 설치를 진행해주나, 인터넷이 끊겨있는 서버에서는 이러한 의존성을 관리자가 일일히 확인하여 모두 설치를 진행해주어야 한다.. 2020. 10. 25.
31. Linux - rpm 명령어 기본 사용법2(설치/삭제) 무려 두 달 만에 포스팅을 진행하게 되었다. 어찌나 바쁘던지 9월과 10월은 어떻게 지나가는지도 모를 정도였다. 여전히 바쁘긴 하다만 다행히 숨을 조금 돌릴 시간을 조금이나마 얻게 되어 다시 글을 작성하게 되었다. 지난 포스팅에서는 Linux의 rpm 명령어를 사용하여, 현재 Linux에 설치되어 있는 프로그램과 그와 관련된 문서에 대해 검색하는 방법에 대해 알아보았다. 간략하게 지난 포스팅의 개요에 대해 다시 정리하자면, yum 명령어를 사용하여 설치하는 것도 가능하지만, 인터넷과 연결되지 않은 Linux 시스템에 프로그램을 설치하기 위해서는 프로그램 파일(rpm)을 저장매체등을 이용해 옮긴 다음 수동으로 설치해야하는 경우도 종종 있는데, 이 때 사용하는 명령어가 바로 rpm이라는 것이 개요 내용이다... 2020. 10. 24.
27. Linux - 리눅스 방화벽2, 방화벽 정책(chain) 관련 명령어 지난 포스팅에서는 컴퓨터의 방화벽이 무엇인지, 그리고 리눅스에서 방화벽 정책과 규칙이 어떤 형태로 작성되어 있는지 확인해보았다. 지난 포스팅의 내용에 이어, 이번 포스팅부터 리눅스 방화벽의 정책 및 규칙을 어떻게 생성 / 변경 / 삭제하는지 살펴보려 한다. 리눅스의 방화벽은 큰 그림으로 보면 윈도우와 마찬가지로 크게 두 부류로 나눌 수 있다. 통신의 방향을 결정하는 Chain 과, 각 Chain 내에 정의되는 규칙으로 말이다. 이 chain과 규칙의 생성 / 변경 / 삭제 등의 작업은 모두 iptables 명령어에 옵션을 달리 주면서 진행할 수 있다. 이번 포스팅에서는 Chain에 대한 iptables 명령어를 사용하는 방법에 대해 알아보려한다. 1. Chain에 대한 작업 Chain은 서두에서도 언급했.. 2020. 8. 11.
728x90
반응형