본문 바로가기

IT/Linux7

sftp를 활용하여 파일 리스트를 가져오는 shell script 만들기 이번 글에서는 linux 환경에서 sftp를 활용하여 여러 파일을 가져오는 쉘을 만들어 볼 것이다. 해당 쉘을 정상적으로 수행시키기 위해서는 쉘 수행 서버에서 원격지 서버로 비밀번호 없이 sftp 접속이 가능하도록 설정해줘야 한다(예를 들면 ssh-keygen 등록 등) 1. 쉘 실행 순서 1) 동일 이름의 쉘 동시수행 체크 2) 파일 리스트 추출(아래 쉘에서는 FILE이라는 이름으로 시작하는 txt 파일 추출) 3) 파일 리스트를 sftp 명령어를 수행해서 원격 디렉토리에서 로컬 디렉토리로 가져옴 2. 쉘 스크립트 내용 #!/bin/bash TODAY=`date +%Y/%m/%d-%H:%M:%S` REMOTE_ADDR="[원격지 IP 주소]" REMOTE_USER=[원격지 유저ID] REMOTE_DIR.. 2022. 3. 3.
[에러 해결]ssh_exchange_identification: read: Connection reset by peer 에러 해결 리눅스에서 sshpass와 scp를 통해서 파일 전송 시(클라이언트 서버 -> 호스트서버로 파일 전송) 다음과 같은 에러가 발생하는 경우가 있다. ssh_exchange_identification: read: Connection reset by peer lost connection Build step 'Execute shell' marked build as failure 해당 에러는 호스트 서버에 클라이언트 서버의 SSH 접근이 허용되지 않았기 때문에 발생한 문제다. 해당 문제를 해결하기 위해서는 호스트 서버에 있는 /etc/hosts.allow 파일에 클라이언트 서버의 IP를 추가해주면 된다. sshd: [클라이언트 서버 ip] 참고 phoenixnap.com/kb/fix-connection-reset.. 2021. 3. 22.
리눅스 scp를 활용한 원격 파일 전송 리눅스를 사용하다보면 원격으로 파일을 전송해야 하는 경우가 있다. 이번 글에서는 리눅스 환경에서 scp를 사용하여 원격으로 파일을 전송하는 방법에 대해 알아볼 것이다. scp는 secure copy (remote file copy program)의 줄임말로 ssh를 이용해 네트워크로 연결된 호스트간에 파일을 주고 받는 명령어이다. 우선 scp를 사용하기 위해서는 다음과 같은 조건이 선행되어야 한다. 1. 리눅스 및 bash shell 2. 목적지 서버의 22번 포트(SSH포트) 개방 그럼 파일을 전송하는 방법에 대해 알아보자 1. 로컬서버(접속한 서버) -> 리모트서버로 파일 전송 scp [목적파일명(경로)] [유저명]@[IP주소]:[목적디렉토리] 2. 리모트서버 -> 로컬서버(접속한 서버)로 파일 전송.. 2020. 10. 25.
리눅스 명령 프롬프트 변경하기 리눅스를 사용하다 보면 명령 프롬프트 창을 변경해야 하는 경우가 종종 있다. 이번 글에서는 명령 프롬프트 창을 변경하는 방법에 대해서 정리해보고자 한다. 1. 접속한 계정의 명령 프롬프트 창을 일시적으로 변경하기 export 명령어를 통해서 명령 프롬프트 창 변경이 가능하다. 일시적으로 명령 프롬프트 창을 변경할 때 유용하다. 단 해당 서버에 재접속을 하게 되면 명령 프롬프트 창이 초기화된다. $ export PS1="[변경하고 싶은 명령 프롬프트]" 2. 접속한 계정의 명령 프롬프트 창 변경하기 ~/.bashrc 파일을 수정해주면 동일한 계정으로 재접속을 하거나 재부팅을 해도 변경된 명령 프롬프트 창은 유지된다. 1) ~/.bashrc 파일을 열어서 export PS1="[변경하고 싶은 명령 프롬프트].. 2020. 10. 22.
파일 디스크립터(File Descriptor) 란 무엇인가? 1. 개념 파일 디스크립터(File Descriptor)란 리눅스 혹은 유닉스 계열의 시스템에서 프로세스(process)가 파일(file)을 다룰 때 사용하는 개념으로, 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이다. 파일 디스크럽터는 일반적으로 0이 아닌 정수값을 갖는다. 흔히 유닉스 시스템에서 모든 것을 파일이라고 한다. 일반적인 정규파일부터 디렉토리, 소켓, 파이프, 블록 디바이스, 케릭터 디바이스 등 모든 객체들을 파일로 관리한다. 유닉스 시스템에서 프로세스가 이 파일들을 접근할 때 파일 디스크립터라는 개념일 이용한다. 프로세스가 실행 중에 파일을 Open하면 커널은 해당 프로세스의 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당해준다. 그 다음 프로세스가 열려있는 파일.. 2020. 3. 25.
리눅스 모듈 관리(lsmod, modprobe, modinfo) 리눅스의 모듈은 리눅스 커널에서 필요한 시스템 관리기능들을 모두 커널에 포함시키지 않고, 필요에 따라서 추가하여 사용할 수 있도록 구혀된 매커니즘이다. 리눅스 모듈 확인 및 관리하기 위해서는 아래와 같은 명령어들이 존재한다. 1. lsmod 현재 리눅스 시스템에 설치된 모듈의 리스트를 확인하는 명령어다. 2. modprobe 리눅스 모듈을 관리하는 명령어다. 2-1. 옵션 옵션 없음 : 모듈을 추가한다. (사용방법 : modprobe [모듈명]) -l : 모든 모듈 목록을 출력한다. (사용방법 : modprobe -l) -r : 모듈을 제거한다. 의존성이 있는 모듈이 사용되고 있지 않으면 알아서 같이 제거한다. (사용방법 : modprobe -r [모듈명] -c: 모듈 관련 환경설정파일의 내용을 전부 출.. 2020. 1. 3.
리눅스(CentOS)계정에 root 권한 부여하기 1. 유저 생성 유저를 생성하고 비밀번호를 설정한다(이 글에서는 test라는 유저를 생성했다) 2. 권한 부여 /etc/passwd 파일에서 생성한 계정의 UID와 GID를 모두 0으로 변경한 후 저장한다. 3. root 그룹 포함 /etc/group 파일에서 생성한 계정을 root group에 포함시킨 후 저장한다. 2019. 12. 21.