본문 바로가기

리눅스85

[apt] apt를 이용한 설치 파일을 다운로드 하는 방법 - Kerberos 설치 파일 다운로드 하는 방법 apt 를 이용하여 라이브러리를 설치 할 때 인터넷이 되지 않는 환경의 VM에 파일을 설치 하기 위해서 설치 파일을 다운로드 받아야 하는 경우가 있습니다. 이때는 다음의 명령어를 이용해서 파일 uri를 확인하고 wget 명령을 이용해서 파일을 다운로드 할 수 있습니다.  # krb 서버 sudo apt install --print-uris -y krb5-kdc krb5-admin-server# krb 클라이언트sudo apt install --print-uris -y krb5-user 위의 명령어를 입력하면 다운로드 파일 정보를 확인할 수 있습니다. 이 파일들을 모두 다운 받아서 다른 vm 에 설치하면 됩니다. 주의할 점은 이미 설치된 후 라면 정보가 출력되지 않을 수 있습니다. 설치 전에 미리 입력하는.. 2024. 9. 7.
[curl] curl: option --data-binary: out of memory 오류가 발생할 때 해결 방법 curl 에서 파일을 업로드 할 때 작은 용량의 데이터는 --data-binary 를 이용할 수 있습니다. 이때 out of memory 오류가 발생하면 -T 옵션을 이용하면 됩니다. -T(--upload-file) 옵션은 파일을 서버에 업로드 할 때 주로 사용합니다. curl -T filename.txt http://example.com/upload  -d (--data-binary) 옵션은 텍스트 데이터를 그대로 전송할 때 주로 사용합니다.curl --data-binary @filename.txt http://example.com/upload 2024. 9. 3.
[kerberos] Couldn't renew kerberos ticket in order to work around Kerberos 1.8.1 issue. Please check that the ticket for hue/xxxx 오류 처리 오류hue에서 커버러스(kerberos)를 설정하고 실행 할 때 다음과 같은 오류가 발생하면서 제대로 실행되지 않는 문제가 있었습니다. [28/Mar/2024 21:45:22 +0900] kt_renewer ERROR Couldn't renew kerberos ticket in order to work around Kerberos 1.8.1 issue. Please check that the ticket for 'hue/test.com@KERB.ROS' is still renewable: $ klist -f -c /tmp/hue_krb5_ccacheIf the 'renew until' date is the same as the 'valid starting' date, the ticket can.. 2024. 3. 30.
[bash] curl을 이용할 때 Error in the HTTP2 framing layer 에러 발생시 처리 방법 curl을 이용하여 통신할 때 특정 상황에서 다음 오류가 발생하는 경우가 있습니다. curl은 기본적으로 HTTP2 프로토콜을 이용하여 통신하고, 이 프로토콜을 이용하던 중 오류가 발생하면 다음의 에러가 나타납니다. Error in the HTTP2 framing layer 이 오류는 옵션을 추가하여 HTTP1 통신으로 처리하면 회피할 수 있습니다. curl --http1.1 xxx 2023. 8. 24.
[ssh] ssh 접속 배너 및 MOTD 대문 설정 서버에 ssh 로 접근했을 때 보여지는 ssh 배너 및 MOTD를 설정 하는 방법은 다음과 같습니다. 2023. 8. 20.
[bash] apt conflict 오류 apt 를 이용하여 라이브러리를 설치 할 때 다음과 같은 오류가 발생하는 경우가 있습니다. The following packages have unmet dependencies: libsasl2-modules-gssapi-heimdal : Conflicts: libsasl2-modules-gssapi-mit but 2.1.27~101-g0780600+dfsg-3ubuntu2.3 is to be installed libsasl2-modules-gssapi-mit : Conflicts: libsasl2-modules-gssapi-heimdal but 2.1.27~101-g0780600+dfsg-3ubuntu2.3 is to be installed E: Unable to correct problems, you .. 2023. 8. 19.
[ubuntu] 이더넷이 2개 일때 외부로 나갈 때 사용하는 이더넷 확인하는 방법 우분투에서 이더넷이 2개 일 때 하나의 네트워크는 내부 통신을 위해 사용하고, 다른 하나는 외부 통신의 목적으로 사용할 수 있습니다. 이때 외부로 나가는 이더넷을 확인하는 방법은 2가지가 있습니다. 하나는 ip route 명령을 이용합니다. ip route 명령을 사용했을 때 default 로 표현되는 이더넷이 외부로 나갈 때 사용하는 경로가 됩니다. $ ip route default via 11.182.92.1 dev enp4s0 proto dhcp src 11.182.94.148 metric 100 다른 하나는 ifconfig 명령을 이용합니다. 외부 경로에서 파일을 다운로드 하거나, 다른 작업을 처리하여 패킷을 사용하고 ifconfig 명령으로 RX 패킷이 늘어나는 이더넷을 확인하면 됩니다. $ i.. 2023. 6. 3.
[ubuntu] python 빌드 하는 방법 jupyter를 설치하기 위해서 ubuntu 20에서 파이썬 3.6 버전을 설치해야 하는 경우가 있어서 python 빌드 방법을 정리합니다. 우분투 20은 파이썬 3.8 버전이 기본 설치 되어 있습니다. 파이썬 3.6 버전을 사용하기 위해서는 소스를 다운 받아서 빌드해야 합니다. 주의 사항 설치할 때 make install 을 절대 사용하면 안됩니다. 기존에 설치된 파이썬 3.8과 중복되어 기본 적인 명령(ex: apt)이 실행되지 않을 수 있습니다. sudo update-alternatives 명령을 사용해서 기본 파이썬 명령을 변경할 때도 동일한 결과가 발생할 수 있습니다. 되도록 심링크등을 이용해서 설정하는 것이 좋습니다. apt 로 설치하는 라이브러리도 함께 설치 하고 빌드 하는 것이 좋습니다. .. 2023. 3. 21.
[bash] snappy 라이브러리 다운로드 설치 ubuntu 18.04에 패키지를 설치할 때 기본적으로 apt 를 이용하지만, 인터넷이 되지 않는 환경에서 작업을 해야 할 때는 설치 파일을 다운로드 해서 설치해야 합니다. 설치 파일은 다음 위치에서 확인할 수 있습니다. https://ubuntu.pkgs.org/20.04/ubuntu-main-arm64/libsnappy1v5_1.1.8-1build1_arm64.deb.html 그리고 Download 항목에서 설치 파일 다운로드 링크를 확인할 수 있습니다. 이 파일을 받아서 dkpg 명령으로 설치할 수 있습니다. 파일로 다운로드를 받게 되면 사전에 필요한 라이브러리가 없어서 설치가 안될 수도 있습니다. 이럴때는 필요한 라이브러리를 순서대로 설치해 주어야 합니다. 스내피 라이브러리명인 libsnappy-.. 2022. 8. 24.
[ubuntu] 우분투 18 로그인시 출력되는 MOTD 제거 하기 우분투 18.04는 사용자가 로그인하면 Welcome to Ubuntu 라고 출력되며, System information이 포함된 MOTD(Message Of The Day) 화면을 출력합니다. 이 화면을 제거하는 방법은 motd 파일의 실행 권한을 제거하는 것입니다. 다음 명령어를 입력하면 로그인 메시지가 출력되지 않습니다. sudo chmod -x /etc/update-motd.d/* 2022. 8. 2.
[ssh] ssh 접속 배너 설정하기 ssh로 서버에 접속할 때 접속자에게 배너를 보여 줄 수 있습니다. 배너를 설정하는 방법은 다음과 같습니다. /etc/ssh/sshd_config 의 banner 설정 수정. 사용자가 생성한 파일의 경로 지정 banner 파일 생성 sshd 재시작 배너로 사용하기에 좋은 ASCII Art 를 만들어 주는 사이트를 참고해서 배너를 만들면 좋습니다. https://patorjk.com/software/taag/#p=testall&f=Ogre&t=banner Text to ASCII Art Generator (TAAG) patorjk.com 2022. 8. 2.
[curl] curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) 오류 원인은 정확하게 알 수 없지만 curl을 이용하여 데이터를 확인한 결과를 다음 curl에 헤더값으로 사용하니 이상하게 다음과 같은 오류가 발생하였습니다. curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) 오류는 다음과 같이 http1.1 옵션을 추가해서 해결하였습니다. 처음에 사용한 curl의 스트림이 계속 연결된 상태로 다음 스트림을 계속 사용해서 그런것 같습니다. curl --http1.1 http://host_url 2022. 6. 1.
[curl] curl의 --form으로 전달 된 POST 데이터 확인하는 방법 curl --form으로 데이터를 전달 할 때 실제로 전달되는 데이터 내용을 확인 하려면 --trace-ascii 옵션을 이용하여 확인할 수 있습니다. 이 옵션을 사용할 때 옵션 뒤에 저장할 파일명을 입력하면, 해당 파일명으로 로그가 저장됩니다. 2022. 5. 2.
[bash] 배쉬 쉘의 옵션 켜고 끄는 방법 배쉬 쉘에서는 set 을 이용해서 옵션을 켜고 끌수 있습니다. 자주 사용하는 옵션은 오류가 발생하면 스크립트를 종료하게 하는 -e와 디버깅 메시지를 출력하게 하는 -x 옵션이 있습니다. 만약 옵션을 켜고 사용하는 중에 잠시 옵션을 꺼야 한다면 마이너스(-) 대신 플러스(+)를 사용하면 됩니다. #!/bin/bash # 디버깅 메시지 출력 set -x echo "A" # 디버깅 메시지 종료 set +x echo "B" # 디버깅 메시지 출력 set -x echo "C" 2022. 2. 21.
[ubuntu] df와 du의 용량 차이 df로 용량을 확인할 때는 사용량이 많은데 du로 확인할 때는 용량이 남는 경우가 있습니다. 이럴때는 lsof | grep delted 명령으로 사용중인 파일중 삭제할 스왑파일을 찾아보면 다음과 같이 VI 프로세스가 남아서 스왑파일이 남는 파일을 삭제 해주면 됩니다. # df로 확인할 때는 사용량이 291G 사용 $ df -h Filesystem Size Used Avail Use% Mounted on udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 7.3M 1.6G 1% /run /dev/sda2 440G 291G 132G 69% / tmpfs 7.8G 64K 7.8G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.8G 0 7.8G 0% /s.. 2022. 1. 25.
[vm] ubuntu 클라우드 이미지에서 apt 사용시 E: Could not get lock /var/lib/dpkg/lock-frontend 오류 발생시 처리 방법 ubuntu의 클라우드 이미지를 사용할 때 환경에 따라서 apt 사용시 락(lock)이 걸려서 사용을 하지 못하는 경우가 있습니다. 이 경우 원인은 다른 프로세스에서 apt를 사용하고 있을 때 발생합니다. 여러 가지 원인이 있을 수 있는데 저 같은 경우에는 사용하는 네트워크 환경에서 apt의 기본 리파지토리에 접근할 수 없어서 발생하였습니다. 기본 리파지토리에 접근이 안되는데 apt-daily.service 가 실행되어 다른 패키지를 설치 할 수 없는 문제가 발생하였습니다. 해결 방법 - apt-daily.service 종료 이 문제를 해결하는 방법은 apt-daily.service를 종료하고, /etc/apt/sources.list 파일을 교체 후 다시 실행하는 것입니다. https://unix.sta.. 2021. 12. 29.
[vi] VI의 기본 인코딩을 utf-8로 설정 VI를 이용할 때 한글이 깨지는 경우가 있습니다. 이 경우는 VI의 인코딩 설정이 utf-8이 아니어서 발생합니다. 처리 방법은 두 가지가 있습니다. EX 모드(:으로 들어감)에서 set encoding=utf-8을 입력 기본 설정 변경 ~/.vimrc 파일에 set encoding=utf-8을 입력 /etc/vim/vimrc 파일에 set encoding=utf-8을 입력 2021. 12. 21.
[ubuntu] 크론탭 설정 중 crontab rename: Operation not permitted 우분투에서 크론탭을 설정하는 중에 Operation not permitted 오류가 발생하는 경우가 있습니다. 이는 crontab 파일의 수정을 위한 권한이 부족할 때 발생합니다. 다음과 같이 /var/spool/cron/crontabs 파일의 수정권한이 부족하기 때문에 발생하는 오류로 해당 위치의 권한을 수정해야 합니다. # 오류 $ crontab -e crontab: installing new crontab crontab: crontabs/deploy: rename: Operation not permitted crontab: edits left in /tmp/crontab.BDmSwI/crontab # /var/spool/cron/crontabs 파일 수정 권한 부족 $ ll total 20 drwx.. 2021. 7. 27.
[ubuntu] systemctl 명령으로 서비스 등록 우분투에서는 systemctl 명령으로 프로세스를 서비스로 등록할 수 있습니다. 기본적으로 서비스명.service 파일을 만들고 systemd 데몬을 리로드 한 후 실행명령을 사용하면 실행할 수 있습니다. 기본 명령어 예제 서비스 파일의 예제는 다음과 같습니다. mysql 의 서비스 등록 예제와 zookeeper 를 서비스로 등록하는 예제입니다. 2021. 7. 19.
[bash] ssh로 원격 서버에 명령어 실행시 환경 변수를 읽지 않는 문제 해결 ssh 로 원격 서버에 접속하여 명령을 실행할 수 있습니다. echo 같은 기본 명령어는 잘 실행되지만 하지만 .bashrc의 설정에 따라서 원격 서버의 .bashrc에 설정된 PATH 정보를 확인하지 않고 실행될 수 있습니다. 이럴때는 해당 내용을 수정하여 주면 됩니다. 설정 위치는 다음과 같습니다. /etc/bash.bashrc ~/.bashrc 2021. 3. 29.
[ubuntu] apt-get 프록시(proxy) 설정 우분투의 apt-get의 프록시 설정은 /etc/apt/apt.conf 파일에 프록시 정보를 설정합니다. 파일이 없으면 직접 만들면 됩니다. 2021. 3. 28.
[bash] crontab을 echo로 일괄로 설정하는 방법 크론탭을 설정할 때 여러개의 노드에 한번에 설정해야 하는 경우가 있습니다. 이럴 때는 크론탭이 설정되는 파일에 바로 입력해 주면 됩니다. CentOS기준으로 해당 파일의 위치는 /var/spool/cront/유저명 파일에 내용이 저장됩니다. 해당 위치에 정보를 설정하면 됩니다. 2021. 3. 26.
[CentOS] root 계정의 암호 변경 root 계정의 암호를 변경하는 방법을 커맨드를 이용하는 방법과 스크립트를 이용하는 방법으로 알아보겠습니다. 2020. 12. 29.
[CentOS] yum으로 자바의 특정 버전 설치 하기 CentOS에서 AdoptOpenJDK 설치할 때 명령은 다음과 같습니다. 이 명령으로 설치할 수 없다면 리파지토리 설정을 추가해야 합니다. yum install -y adoptopenjdk-8-openj9 리파지토리 설정 리파지토리는 /etc/yum.repos.d에 repo 파일을 추가하면 됩니다. $ ls /etc/yum.repos.d $ vi adopt.repo [AdoptOpenJDK] name=AdoptOpenJDK baseurl=http://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/centos/$releasever/$basearch enabled=1 gpgcheck=1 gpgkey=https://adoptopenjdk.jfrog.io/adoptopenjdk/api/.. 2020. 10. 30.
[리눅스] 프로세스의 CPU, 메모리 확인 프로세스의 CPU, 메모리 사용 정보를 확인하는 방법은 ps, top 명령을 이용하는 것입니다. 프로세스의 메모리를 확인할 때는 프로세스의 PID를 알고 있어야 합니다. PS ps 명령의 -o, -p 옵션을 이용합니다. # 18299 프로세스의 정보를 확인 # pid: 프로세스 ID # pcpu: CPU 사용률 # pmem: 메모리 사용률 # rss: 물리 메모리 사용량 # vsz: 가상 메모리 사용량 # cmd: 커맨드 $ ps -o pid,pcpu,pmem,rss,vsz,cmd -p 18299 PID %CPU %MEM RSS VSZ CMD 18299 0.0 3.7 599432 3023072 /usr/lib/jvm/java 18299 프로세스의 정보를 확인해 보면 현재 3.7%의 CPU 점유율을 가지고.. 2020. 6. 11.
[리눅스] 시스템의 CPU, 메모리 사용량 확인 CLI 환경에서 현재 사용중인 시스템의 CPU와 메모리 사용량을 알아보겠습니다. CPU 사용량 CPU 사용량을 top 명령으로 확인하는 방법을 알아보겠습니다. top 명령을 실행하면 아래와 같이 시스템의 전체 정보와 현재 실행 중인 프로세스의 정보를 확인할 수 있습니다. $ top top - 02:18:58 up 208 days, 15:21, 2 users, load average: 0.04, 0.08, 0.08 Tasks: 209 total, 1 running, 138 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 15837320k total, 12287800.. 2020. 6. 11.
xmllint 명령어의 입력을 표준 입력(stdin)으로 사용하는 방법 xmllint의 입력을 표준 입력(stdin)으로 사용하는 방법은 하이픈(-)을 이용하는 것입니다. 리눅스에서 사용하는 명령어는 표준출력(stdout)과 표준 입력(stdin)을 하이픈으로 표현하기도 합니다. 명령어의 표준 출력과 표준 입력을 연결하는 파이프(|)에서 하이픈(-)을 이용하면 표준 출력이 표준 입력으로 전달됩니다. 사용하는 방법은 다음과 같습니다. # sample.xml 파일을 읽어서 xml 출력 포맷과 들여쓰기를 조정 $ xmllint --format sample.xml A B # 표준입력으로 전달하면 오류가 발생 $ echo "AB" | xmllint --format Usage : xmllint [options] XMLfiles ... Parse the XML files and outp.. 2020. 3. 11.
[linux][vi] VI 사용 방법 VI는 터미널 환경에서 많이 사용되는 텍스트 에디터입니다. 리눅스 배포판에 기본적으로 설치되어있고 다양한 기능을 가지고 있어 자주 사용하게 됩니다. 우리가 터미널 환경에서 사용하는 VI는 보통 VIM(Vi Improved)인 경우기 많습니다. VIM은 VI를 개선하여 만들어진 프로그램으로 리눅스에는 기본적으로 VIM이 VI로 alias가 등록되어 있습니다. # vi 명령의 alias 확인 $ alias vi alias vi='vim' VI의 특징 문법 강조 파일 타입을 이용하여 문법 강조 기능 제공 다양한 기능 검색, 치환, 복사, 붙여 넣기, 블록 지정 등 다양한 기본 기능 제공 단축키를 이용하여 빠른 작업 가능 테마 설정 기본 테마 변경 및 사용자 정의 테마 설정 가능 VI 사용 모드 VI는 4가지의.. 2020. 2. 27.
[linux] 리눅스 커맨드 라인 인터페이스에서 홈(Home), 엔드(End)키로 커서 이동시 영어 문자가 대문자로 변경되는 경우 수정 리눅스의 CLI환경에서 영어를 입력하고 홈(Home) 키나 엔드(End) 키를 이용하여 커서를 이동하려고 할 때 입력한 영어문자가 대문자, 소문자로 변경되는 상태가 될 때가 있습니다. 이는 리눅스 커맨드 라인의 입력 환경이 vi로 설정되어 있어서 발생하는 문제입니다. emacs모드로 변경하면 됩니다. 수정하는 방법은 다음과 같습니다. # set -o 명령으로 변경 # -o는 옵션을 지정하는 명령 $ set -o [vi|emacs] # emacs 모드 변경 $ set -o emacs # vi 모드 변경 $ set -o vi 리눅스는 기본적으로 두 개의 입력환경을 지원합니다. 사용자가 원하는 환경을 개별 사용자의 프로파일(~/.bashrc or ~/.profile)파일이나, OS 전체의 환경 프로파일(/et.. 2020. 2. 26.
[ssh] 터널링시 channel 3: open failed: connect failed: Connection refused 오류 해결 방법 ssh 터널링을 이용하여 원격지의 포트에 접속할 때 다음과 같은 오류가 발생하는 경우가 있습니다. channel 3: open failed: connect failed: Connection refused channel 3: open failed: connect failed: Connection refused 터널링 명령어 이때 사용한 터널링 명령어는 다음과 같았습니다. 로컬호스트의 14000포트와 원격지(10.20.30.40)의 8088 포트를 연결하였습니다. ssh -L 14000:127.0.0.1:8088 -oPort=20022 user@10.20.30.40 해결방법 원인은 원격지에 127.0.0.1에 대한 루프백설정이 막혀있어서 발생한 오류였습니다. 따라서 터널링 명령을 다음과 같이 변경하면 됩니다.. 2019. 11. 1.