리눅스서버 2 페이지
리눅스서버
전체 185건 2 페이지
  • profile_image MySQL 5 버전사용 할때는 없었던 문제가 발생을 해서 확인한 것들을 정리한것입니다.이에대해 글이 있는데 전 적용이 안되던데요. 호스트 플러시 해도 안되어 systemctl stop mysqld 로 멈춘다음 다시 시작 시켰습니다.제경우에는 CentOS7에서 설치된 MySQL8 버번에서 안되었습니다.그리고 중요한것은 왜? 그런지 접속하는 클라이언트(보통은 프로그램 이겠지요) 원인을 찾아야 합니다.그렇지 않으면 다시 상황이 발생합니다.여기서 수치를 높게 준것은 발생 가능성을 낮추는것 뿐입니다. 오류는 아래와 같은것이 발생하고 호스트 플러시 하라고 합니다. 전 했는데 안되었다는것입니다.그렇기에 안되시는 분은 수치를…
  • profile_image TIMESTAMP와 DATETIME은 모두 날짜와 시간을 저장하는 MySQL의 데이터 타입입니다. 두 타입 모두 'YYYY-MM-DD HH:MM:SS' 형식을 사용하지만, 몇 가지 중요한 차이점이 있다. 1. 범위 TIMESTAMP는 1970년 1월 1일 00:00:01 UTC부터 2038년 1월 19일 03:14:07 UTC까지의 범위를 가집니다. 반면에 DATETIME은 1000년 1월 1일 00:00:00부터 9999년 12월 31일 23:59:59까지의 범위를 가집니다.2. 시간대 TIMESTAMP는 시간대(Timezone)에 민감하며, UTC 시간을 기반으로 합니다.…
  • profile_image Brotli는 Google에서 개발한 압축 알고리즘으로, 빠른 압축 속도와 높은 압축률을 제공합니다. 리눅스 환경에서 Brotli를 이용해 파일을 압축하거나 압축을 해제하는 방법은 다음과 같습니다. 속도는 느려요~ 하지만 한두개 압축 하는데는 문제 없습니다. 양이 많으면 속도도 생각할 필요가 있다는 의미 입니다.gzip 보다 10 ~ 20% 정도 더 압축된다고 보시면 됩니다. 1. 먼저, Brotli가 설치되어 있는지 확인해야 합니다. 리눅스 터미널에서 다음 명령어를 입력하여 Brotli를 설치할 수 있습니다.  # 자신에게 맞는 방식으로 설치 합니다.  sudo apt-get install …
  • profile_image 소트 옵션 다음에 -(마이너스)가 있으면 내림차순 없거나 +(플러스)기 있으면 내림 차순으로 정렬이 됩니다. 메모리 사용량 확인 메모리 사용량을 확인 하는데 있어 한 화면에 필요한 것만 보기 위해서 awk를 파이프로 넣어 사용 했습니다. 또는 스왑메모리 확인 하는것 처럼 상위 10개만 보는 방법도 있습니다.  # 메모리 사용량 순으로 보기  ps aux --sort -rss | awk '$4!=0.0'  # 메모리 사용량 0.1 이상인 프로세스만 보는 방법  ps -eo pid,%mem,cmd --sort -rss | awk '$2>=0.1'  # swap 사용 많…
  • profile_image PID 프로세스 ID 값을 저장해서 보통은 같은 프로그램 실행 할때 이전에 실행된 프로그램이 있으면 kill 처리 하면서 다시 실행 시키는데 여기선 PID 값을 저장하지 않고 pkill 프로그램을 이용해서 kill 처리 후 같은 프로그램을 실행 시키는 것에 대한 것입니다.kill 처리 하지 않고 스케줄에서 일정 시간마다 실행 시키면 이전 프로그램이 종료가 안된 경우는 계속 같은 프로그램이 쌓여서 종국에는 시스템 자원이 고갈되어 서버 죽습니다. PHP 프로그램에서 출력되는 로그를 호스트명으로 생성하려면,nohup 명령어와 함께 리다이렉션을 사용 하면 된다.  #!/bin/bash  # 현재 실행…
  • profile_image > $log_file 2>&1 & 부분은 리다이렉션과 백그라운드 실행에 관한 것으로, 각각의 부분은 다음과 같은 의미를 가지고 있습니다:1. > $log_file: 이 부분은 표준 출력(Standard Output, 보통은 커맨드 라인에 출력되는 내용)을 $log_file이라는 파일로 리다이렉션(즉, 출력을 변경)하는 것을 의미합니다. 즉, 스크립트가 실행되는 동안 출력되는 모든 내용은 $log_file에 지정된 파일에 저장됩니다.2. 2>&1: 이 부분은 표준 에러 출력(Standard Error, 보통은 오류 메시지)을 표준 출력으로 리다이렉션하는 것을 의미합니다.즉, 오류…
  • profile_image pkill -f 명령은 인자로 주어진 패턴이 프로세스의 명령 줄 전체와 일치하는 경우에 해당 프로세스를 종료합니다.-f 옵션을 사용하면 프로세스의 이름뿐만 아니라 인자들까지 포함하여 패턴 매칭을 합니다.예를 들어 pkill -f '/home/chk.php real' 이라는 명령은 문자열을 명령 줄에서 찾아 해당 프로세스를 종료합니다.따라서 명령 줄에 정확하게 일치하는 프로세스가 있어야 종료할 수 있습니다.만약 정확하게 일치하지 않아도 프로세스를 종료하고 싶다면 pkill 명령에 패턴을 사용할 수 있습니다.예를 들어 pkill -f 'php_chk.php' 이라는 명령은 명령 줄에 'php_chk.php'가 포함…
  • profile_image 필요에 따라 인증을 하는데 있어 HTML 페이지를 통해 하지만 브라우저를 통해 하는 경우가 있습니다. 바로 아래와 같은 헤더를 사용하는 경우인데요.   header('HTTP/1.1 401 Unauthorized');  PHP-FPM 사용시 전달이 안되는 경우는 웹 서버 설정에서 FastCGI로 전달될 환경 변수를 설정해야 합니다. PHP_AUTH_USER와 PHP_AUTH_PW는 HTTP 기본 인증에 사용되는 변수들입니다. 이런 값을 설정하는 방법은 웹 서버의 종류에 따라 다르며 Apache와 Nginx에서의 설정 방법. Apache 웹서버 .htaccess 파일이나 htt…
  • profile_image 자신의 네임서버 설정이 잘 되었는지 확인 하는 용도로 사실상 많이 쓰입니다. 설정을 했는데 실제 네임서버에서 잘 반영 되었는지 궁금 하지요. 그리고 다른 네임서버로 퍼지는데는 시간이 좀 소요 될 수 있습니다. 이 문제는 TTL을 좀 짧게 주면 빠르게 갱신이 되지만 캐쉬의 시간과 관계가 있어 무조건 좋은것 만은 아닙니다. 예를 들면, SPF 설정, DKIM, _acme-challenge 인증용, DMARC 등 확인을 위해 네임서버에 적어 놓으라는 것들의 설정을 확인용 입니다. 다음은 dig 또는 nslookup 명령을 사용하여 TXT 레코드를 확인하는 과정입니다. 1. 터미널을 열고 다음 명령…
  • profile_image  ssl인증서를 갱신하는데 비밀번호가 걸려 있는 인증서가 있을 경우 웹서버 적용할때 비밀번호를 입력해 줘야 합니다. 이게 한대이거나 하나의 사이트만 서비스하는것이 아니라 갯수가 많다면 웹서버 재시작할때 마다 비밀번호를 다 넣어 줄 수는 없습니다. 그리고 그냥 restart 하면 웹서버 뜨지 않는 경우도 있고 좋지 않습니다. 그래서 인증서에 비밀번호가 걸려 있는지 확인하려면 OpenSSL 명령어를 사용해 확인해볼 수 있는데요. 콘솔에 접속한 후, 아래와 같은 명령어를 입력해 보면 됩니다.   openssl rsa -check -in KeyFile_abc_com_crt.key  …
  • profile_image 리눅스에서 find 명령어를 사용하여 특정 날짜 이후에 수정된 .php 파일을 찾는 방법은 이렇다 이 find 명령어는 /path/to/search 디렉토리부터 하위 디렉토리까지 재귀적으로 검색하여, .php로 끝나는 파일 중에서, '2023-02-01' 이후에 수정된 모든 파일을 찾는다.   find /path/to/search -name "*.php" -type f -newermt "2023-02-01"  -name 옵션은 어떤 확장자를 찾을 건가 -newermt 옵션은 'modification time'보다 더 최근에 변경된 파일을 찾는 옵션 find 명령어로 찾은 파일을 rsy…
  • profile_image 인터넷이 안되도 나올 수 있는 것으로 아래 명령으로 현재 서버의 IP 주소가 잘 나오는지 확인을 먼저 해보면 좋습니다. curl ifconfig.me   AppStream 오류 : repo 'appstream'의 메타 데이터를 다운로드하지 못했습니다: Cannot prepare internal mirrorlist: No URLs in mirrorlist Linux CentOS 8 EOL yum, dnf No URLs in mirrorlist **저장소 경로 변경** 다음 명령어를 실행하여 저장소 경로를 변경한다. 아래 명령을 보면 알 수 있듯이 변경된 부분이 있어서 그렇습니다. 그리고 최신…
  • profile_image 특정 패키지의 업그레이드를 방지하려면 dnf의 versionlock 플러그인을 사용할 수 있습니다. 이 플러그인은 특정 버전의 패키지를 잠그는 기능을 제공하여, 패키지가 업데이트되지 않도록 합니다.아래 dnf, yum은 같은것으로 하나만 실행 하면 됩니다.1) 먼저, versionlock 플러그인을 설치합니다  sudo dnf install python3-dnf-plugin-versionlock  sudo yum install python3-dnf-plugin-versionlock 2) 그리고 나서 versionlock 명령을 사용해 rsyslog와 samba 패키지를 잠글 수 있습니…
  • profile_image 랜카드가 하나가 아니라 여러개일 경우가 있을 수 있는데 이럴때 작동을 하고 있는지 확인을 할때 유용한 방법 입니다. 제 경우는 라우터 설정 문제 일까요. 약간 신경써야할 부분은 있는것 같습니다. 우선 아래의 예가 안되는것은 아닙니다. curl 명령어를 사용할 때 `--interface` 옵션을 사용하면 특정 네트워크 인터페이스(랜카드)를 통해 트래픽을 보낼 수 있습니다. 예를 들어, eth0 인터페이스를 사용하려면 아래와 같은 명령어 사용하면 됩니다.   curl --interface eth0 https://ifconfig.me  위의 예시에서 'eth0'는 네트워크 …
  • profile_image 아래와 같은 메시지를 만나는 경우가 있습니다. rpm 파일이 없다고 하는데 정말 없는지 확인을 하면 있습니다. 문제는 정확하게 입력하지 않아서 생긴 문제 입니다.   dnf localinstall samba samba-common samba-client samba-libs  올바른 rpm 파일 경로가 아닙니다. samba  올바른 rpm 파일 경로가 아닙니다. samba-libs  오류: 처리가 필요하지 않습니다.  해당 오류 메시지는 'dnf localinstall' 명령어가 rpm 파일의 정확한 경로를 찾지 못해서 발생 된 것으로 'dnf localins…
  • profile_image 간혹 최신 버전이 아니라 이전 버전을 받거나 또는 오래된 패키지를 받아야 하는 경우가 있습니다. CentOS 공식 웹사이트에서는 최신 버전의 ISO 이미지만 제공하기 때문에, 이전 버전의 ISO 이미지를 찾으려면 다른 저장소를 이용해야 합니다. 하나의 대안은 CentOS의 공식 아카이브 저장소입니다http://vault.centos.org/   이미지 파일을 다운로드 받은 후에는, 이를 이용하여 부팅 가능한 USB 스틱을 만들거나, 가상 머신에 설치하시면 됩니다. 다운로드 받은 이미지로 설치를 진행하려면, BIOS나 UEFI 설정에서 부팅 순서를 변경하여 USB나 DVD로 먼저 부팅하도록…
  • profile_image 아래 3가지의 설정은 모두 자원과 관계가 있어 자사의 사이트에서 처리하는 정상범위 안으로 설정을 해주는 것이 좋다. 하지만 관리자 페이지등 특정인만 사용하는곳이 라면 그에 맞게 넉넉하게 설정해도 문제가 되지 않는다. PHP and Apache(웹서버) 504 Gateway Timeout 연결 끊김 웹서버와 PHP의 연결이 끊어짐으로 인해서 발생 하는것인데 이 부분에서 연결을 더 오랬동안 유지하는 설정이 아래에 대한 것이다. 이부분은 파일 다운로드와도 관계가 있다. 현재 크롬계열은 바로 다운로드 되지만 예전 IE의 경우 창이 뜨면 다운로드 클릭할때 까지의 시간과의 관계 이다. /etc/httpd/conf.d/…
  • profile_image 리눅스 OS 버전별로 아파치 웹서버 설치를 하는데 httpd 버전이 같이 달라지는 문제로 동일한 버전을 설치 하기 위한것이다. 여기서는 CodeIT 리포티지를 사용 한다.  https://codeit.guru/ru_RU/ CodeIT 리포티지를 이용한 아파치(httpd) 서버 설치 여기선 CentOS 9 버전과 CentOS 7 버전에서 설치하는 방법에 대한 부분이다. 블로그 보다는 CodeIT 메인 페이지에 설치에 대한 설명이 잘 나와 있으니 이곳을 보는 곳도 좋은 방법이다.  CentOS 9 에서 CodeIT 아파치 웹서버 설치 패키지 관리자를 dnf를 사용한다. 기본적인 옵션은 yum과…
  • profile_image 기본적으로 클라이언트 서버 캐릭터셋을 같게 가져 가지만 특별한 이유가 있어 달라야 되는 문제가 생길 수 있습니다. 이런 경우 서버에 저장하는 캐릭터셋과 클라이언트가 다르면 DBMS에서 자동으로 변환을 하여 보여주게 됩니다. MySQL8 서버와 클라이언트 다른 캐릭터셋으로 설정 아래의 예는 저장은 utf8로 저장하고 출력(커넥션)은 euckr로 할 수 있는 방법 입니다.   [client]  default-character-set=euckr  [mysql]  default-character-set=euckr  [mysqld]  character-set-clien…
  • profile_image mysql> CREATE USER 'root'@'192.168.10.10' IDENTIFIED BY 'rkdskadprkwkdy'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 위 오류는 비밀번호 사용 방식에 문제가 있어서 그렇다. ▶ MySQL 8 비밀번호 정책(validate_password.policy) MySQL 8에서 validate_password.policy는 비밀번호 정책을 설정하는 데 사용되는 옵션입니다. 이 옵션은 사용자의 비밀번호가 특정 요구 사항을 충족해야 하는지 여부를 …
  • profile_image 이 명령은 쉽게 메모리에 있는것을 디스크에 저장하는 겁니다. 그렇게 하는 동시에 캐쉬 무효화가 생기면서 즉시 반영됨. MySQL flush 명령어 종류 MySQL에서 "flush"는 데이터베이스 서버의 캐시나 버퍼에 있는 변경 내용을 디스크에 쓰고, 시스템 상태를 갱신하는 명령어입니다. "flush" 명령어를 사용하여 여러 가지 동작을 수행할 수 있습니다.  설정을 바로 적용 시키는 flush 리스트 FLUSH PRIVILEGES MySQL의 사용자 권한을 다시 로드하는 데 사용됩니다. 일반적으로 새로운 사용자를 추가하거나 사용자의 권한을 변경한 후에 이 명령을 실행하여 변경 사항을 적용합니다…
  • profile_image MySQL 8.0부터는 테이블의 메타데이터를 저장하기 위해 .sdi 파일을 사용합니다. 이 .sdi 파일은 Serialized Dictionary Information의 약자로, JSON 형식으로 테이블 구조와 관련된 메타데이터를 저장하고 있습니다.   MySQL MyISAM 엔진의 frm, sdi 파일 차이점 MySQL 8.0 이전에는 .frm 파일을 사용하여 테이블 구조와 관련된 메타데이터를 저장했습니다. 그러나 MySQL 8.0부터는 이러한 정보가 데이터 딕셔너리에 직접 저장되고, .sdi 파일은 해당 정보의 JSON 형식의 복사본을 제공합니다. .frm 파일과 .sdi 파일 차이점 …
  • profile_image MySQL 예전 버전은 비밀번호 없이 초기 설치시에는 바로 접속이 되었었는데 MySQL8 부터는 설치할때 데몬이 실행 되면서 로그파일이 생성 되는데 이 로그파일에 비밀번호가 들어 있습니다. 설치 후 비밀번호가 있는 파일 설치하면 아래 부분에 비밀번호가 있다 vim /var/log/mysqld.log [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (wrq@33Bo2Cc 위 로그파일을 어떻게 알 수 있나? /etc/my.cnf 파일을 보면 로그파일이 어디에 저장되고 있는지 알 수 있다. 그렇다면 위에 my.cnf…
  • profile_image 리눅스에서 런레벨(runlevel)은 시스템의 작동 모드를 나타내는 것으로, 각 런레벨은 특정한 서비스들이 실행되는 상태를 의미합니다. 시스템 부팅 과정에서 어떤 서비스들이 시작될지, 어떤 프로세스들이 실행될지 결정하는 역할을 합니다. 런레벨은 0부터 6까지의 숫자로 표현되다. 런레벨 0: 시스템 종료. 이 런레벨로 전환하면 시스템이 종료됩니다. 런레벨 1: 단일 사용자 모드. 네트워크 서비스나 다중 사용자 기능이 없는 최소한의 상태입니다. 런레벨 2: 다중 사용자 모드, 네트워크 없음. 여러 사용자가 접속할 수 있지만 네트워크 서비스가 제공되지 않습니다. 런레벨 3: 완전한 다중 사용자 모드(텍스트 …
  • profile_image 아마존리눅스2 또는 CentOS7에서 설치 테스트 된것입니다.rpm 설치 하는 방식으로 아래처럼 하면 됩니다. 시스템에 기본적으로 있는것은 버전이 낮기 때문에 최신 버전의 MySQL 데이터베이스가 필요한 경우는 아래와 같은 방법으로 패키지 리포티지를 받아서 설치 하는 방식을 사용하면 됩니다.wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm   # MySQL8 버전 설치하기  wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm…
  • profile_image 트리거란? RDBMS에서 트리거(trigger)는 데이터베이스에서 발생하는 특정 이벤트(INSERT, UPDATE, DELETE 등)에 반응하여 자동으로 실행되는 SQL 코드 블록을 의미합니다. 트리거는 일반적으로 데이터 유효성 검사, 데이터 변경 로깅 등의 작업에 사용됩니다.  MySQL 트리거 테스트 트리거든 어떤 것이든 버전에 따라 사용방법은 약간 다를 수 있는점 감안하고 보시면 됩니다. 아래 많이 사용하는 입력, 수정, 삭제에 대한 데이터를 감지하여 특정한 쿼리를 실행하는 예제입니다. 1) 트리거 테스트용 테이블 생성  CREATE TABLE tbl_data (    i…
  • profile_image 여기에선 caching_sha2_password.so 모듈을 설치하기 위한것과 설치하면서 GPG 검사를 비활성화 해야 되는 문제가 발생하여 비활성화 하는 방법에 대한 부분을 다룹니다.  caching_sha2_password.so 아마존리눅스2(AL2) 사용하면서 발생한 문제 입니다. 기본적으로 yum 패키지를 통해서 설치 될 경우 낮은 버전으로 포함이 되지 않아 생긴 문제로 최신 버전을 설치하면 됩니다. ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/cach…
  • profile_image curl은 웹에서 데이터를 전송하는 데 사용되는 커맨드 라인 도구입니다. HTTP, HTTPS, 등 다양한 프로토콜을 지원하며, URL 구문을 통해 데이터를 가져오거나 보낼 수 있습니다. curl의 주요 기능은 다음과 같습니다 데이터 전송: curl은 웹 서버로부터 데이터를 가져오거나 웹 서버에 데이터를 보내는 데 사용됩니다. 이는 파일 다운로드 및 업로드, API 요청 등에 유용합니다. 다양한 프로토콜 지원: curl은 HTTP, HTTPS 등과 같이 넓은 범위의 인터넷 프로토콜을 지원합니다. 인증: curl은 Basic, Digest, NTLM 등 여러 가지 인증 메커니즘을 지원하여 보안이 필요한 …
  • profile_image 이노디비 사용할 때 설정하면 성능이 향상 되는 메모리 설정관련된 부분입니다. 그리고 메모리는 연결할때 소요되는것과 연결과 무관하게 공통으로 사용되는 메모리가 있는데 이를 세션메모리, 글로벌 메모리라 부르는데 아래 부분에 나와 있는 부분 참고하면 됩니다. 이노디비(InnODB) 성능관련 주요 옵션 inodb_buffer_pool_size InnoDB만을 사용하는 경우, key_buffer_size=10M( 작아도 되고, 0이 아닌 값), inodb_buffer_pool_size=RAM의 70% 으로 설정 전체 InnoDB 데이터를 메모리에로드하도록 설정 하면 디스크에서 읽는 것을 방지 할 수 있습니다. in…
  • profile_image InnoDB(이노디비) 사용하면서 테이블이 깨진 경우가 있어 복구한 것에 대한 정리 글입니다. 이노디비 테이블 깨진 경우(1812 Tablespace is missing for table) InnoDB : 테이블에 대한 테이블 스페이스가 없습니다. Last_Errno: 1812 Last_Error: Error executing row event: 'Tablespace is missing for table testdb.test.' 참고: https://dba.stackexchange.com/questions/56849/innodb-tablespace-is-missing-for-table   원인 컴…
게시물 검색

상업적 이용 금지. 컨텐츠는 개인 용도로만 사용이 가능 합니다.