잘쓰던 포트였는데 갑자기 문제가 발생했다.

아래의 내용은 윈도우OS에서의 해결책이다.

 

내 원인

나의 경우에는 intellij에서 해당 포트와의 연결을 끊고 프로그램을 종료 했는데 그 후 재부팅을 하고 어쩌고 해도 저 포트를 사용할 수 없었다. 일반 콘솔에서도 동일한 에러가 발생하고 있었다.

 

해결

관리자 모드로 콘솔 혹은 파워셀을 연다.

net stop winnat
net start winnat

잘 된다.

 

출처: https://stackoverflow.com/questions/9164915/node-js-eacces-error-when-listening-on-most-ports

'오류노트 > Javascript' 카테고리의 다른 글

Material UI - RadioGroup , Radio 관련  (0) 2021.06.02

trigger를 통해서 값이 insert되면 외부 프로그램, 혹은 API를 호출하고 싶었다.

그때마다 검색되는 UDF인 sys_exec() 는 my_global.h가 없어 컴파일이 안되어 사용할 수 없는 상황이었다.

(MySQL 5에서는 있었지만 8 혹은 마이너 버전부터 제외한다는 글을 본 것 같다.)

mysql 내부에서 해결하는 것은 포기하고 돌도 돌다 node.js에 binlog를 이용하여 테이블을 감시하는 것을 찾았다.

https://www.npmjs.com/package/@vlasky/mysql-live-select

원래는 목적으로는 특정 레코드의 컬럼까지 감시가 가능한 것 같지만, 나는 테이블만 감시하는 목적으로 사용하려고 했고, 제공된 예제를 아래와 같이 수정하니 목적을 달성할 수 있게 되었다.

const LiveMysql = require('@vlasky/mysql-live-select');
const LiveMysqlKeySelector = require('@vlasky/mysql-live-select/lib/LiveMysqlKeySelector');

const settings = {
  host: '호스트주소',
  user: '아이디',
  password: '비밀번호',
  database: 'DB명'
};

const liveConnection = new LiveMysql(settings);

liveConnection
  .select('select version()', [], LiveMysqlKeySelector.Index(), [
    {
      table: '테이블명',
      condition: function (row, newRow, rowDeleted) {
        if (row && newRow === null) {
          if (rowDeleted === false) {
            // insert 상황            
          } else {
            // delete 상황
          }
        } else {
          // update 상황
        }
        return true;
      }
    }
  ]);
git config core.ignorecase false

 

tar 압축

find `ls` -type d -maxdepth 0 -exec tar -cvf "{}.tar" "{}" \;

 

zip 압축
find `ls` -type d -maxdepth 0 -exec zip -r -9 "{}.zip" "{}" \;

 

주의사항

maxdepth가 0이라 최상위 레벨까지만 압축한다.

'Server > 기타' 카테고리의 다른 글

쉘스크립트 - 파일을 폴더 생성 후 이동  (0) 2022.06.22
#!/bin/bash

for file_name in *.dat; do			# 현재 디렉토리에서 확장자가 dat 파일들만 반복
	folder_name="${file_name:18:10}"	# 파일명에서 디렉토리명 추출. 자리수는 0부터 시작하고 10글자 추출함.

	if [ ! -d "$folder_name" ]; then	# 해당 디렉토리가 존재하지 않으면 생성
		mkdir "$folder_name"
	fi

	mv "$file_name" "./$folder_name/$file_name"	# 파일을 해당 디렉토리로 이동
done

 

주의사항

반복문에서 경로를 '*.dat'가 아닌 './*.dat' 로 하는 경우 file_name 은 '파일명'이 아닌 './파일명'이 되기 때문에 자리 수를 감안해서 설정해야 한다.

 

'Server > 기타' 카테고리의 다른 글

리눅스 폴더별 압축  (0) 2022.06.22

+ Recent posts