curlftpfs - 리눅스에서 ftp 서버를 디렉토리에 연결(마운트)하기
By 반달가면 | 2018년 5월 9일 |
리눅스에서 curlftpfs를 활용하면 ftp 서버에 접속해서 작업하는 과정을 로컬(local) 디렉토리에서 작업하는 방식과 동일하게 만들 수 있다. ftp 서버의 디렉토리를 로컬 디렉토리에 연결(마운트)해 준다. 우선 curlftpfs 패키지를 설치하자. 데이안/우분투 계열 기준으로 터미널창에서 아래와 같이 입력 # curlftpfs 설치 sudo apt-get install curlftpfs 이제 연결을 해 보자. 예를 들어 ~/ftpfs_test 디렉토리에 연결할 ftp 서버 주소는 ftp.my_server.net, 접속 계정은 john, 암호는 abcd라면 아래와 같이 실행할 수 있다. curlftpfs ~/ftpfs_test 이제 ~/ftpfs_test 디렉토리로 가 보
[라즈베리파이] 시그널 - 커널에서 시그널은 어떻게 처리할까?
By Guillermo Austin Kim | 2018년 12월 2일 |
리눅스 커널 입장에서 시그널은 프로세스 간 통신을 위한 간단한 인터페이스입니다. 커널은 상황에 따라 시그널을 생성하고 전달해주는 역할을 수행합니다. 리눅스 커널에서 시그널에 대한 처리는 2단계로 나눌 수 있습니다. 1> 시그널 생성유저 공간에서 시그널을 설정하면 커널은 해당 프로세스의 태스크 디스크립터에 시그널 정보를 써줍니다. 시그널을 받을 프로세스 스택 최상단 주소에 있는 struct thread_info flags 멤버에 _TIF_SIGPENDING 매크로를 써 줍니다. 시그널을 받을 프로세스에게 누군가 시그널을 생성했고 해당 시그널이 전달될 것이라고 알려주는 것입니다. 이후 시그널을 받을 프로세스를 깨웁니다. 2> 시그널 처리시그널을 받을 프로세스가 시스템 콜이나 인터럽트 처리를 마무
[리눅스] insmod 명령어로 드라이버 설치 시 커널 내부 동작 디버깅해보기(ftrace)
By Guillermo Austin Kim | 2020년 6월 28일 |
이전에 다음 글에서 insmod 명령어를 통해 모듈 타입 디바이스 드라이버가 설치될 때,커널 내부 함수가 어떤 흐름으로 작동하는지 코드를 리뷰했습니다. [리눅스] 드라이버: module_init 키워드로 지정한 함수가 호출되는 원리 - sys_finit_module()http://rousalome.egloos.com/10016090 이어서 이번 시간에는 ftrace를 통해 hello_module_init() 함수가 어떻게 호출되는지 살펴보겠습니다. insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름 먼저 다음 그림은 insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름을 나타냅니다. 그림의 윗 부분에서 '유저 공간'으로 표기된 부분을 봅시다. insmod가 실행되어 시
[bash: if, grep] 특정 문자열의 존재유무에 따른 작업 지정하기
By 반달가면 | 2017년 10월 31일 |
어떤 파일에 특정한 문자열이 있는 경우와 없는 경우에 각기 다른 작업을 해야 할 경우, if 조건문과 grep을 적절히 조합해서 간편하게 구현할 수 있다. 우선 if 조건문의 -z 옵션을 보자. 이것은 문자열의 길이가 0이면 참, 0이 아니면 거짓이다. 아래의 예시를 보자. string="abc" # 변수 abc에 저장된 문자열의 길이가 0인 경우 메시지 출력 if [[ -z $string ]] then echo "변수 string에 저장된 문자열의 길이는 0입니다." fi 이제 원래의 문제로 돌아가서, 예를 들어 파일 my_file.txt에 문자열 "abcd"가 존재하느냐 여부에 따라서 뭔가 다른 작업을 해야 하는 경우를 생각해 보자. if 조건에 grep을 이용한 문자열 검색의