Linux 154

[CentOS] Chrome 및 Selenium 설치

Selenium 웹 브라우저의 자동화를 가능하게 하는 도구와 라이브러리를 제공하는 프로젝트 Java, Python, C#, Ruby, JavaScript, Kotlin 등의 언어를 지원한다. 리눅스 OS에서 웹 크롤링 환경을 구성하기 위해 웹 브라우저인 크롬과 크롬 드라이버, 그리고 Selenium을 설치하려고 한다. 사용할 OS는 AWS Linux2(CentOS7)이고, Python3이 이미 설치되어 있으므로 Python으로 테스트까지 해보려고 한다. 설치 과정에서는 Sudo 권한이 필요하다. 1. 크롬 설치 공식 Google 저장소를 추가하는 대신 rpm 파일을 다운로드하여서 설치할 것이다. 어차피 설치 과정에서 저장소가 추가되기 때문이다. 아래와 같이 wget 명령으로 최신 크롬 패키지를 다운로드하..

Linux 2021.07.14

crontab - 매달 N번째 특정 요일에 실행시키기

crontab은 기본적으로 분, 시간, 일, 월, 요일 단위로 주기를 설정할 수 있다. 단순한 주기 설정은 기본 설정만으로도 충분히 가능하지만, 매 달 세 번째 일요일 실행 등과 같은 조건은 설정에 한계가 있다. 그렇다면 이런 주기 설정은 어떻게 해야 할까? 이 문제는 매주 특정 요일에 실행하도록 crontab에 설정하고, 실행 시점의 날짜를 체크하는 방식으로 해결할 수 있다. 방법 1. crontab 주기 설정 * * * * 7 테스트하기 쉽도록 일요일인 경우에는 매 시 매 분 실행하도록 설정했다. 2. 날짜 체크 * * * * 7 [ $(date +\%d) -gt 14 ] && [ $(date +\%d) -le 21 ] && /run/your/script.sh &&를 이용해 매 달 세 번째 주에만 스..

Linux 2021.06.24

다중 명령어 실행

Linux에선 기본적으로 한 줄에 하나의 명령어를 실행할 수 있다. 하지만 특수문자를 적절히 활용하면 여러 명령어를 한 줄로 이어서 사용할 수 있다. 다중 명령어를 실행할 수 있도록 하는 특수문자는 다음과 같다. 1. ; 명령어의 끝을 표시하는 문자 앞의 명령어의 실행이 실패해도 다음 명령어가 실행된다. 즉, 명령어가 순차적으로 실행된다. 두 번째로 실행한 명령어를 보면, docker 디렉터리로 이동하는 것을 실패했어도 docker/git 디렉터리로 이동한 것을 볼 수 있다. 2. | 여러 명령어를 실행할 때 이전 명령어의 결과를 다음 명령어의 입력값으로 지정한다. 텍스트 검색 명령어인 grep과 묶여서 자주 쓴다. 3. & 앞의 명령어는 백그라운드로 실행하고, 다음 명령어를 실행한다. 앞의 명령어의 실..

Linux 2021.06.23

명령어 경로 찾기

일반적으로 패키지를 설치하면, 설치한 프로그램을 실행할 수 있는 명령어를 제공한다. 당연하지만 하나의 명령어는 하나의 실행파일을 가리키고 있다. 따라서 패키지 하나의 여러 버전을 설치해서 사용할 때, 명령어가 바라보고 있지 않은 다른 버전을 실행하기 위해서는 실행파일을 직접 지정해서 명령을 실행해야 한다. 명령어의 위치를 찾는 명령어는 다음과 같다. 1. which 실행파일의 위치를 찾는 명령어 which alias가 있으면 alias를 먼저 보여준다. 명령어로 실행하는 것과 실행 파일을 지정하는 것은 동일한 결과를 보여준다. 2. whereis 바이너리, 소스, 매뉴얼 페이지 파일 같은 특정한 파일의 위치를 찾는 명령어 whereis # -b : 바이너리 파일만 검색 # -m : 매뉴얼 파일만 검색 #..

Linux 2021.06.22

No space left on device - inode 100% 사용 시

inode 파일 시스템에서 사용하는 자료구조로, 정규 파일 디렉터리 등 파일 시스템에 관련된 정보를 가진다. 각 파일은 하나의 아이노드를 가지며, 소유자 그룹, 권한, 파일 형태, 아이노드 숫자(inode number) 등 파일에 관한 정보를 가진다. 아이노드에 할당된 공간은 파일 시스템 전체 공간의 1% 정도이다. 아이노드에 할당된 공간이 한정되어 있기 때문에 파일 시스템이 저장할 수 있는 파일의 최대 개수도 한정되어 있다. 아이노드 사용량은 아래 명령어로 확인할 수 있다. df -i 보다시피 각 파일 시스템은 아주 많은 아이노드를, 즉 아주 많은 파일을 가질 수 있다. 하지만 로그 파일 등을 주기적으로 삭제하기 않고 계속 누적시키고 있거나 하는 등의 이유로 아이노드 사용량이 100%가 되는 경우가 있..

