전체 글416 [Linux] Directory file count 리눅스에서 실행 중인 프로세스가 파일 디스크립터(FD)를 몇 개 열고 있는지 확인할 때 /proc/PID/fd 디렉터리를 살펴볼 수 있습니다. 소켓 프로그램을 점검할 때도 도움이 되지만, FD 개수와 연결된 소켓 수는 같지 않을 수 있습니다.프로세스의 FD 목록 확인하기예를 들어 대상 프로세스의 PID가 29283이라면 cd /proc/29283/fd로 이동해 목록을 확인합니다. 실제로는 현재 실행 중인 프로세스의 PID로 바꿔야 합니다.이 디렉터리의 항목은 프로세스가 연 FD를 번호로 나타낸 심볼릭 링크입니다. 일반 파일뿐 아니라 소켓, 파이프, 표준 입력·출력, epoll 등의 항목도 포함될 수 있습니다.번호가 연속되어 있지 않아도 이상한 것은 아닙니다. 파일이나 소켓을 열고 닫는 과정에서 번호가 비.. 2021. 12. 28. [Linux] 일정 기간 지난 파일 삭제 로그나 백업 파일이 매일 쌓이면 오래된 파일을 하나씩 지우기 번거롭습니다. find로 파일의 종류와 수정 시각을 조건으로 걸면 정리할 대상을 한 번에 찾을 수 있습니다.기존 스크립트에서 확인할 부분당시에는 test.sh에 아래 두 줄을 넣어 SQL 백업 파일을 정리했습니다. 다만 그대로 사용하기 전에 날짜 기준과 검색 범위를 확인해야 합니다.-mtime은 파일을 만든 날짜가 아니라 마지막으로 수정한 시각을 기준으로 합니다. GNU find의 -mtime +30은 경과 시간을 24시간 단위로 계산하고 소수 부분을 버린 값이 30보다 큰 경우입니다. 따라서 정확히 30일 직후가 아니라 31개의 24시간 구간이 지난 파일부터 해당합니다.이 조건은 파일명에 적힌 날짜를 읽지 않습니다. 이름이 1월 백업이어도 최.. 2021. 12. 28. [Linux] Crontab이란? 리눅스에서 백업이나 로그 정리를 반복해서 실행할 때 cron을 사용할 수 있습니다. cron은 예약 시각을 확인해 명령을 실행하는 서비스이고, crontab은 사용자별 예약 목록을 조회하거나 편집하는 명령입니다.예약 목록 확인과 수정crontab -l : 현재 사용자의 예약 목록을 확인합니다.crontab -e : 현재 사용자의 예약 목록을 편집합니다.crontab -r : 현재 사용자의 crontab 전체를 삭제합니다. 한 작업만 지우려면 -e로 열어 해당 줄을 수정해야 합니다.시간 필드 읽는 순서사용자 crontab의 한 줄은 분, 시, 일, 월, 요일, 실행할 명령 순서입니다. /etc/crontab이나 /etc/cron.d의 시스템 설정에는 실행 사용자 필드가 추가되므로 형식을 혼동하지 않아야 합.. 2021. 12. 27. [Android] Lint found fatal errors 해결 안드로이드 앱의 서명된 APK를 만들다가 다음 메시지로 빌드가 중단됐습니다. 당시 프로젝트에서 SDK 설정과 Support Library 의존성을 정리한 과정을 남깁니다.Lint found fatal errors while assembling a release target.먼저 실제 Lint 항목 확인하기이 문구는 릴리스 빌드 중 치명적인 Lint 문제가 발견됐다는 요약입니다. 문구만으로 targetSdk나 AndroidX가 원인이라고 판단할 수는 없습니다. Build 출력과 Lint 보고서에서 문제의 ID, 파일 위치, 설명을 먼저 확인해야 합니다.필요하면 프로젝트의 Gradle wrapper로 ./gradlew lintRelease를 실행해 릴리스 변형을 검사할 수 있습니다. 제품 flavor가 있으.. 2021. 12. 27. [임베디드] CAN 통신이란? CAN은 Controller Area Network의 약자입니다. 차량의 ECU들이 데이터를 주고받는 데 널리 쓰이며, 공장 설비에도 사용됩니다. 저도 콩나물 공장 자동화 설비를 구성하면서 CAN 통신을 사용한 경험이 있습니다.여러 장치가 같은 버스를 공유합니다각 모듈을 일대일로 모두 연결하는 대신 공통 버스에 연결하는 구조입니다. 아래 그림은 이 연결 관계를 단순하게 나타낸 것입니다.일반적인 고속 CAN은 CAN High와 CAN Low의 차동 신호를 사용합니다. 실제 회로에는 CAN 컨트롤러와 트랜시버가 필요하고, 버스 양 끝의 종단 저항과 배선 길이, 접지 조건도 고려해야 합니다. 신호선 두 가닥만 연결하면 어떤 구성에서든 동작한다는 뜻은 아닙니다.메시지 ID와 수신 필터의 차이CAN ID는 기본적.. 2021. 12. 27. MySQL 테이블 대소문자 오류: lower_case_table_names 확인과 이전 주의점 Windows에서 개발한 SQL을 리눅스 서버로 옮겼을 때 테이블 이름의 대소문자 차이로 조회가 실패할 수 있습니다. 이때는 운영체제 이름만 보고 판단하기보다 실제 DB 제품, 버전과 lower_case_table_names 값을 확인하는 것이 먼저입니다.현재 설정 확인하기SHOW VARIABLES LIKE 'lower%';위 화면의 lower_case_table_names는 0입니다. 정확한 항목 하나만 조회하려면 SHOW VARIABLES LIKE 'lower_case_table_names';를 사용할 수 있습니다.MySQL에서 0은 지정한 대소문자로 이름을 저장하고 비교할 때도 구분합니다. 1은 이름을 소문자로 저장하고 대소문자를 구분하지 않고 비교합니다. 2는 대소문자를 유지하는 방식이지만 비교는.. 2021. 12. 21. 이전 1 ··· 58 59 60 61 62 63 64 ··· 70 다음 반응형