Linux 2021.06.15

NAS 마운트

NAS; Network Attached Storage 네트워크 연결형 저장소 컴퓨터에 직접 연결하지 않고, 네트워크를 통해 데이터를 주고 받는 저장장치 mount 저장 장치 에 접근할 수 있는 경로를 디렉터리 구조에 편입시키는 작업 원격 저장소인 NAS를 서버에서 디렉터리처럼 사용하기 위해서는 mount 작업이 필요하다. 그 방법에 대해 정리해둔다. 방법 1. 현재 디스크 정보 확인 df -h NAS는 Filesystem 값이 : 형식으로 표시된다. 2. 연결할 서버의 공유 디렉터리 확인 showmount -e # -e : 원격지의 공유된 디렉터리 목록을 보여준다. 각 디렉터리 앞에 :를 추가하면 mount 설정에 사용하는 NAS 주소가 된다. 즉, NAS는 df 명령으로 확인할 수 있는 Filesyst..

Linux 2021.06.14

[CentOS 7] 메모리 사용률 계산

들어가기 전에, 메모리 사용률 계산 방법을 참고하려고 들어왔는데 free 실행 결과가 아래 사진과 다르다면? 즉, Mem/Swap 사이에 행 하나가 더 있거나 available 열이 없으면 오래된 OS를 사용하고 있을 수 있으니 아래의 링크를 참고한다. 2021.06.11 - [CentOS 6] 메모리 사용률 계산 OS 버전이 올라옴에 따라 free 명령에도 변화가 있었기 때문에, 아래 내용은 도움이 되지 않을 것이다. 각설하고, free 명령으로 메모리 사용량을 확인하면 조금 이상한 점이 있다. 위 사진의 Mem 행에서 사용량(used)과 남은 메모리 용량(free)을 더해도 총 용량(total)에 한참 못 미친다는 것이다. 나머지는 대체 어디로 간 걸까? 바로 buff/cache에서 찾을 수 있다. ..

Linux 2021.06.12

[CentOS 6] 메모리 사용률 계산

먼저 free 명령어 결과가 아래 사진과 다르다면 이 글이 아니라 2021.06.12 - [CentOS 7] 메모리 사용률 계산 을 보기를 추천한다. 이 글 내의 OS나 free 버전보다 최신 버전을 사용하고 있을 수 있다. free 실행 결과를 이용해서 메모리 사용 비율을 계산하는데 이상한 점을 발견했다. 메모리를 크게 사용하는 프로세스가 없는데 메모리 사용률이 90%를 넘은 것이다. 이유를 몰라 원인을 찾던 중에 리눅스는 성능 향상을 위해 사용하지 않는 메모리 일부를 캐시 영역으로 할당해둔다는 것을 알았다. Mem 행의 used 값은 캐시 영역을 포함한 메모리 사용량을 나타낸 것이었다. Mem 행에서 각 속성이 의미하는 바를 정리하면 다음과 같다. total 현재 시스템에 설치되어 있는 전체 메모리 ..

Linux 2021.06.11

chown - 파일/디렉터리 소유자 변경

chown; change the owner of a file 파일 소유권 변경 어떤 파일이나 디렉터리에 대한 권한은 소유자/그룹 사용자/기타 사용자에 따라 다르게 설정할 수 있는데, 권한 문제로 인해 소유자를 변경해야 하는 일이 종종 있다. 예로 들면 root 계정이 소유한 디렉터리를 일반 사용자가 자주, 그리고 많이 수정하는 경우에는 해당 디렉터리의 소유자를 변경하는 것이 편하다. 물론 /root 경로 아래 시스템 관련 디렉터리 소유권은 변경하지 않는 것이 좋다. 파일/디렉터리 소유자 확인 ls -l #또는 ll /root 경로에 임의로 생성해둔 /docker_test는 ec2-user 계정이 수정할 수 있도록 하되, 다른 사용자는 수정할 수 없도록 하려고 한다. 현재 권한 수준이 이미 원하는 대로 되..

Linux 2021.06.10

파일/디렉터리 개수 세기

파일이나 디렉터리는 용량도 무척 중요하지만, 종종 개수도 따져봐야 할 때가 있다. Linux에서는 아래처럼 명령어 3개 정도를 조합하면 간단하게 해당 경로의 파일이나 디렉터리 수를 구할 수 있다. # 파일 개수 출력 ls -al | grep ^- | wc -l # 디렉터리 개수 출력 ls -al | grep ^d | wc -l 아래에 각 요소의 의미에 대해서도 정리해둔다. 1. ls; list segments 현재 디렉터리 내 파일이나 디렉터리에 대한 목록 표시 ls # -a : all; 숨긴 파일/디렉토리를 포함한 목록 표시 # -l : long; 각 파일의 권한, 소유자, 그룹, 수정일 등 상세 정보 표시 -l 옵션을 사용하면 한 줄에 하나의 파일/디렉터리에 대한 상세 정보를 볼 수 있다. 순서대로 ..

Linux 2021.06.09