반응형

 

 

sftp 명령을 이용하여 Server와 PC(Client) 간에 파일을 전송하는 방식을 주로 사용하지만,

가끔 Linux 서버에 SFTP 서버 데몬이 구동되어 있지 않거나 ssh 터미널만 접속한 상태에서 즉시 파일을 전송할 때는 rz, sz 같은 zmodem을 사용하면 편하다.

(1990년 대, 하이텔 또는 나우누리 또는 천리안 같은 PC 통신을 사용한 사람이라면 대충 zmodem에 대한 느낌이 팍~ 올거다)

 

 

 

Mac OS에 rz sz 모뎀 프로그램 설치하기

 

##
## zmodel(즉, rz와 sz)를 사용하기 위해서는 xcode 개발자 도구가 필요하다.
## 따라서 아래와 같이 xcode를 설치한다.
##

$  xcode-select --install
xcode-select: note: install requested for command line developer tools

##
## lrzsz 프로그램 설치하기
##

$  brew install lrzsz

##
## rz, sz 명령을 수행했을 때, iTerm2를 Triggering할 수 있도록 
## Shell Script를 만든다.
## ( 이미 다른 사람이 친절하게 iTerm2 Triggering 스크립트를 만들었다. 
##   그냥 아래 설명처럼 Script 파일을 복사해서 사용하면 된다. )
##

$  git clone https://github.com/robberphex/iTerm2-zmodem.git

$  sudo  cp iterm2-*-zmodem.sh /usr/local/bin/

 

 

 

Iterm2 터미널 Trigger 기능 설정

 

아래 화면처럼 Triggers 설정 항목에 rz, sz 명령에 관한 Trigger 정보를 추가한다.

 

Default Profile에 Triggers 기능 추가하기

 

iTerm2 터미널의 RZ, SZ 명령에 대한 Trigger 정보 추가

 

 

위 과정까지 따라했다면, 설치와 설정 작업은 끝이다.

 

 

 

실제로 파일을 전송해보자 !!!

 

Linux 서버에 SSH 접속해서 아래처럼 명령을 수행해보자.

그러면 자동으로 Finder 창이 열릴 것이고, test-img.jpg를 저장할 폴더를 선택해준다.

그러면 알아서 파일이 내 PC(즉, 맥북)에 전송될 것이다.

 

 

 

 

 

Troubleshooting  (문제, 오동작 해결하기)

 

위 설명을 따라서 설치하면 대부분 rz, sz 명령은 잘 동작한다.

그런데 만약 rz, sz 명령을 수행했는데, 제대로 파일이 전송되지 않는다면 아래와 같이 rz, sz 명령의 경로가 올바른지 한번 확인하고 명령의 경로만 잘 설명해주면 된다.

 

$  sudo  cat  /usr/local/bin/iterm2-recv-zmodem.sh

#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
    FILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
else
    FILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
fi

if [[ $FILE = "" ]]; then
    echo Cancelled.
    # Send ZModem cancel
    echo -e \\x18\\x18\\x18\\x18\\x18
    sleep 1
    echo
    echo \# Cancelled transfer
else
    cd "$FILE"
##
## NOTE : 본인 Mac PC에 설치한 rz, sz 명령의 위치가 /usr/local/bin 인지 /opt/homebrew/bin 인지
##        확인하고, 아래 예제처럼 올바르게 경로를 설정해주어야 한다.
##
#   /usr/local/bin/rz --rename --escape --binary --bufsize 4096
    /opt/homebrew/bin/rz --rename --escape --binary --bufsize 4096
    sleep 1
    echo
    echo
    echo \# Sent \-\> $FILE
fi

 

 

반응형

 

Netcat(nc) TCP, UDP를 통해 Peer(Client/Server) 연결하고, 데이터를 읽고 쓰는 유틸리티 프로그램이다.

 

대부분 개발자, 운영자가 아래와 같은 목적으로 NC 명령을 사용할 것이다.

 

1)  두 장비(Network Node) 간에 IP Network이 정상인지 확인하거나

2)  중간에 방화벽이 있다면, 방화벽 정책이 적용되었는지 직접 TCP, UDP 트래픽을 테스트하기 위해서 NC를 사용한다.

3)  서버 또는 클라이언트 한쪽만 개발(구현)한 뒤에 Peer를 시뮬레이션하기 위해서...  (즉, 시뮬레이터 만들기 귀찮아서 ㅋㅋ) 

 

 

 

설치

 

##
## Mac OS 에 설치하는 경우
##

$  brew install netcat


##
## Ubuntu 에 설치하는 경우
##

$  apt install -y netcat


##
## CentOS, Redhat 에 설치하는 경우
##

$  yum install -y nc

 

 

 

사용 방법 / 예제

 

장황하게 설명하는 것보다는 아래 화면 캡처 하나가 훨씬 이해하기 좋을 듯~~~

그냥 아래 화면처럼 따라하면 테스트가 잘 된다.

 

##
## Netcat Server
##

$  nc  -l  -p 9090


##
## Netcat Client
##

$  nc  10.10.5.3  9090

이것은 테스트 메시지이다. (enter key)
...
...
... 이런 식으로 메시지를 타이핑하면서 테스트한다 ...
...
...

^C

$

 

 

게시물 작성자: sejong.jeonjo@gmail.com

 

반응형

 

평생 C 언어, Go 언어로 Server Side 프로그램만 개발했던 나에게 새로운 과제가 생겼다.

Web Front End, Back End 개발 ~~~

 

밥벌이로 Web 프로그래밍을 한 것이 2003년이 마지막인데, 지난 19년 동안 개발 환경이 많이 변했겠지.

어렵풋한 기억에 PHP, Java Beans, JSP로 Web 서비스를 개발했었던 것 같다.

 


그냥 한 귀로 듣고 넘어가는 나의 푸념...
솔직히 2000년 ~ 2003년 사이에 내가 했던 개발 내용이나 방법보다는 자정까지 사무실에서 졸린 눈을 비비며, 고생한 흔적만 몸에 남은 듯...
그래서 웹 서비스 개발에 대한 나의 부정적 느낌이 여전히 남아 있다. ㅠㅠ
20년이 지나도록 그 느낌은 지워지지 않고 있다.
나에게 다시는 웹과 관련한 개발이 없을 줄 알았는데 ~~~ 이렇게 새로운 도전 과제가 주어졌다.

 

첫 삽은 PatternFly를 리서치하고, 내가 만들려는 Web App에 적절한지부터 파악해야겠다.

 

 

 

PatternFly가 뭐 하기 위해 만들어진 도구인가?

 

PatternFly Homepage에 소개된 글을 요약해보면, 아래 문장이 될 듯~~~

 


PatternFly는 
Application(앱) 전반에 걸쳐 UI 통일성을 유지하기 위한 Open Source Web UI Desgin 시스템.
그리고
Web UI 디자이너와 개발자가 협업할 수 있도록 Guidance와 Standard(표준) 업무 절차를 제공.

 

 

 

PatternFly 구조

Components

Web Page에 보여질 Text, Image(Picture), Table  같은 것.

 

Layouts

Screen의 가로, 세로 크기가 변하더라도 Web Page의 components가 Screen에 잘 보여지도록 components를 재배치한다.

 

Demos

PatternFly는 여러 Components를 조합해서 Layouts을 디자인하는 예제(Demo)를 제공한다.

유용한 Demo 코드를 제공하므로 이런 Demo 코드를 이용하면 적은 노력으로 Web UI를 만들 수 있다.

 

 

 

PatternFly 디자인 가이드라인

Style Guideline

컬러, 글씨체(폰트), 여백 같은 디자인 체계에 대한 가이드라인을 제시한다.

Usage and Behavior

Navigation, dashboards, form 같은 디자인 패턴에 대한 가이드라인을 제시한다.

UX Writing

 

 

 

 

 

 

 

 

반응형

 

맥북 프로 (Macbook Pro) 2015 Mid를 사용한지 어언 6년이 흘렀다.  (그리고 3개월 전에는 맥북 M1도 구입해서 사용 중이다.)

맥북 프로의 기본 Display 화질과 내가 가지고 있는 30~50만원대 HDMI 모니터들과 화질 차이가 많이 나서 그 동안 HDMI로 모니터를 연결하지 않고 맥북 프로 화면만 사용해서 업무를 했다. (화면이 좁아서 답답한 느낌이 있지만, 두 모니터의 화질 차이가 커서 생기는 불편함보다는 괜찮다)

그렇다고 80만원이 넘는 LG 4K 모니터를 구입하기는 부담스러웠다.

 

 

그런데, 30만원 짜리 4K 모니터가 나오다니 !!!

 

 올해 봄부터 4K 해상도에 USB-C 영상 입력과 DP 영상 입력이 지원되는 30만원 짜리 모니터가 나왔다.

 

특히 잇섭님이 주연테크 V28UE 모니터가 가성비 좋다고 소개해서 출시하고 몇달 지나지 않아서 생상된 물량 모두가 팔리는 일까지 생겼다.

 

나도 원래 지난 2021년 8월에 이 V28UE 모니터를 구입하려고 했었는데, 품절이 한달 이상 지속되면서 마음을 바꾸었다.

거의 동일한 스펙(Spec), 그리고 거의 비슷한 가격으로 CrossOver 회사도 2890CU IPS TYPE-C 모니터를 출시한 것이다.

 

2021년 8월에 주문할 때만해도 블로그, YouTube에 사용자 리뷰가 없어서 크로스오버 2890CU 를 구입하는 것이 좋은 판단인지 헷갈렸는데 거의 5개월 정도 사용한 지금은 아주 만족하면서 사용하고 있다.

 

 

얼마나 만족하냐면...

 

처음 크로스오버 2890CU 를 구입하고 사무실에서 1개월 정도 사용한 뒤에, 에서 사용할 모니터를 크로스오버 2890CU 로 또 구입했다.

즉, 한 달만에 크로스오버 2890CU 모니터를 2개 구입했다.

그리고 회사에서 내 옆자리에서 일하는 동료도 내 모니터의 화질을 확인하고 일주일 뒤에 크로스오버 2890CU 모니터를 구입했다.

즉, 가격과 품질 모두 합리적이다.

 

처음 3개월 정도는 사용하면서 하루에 3회 정도 화면이 깜빡하면서 2~3초간 꺼졌다가 다시 켜지는 현상이 있었는데, MacOS Monterey로 업그레이드한 이후로 이 현상은 한번도 발생하지 않았다.  모니터 문제가 아니고 MacOS 자체적인 오류였던 것이다.

 

모니터에 100 ~ 200만원을 써도 아깝지 않은 사람이라면, 더 고급스러운 4K 레티나(Retina) 모니터를 구입하는 것이 좋겠지만, 나처럼 평범한 직장인(개발자) 또는 가정에서 사용할 모니터라면 크로스오버 2890CU 모니터가 괜찮은 선택이다.

 

특히 썬더볼트 to DP가 되는 구형 맥북 프로(2015년형)이나 최근 USB-C 영상 출력이 되는 맥북은 이 모니터와 궁합이 좋다.

 

맥북과 모니터가 USB-C 케이블로 연결되니까, 따로 전원 케이블을 연결하지 않아도 되고 USB-C 케이블 하나로 전원 + 영상 신호 전송(PD 지원)이 되니까 책상이 깔끔해졌다.

 

 

(제품 광고하는 거 아니에요~   나는 크로스오버 회사와 아무런 관계가 없어요.)

반응형

 


작성일: 2021년 12월

 

 

맥북 프로 (Macbook Pro) 2015 Mid를 사용한지 어언 6년이 흘렀다.  (그리고 3개월 전에는 맥북 M1도 구입해서 사용 중이다.)

맥북 프로의 기본 Display 화질과 내가 가지고 있는 30~50만원대 HDMI 모니터들과 화질 차이가 많이 나서 그 동안 HDMI로 모니터를 연결하지 않고 맥북 프로 화면만 사용해서 업무를 했다. (화면이 좁아서 답답한 느낌이 있지만, 두 모니터의 화질 차이가 커서 생기는 불편함보다는 괜찮다)

그렇다고 80만원이 넘는 LG 4K 모니터를 구입하기는 부담스러웠다.

 

 

그런데, 30만원 짜리 4K 모니터가 나오다니 !!!

 

 올해 봄부터 4K 해상도에 USB-C 영상 입력과 DP 영상 입력이 지원되는 30만원 짜리 모니터가 나왔다.

 

특히 잇섭님이 주연테크 V28UE 모니터가 가성비 좋다고 소개해서 출시하고 몇달 지나지 않아서 생상된 물량 모두가 팔리는 일까지 생겼다.

 

나도 원래 지난 2021년 8월에 이 V28UE 모니터를 구입하려고 했었는데, 품절이 한달 이상 지속되면서 마음을 바꾸었다.

거의 동일한 스펙(Spec), 그리고 거의 비슷한 가격으로 CrossOver 회사도 2890CU IPS TYPE-C 모니터를 출시한 것이다.

 

2021년 8월에 주문할 때만해도 블로그, YouTube에 사용자 리뷰가 없어서 크로스오버 2890CU 를 구입하는 것이 좋은 판단인지 헷갈렸는데 거의 5개월 정도 사용한 지금은 아주 만족하면서 사용하고 있다.

 

 

얼마나 만족하냐면...

 

처음 크로스오버 2890CU 를 구입하고 사무실에서 1개월 정도 사용한 뒤에, 에서 사용할 모니터를 크로스오버 2890CU 로 또 구입했다.

즉, 한 달만에 크로스오버 2890CU 모니터를 2개 구입했다.

그리고 회사에서 내 옆자리에서 일하는 동료도 내 모니터의 화질을 확인하고 일주일 뒤에 크로스오버 2890CU 모니터를 구입했다.

즉, 가격과 품질 모두 합리적이다.

 

처음 3개월 정도는 사용하면서 하루에 3회 정도 화면이 깜빡하면서 2~3초간 꺼졌다가 다시 켜지는 현상이 있었는데, MacOS Monterey로 업그레이드한 이후로 이 현상은 한번도 발생하지 않았다.  모니터 문제가 아니고 MacOS 자체적인 오류였던 것이다.

 

모니터에 100 ~ 200만원을 써도 아깝지 않은 사람이라면, 더 고급스러운 4K 레티나(Retina) 모니터를 구입하는 것이 좋겠지만, 나처럼 평범한 직장인(개발자) 또는 가정에서 사용할 모니터라면 크로스오버 2890CU 모니터가 괜찮은 선택이다.

 

특히 썬더볼트 to DP가 되는 구형 맥북 프로(2015년형)이나 최근 USB-C 영상 출력이 되는 맥북은 이 모니터와 궁합이 좋다.

 

맥북과 모니터가 USB-C 케이블로 연결되니까, 따로 전원 케이블을 연결하지 않아도 되고 USB-C 케이블 하나로 전원 + 영상 신호 전송(PD 지원)이 되니까 책상이 깔끔해졌다.

 

 

(제품 광고하는 거 아니에요~   나는 크로스오버 회사와 아무런 관계가 없어요.)

 

 


 

반응형

 

Kubernetes를 사용하다보면, Pod가 Terminating 상태에서 종료(즉, Pod의 삭제)되지 않고 계속 머물러있는 경우가 종종 발생한다.

이렇게 Pod의 Terminating 교착 상태가 된 원인은 정확히 알 수는 없고, 

단지 이런 경우에 Pod를 종료시킬 수 없어서 당혹스럽다.

 

Ian Miell 이라는 사람이 상황별로 교착 상태에 빠진 Pod를 종료하는 방법을 정리한 Web Docs가  있어서 나한테 맞게 다시 메모를 해봤다.

 

$  kubectl  delete  -n istio-system  deployment  grafana

##
## 위 delete 명령을 수행 후, 1분이 넘도록 Pod가 Terminating 상태라면
## 이 Pod는 계속 Terminating 상태로 남고, 아래 예시처럼 Delete되지 않을 것이다.
##

$  kubectl  get -A pod

NAMESPACE      NAME                                       READY   STATUS        RESTARTS       AGE
istio-system   grafana-68cc7d6d78-7kjw8                   1/1     Terminating   0              37d

... 중간 생략 ...

$

 

 

위 현상을 세분화해서 해결 방법을 설명해보겠다.

 

 

Pod의 상세 정보를 확인

 

##
## (A) 강제로 Pod를 삭제하는 방법
##

$  kubectl  delete  pods <pod>  --grace-period=0  --force

## 웬만하면, 위 명령으로 Pod가 삭제되지만
## 만약 계속 Pod의 찌끄러기가 남아 있다면, 아래 (B) 절차를 추가로 수행해야 한다.



##
## (B) 위 명령을 수행하고도 Pod이 Stuck 상태 또는 Unknown 상태로 남아 있다면
##     아래의 방법으로 Pod를 끝장낼 수 있다.
##

$  kubectl  patch  pod <pod>  -p '{"metadata":{"finalizers":null}}'

 

 

 

Reference

 

Kubernetes.io에 Pod의 강제 종료에 대한 상세한 설명을 있으니, 시간이 있다면 꼼꼼히 읽어보면 도움이 된다.

 

https://kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/

 

Force Delete StatefulSet Pods

This page shows how to delete Pods which are part of a stateful set, and explains the considerations to keep in mind when doing so. Before you begin This is a fairly advanced task and has the potential to violate some of the properties inherent to Stateful

kubernetes.io

 

 

그리고 위에서 finalizers를 강제로 null로 patch했는데, finalizers에 관한 상세한 설명이 궁금하면 아래 kubernetes web docs를 읽어보는 것이 좋다.

 

https://kubernetes.io/docs/concepts/overview/working-with-objects/finalizers/

 

Finalizers

Finalizers are namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion. Finalizers alert controllers to clean up resources the deleted object owned. When you tell Kubernetes to de

kubernetes.io

 

 

게시물 작성자: sejong.jeonjo@gmail.com

 

 


 

 

 

 

 

##
## 채용 관련 글
##
제가 일하고 있는 기업 부설연구소에서 저와 같이 연구/개발할 동료를 찾고 있습니다.
(이곳은 개인 블로그라서 기업 이름은 기재하지 않겠습니다. E-mail로 문의주시면 자세한 정보를 공유하겠습니다.)

근무지 위치:
  서울시 서초구 서초동, 3호선 남부터미널역 근처 (전철역 출구에서 회사 입구까지 도보로 328m)
필요한 지식 (아래 내용 중에서 70% 정도를 미리 알고 있다면 빠르게 협업할 수 있음):
  - 운영체제 (학부 3~4학년 때, 컴퓨터공학 운영체제 과목에서 배운 지식 수준):
    예를 들어, Processor, Process 생성(Fork)/종료, Memory, 동시성, 병렬처리, OS kernel driver  
  - Linux OS에서 IPC 구현이 가능
    예를 들어, MSGQ, SHM, Named PIPE 등 활용하여 Process간 Comm.하는 기능 구현이 가능하면 됨. 
  - Algorithm(C언어, C++ 언어로 구현 가능해야 함)
    예를 들어, Hashtable, B-Tree, Qsort 정도를 C 또는 C++로 구현할 수 있을 정도 
  - Network 패킷 처리 지식(Layer 2 ~ 4, Layer 7)
    예를 들어, DHCP Server/Client의 주요 Feature를 구현할 정도의 능력이 있으면 됨.
  - Netfilter, eBPF 등 (IP packet hooking, ethernet packet 처리, UDP/TCP packet 처리)
  - IETF RFC 문서를 잘 읽고 이해하는 능력 ^^
  # 위에 열거한 내용 외에도 제가 여기 블로그에 적은 내용들이 대부분 업무하면서 관련이 있는 주제를 기록한 것이라서
  # 이 블로그에 있는 내용들을 잘 알고 있다면, 저희 연구소에 와서 연구/개발 업무를 수행함에 있어서 어려움이 없을 겁니다.
회사에서 사용하는 프로그래밍 언어:
  - 프로그래밍 언어: C, C++, Go
    (참고: 아직 연구소 동료들이 Rust를 사용하진 않습니다만, 새 언어로써 Rust를 사용하는 것을 고려하는 중)
근무 시간:
  - 출근: 8~10시 사이에서 자유롭게 선택
  - 퇴근: 8시간 근무 후 퇴근 (오후 5시 ~ 7시 사이)
  - 야근 여부: 거의 없음 (내 경우, 올해 상반기 6개월간 7시 이후에 퇴근한 경우가 2회 있었음)
  - 회식 여부: 자유 (1년에 2회 정도 회식하는데, 본인이 집에 가고 싶으면 회식에 안 감. 왜 참석 안 하는지 묻지도 않음)
외근 여부:
  - 신규 프로젝트 멤버 -> 외근 전혀 하지 않음 (나는 신규 프로젝트만 참여해서 지난 1년 동안 한번도 외근 없었음)
  - 상용 프로젝트 멤버 -> 1년에 5회 미만 정도로 외근
팀 워크샵 여부:
  - 팀 워크샵 자체를 진행하지 않음. (워크샵 참석하는 거 싫어하는 개발자 환영 ^^)
연락처:
  - "sejong.jeonjo@gmail.com"  # 궁금한 점은 이 연락처로 문의주세요.
  - 블로그 비밀 댓글 (제가 하루에 한번씩 댓글 확인하고 있음)
원하는 인재상:
  - 우리 부설연구소는 "긴 호흡으로 프로젝트를 진행"하기 때문에 최소 2년간 한 가지 주제를 꾸준하게 연구/개발할 수 있는 개발자를 원함.
  - 우리 부설연구소는 자주적으로 연구 주제를 찾아서 업무를 하기 때문에 능동적으로 생각하고 행동하는 동료를 원함.
  - 차분하게 연구 주제에 몰입하고, 해법을 찾는 것을 즐기는 사람.
내가 느끼는 우리 연구소의 장점:
  - 갑/을 관계가 없음. (제가 근무하고 있는 연구소는 SI업종이 아니라서 갑/을 회사 개념이 없음)
  - 연구소 자체적으로 연구 주제를 발굴하고 시스템을 개발하기 때문에 개발 일정에 대한 스트레스가 적음
  - 빌딩 전체를 우리 회사가 사용하므로 분위기가 산만하지 않음.
  - 근처에 예술의전당, 우면산 둘레길이 있어서 점심 시간에 산책하기 좋음 ^^
  - 연구소 동료들 매너가 Good (2년간 일하면서 한번도 감정에 스크레치 생기거나 얼굴 붉히며 싸운 적 없음 ^^)

 

반응형

 

일반 승용차는 앞바퀴 36 psi, 뒷바퀴 34 psi 정도의 타이어 공기압을 유지하는 것이 좋다.

2~3 psi 정도는 부족하거나 많아도 주행과 안전에 문제가 없지만, 너무 타이어 공기압이 낮으면 연비가 낮아지면서 연료를 많이 쓰게 된다.

 

대부분 최근 수년 내에 출고한 자동차라면 적정 공기압에서 4~5 psi 낮아지면, 계기판에 알람이 뜨기 때문에 운전자가 타이어 공기압을 체크하지 않아도 자연스럽게 내 차의 타이어 공기압이 낮다는 것을 알 수 있다.

그런데 타이어 공기압 경고등(알람)이 켜졌다고, 이것 때문에 정비소에 가기가 쫌~ 그렇다.

 

다른 부분의 수리할 항목이 있다면 겸사겸사 정비소에 가겠지만, 타이어에 바람만 넣겠다고 정비소에 가면 정비소 직원들의 눈빛이 좋을리가 없다.

 

이럴 때는 간단하게 집에서 자전거 공기 펌프로 1분만 펌프질하면 타이어 공기압을 적정 PSI로 채울 수 있다.

내 경험상, 60초만 펌프질해도 3~4 PSI 정도는 쑥숙 올라간다.

 

 

이런 2~3만원 정도의 자전거 공기 펌프로 자동차 타이어에 공기를 주입할 수 있다.

 

 

대부분 자동차 타이어의 공기 주입구는 아래 사진에보이는 여러 모양 중에서 슈레더(Schrader) 모양이다.

새 공기 펌프를 구입할 경우에 자동차 타이어에 바람을 넣을 것까지 생각한다면 슈레더 방식을 지원하는지 확인하는게 좋다.

(인터넷에서 파는 3만원 이상하는 자전거 공기 펌프는 대부분 아래 3가지 방식을 모두 지원하니까, 그냥 구입해도 무방할 듯)

 

프레스타, 슈레더, 둔럽 방식 공기 주입구

 

 

자전거 펌프의 "슈레더" 주입구를 아래 사진처럼 연결하고 열심히 펌프질만 하면 된다.

 

 

반응형

 


테스트 및 작성일: 2023년 11월 29일

 

Ubuntu에서 rc.local 초기화 스크립트 활성화하기

 


테스트한 날짜:  2023년 2월 20일

테스트에 사용한 OS:
  - Ubuntu 22.04 
  - CentOS7.9

 

##
##  이해를 돕기 위해 eth0 NIC 포트에 IP address를 설정하는 예시를 들었다.
##

$  sudo -s

$  cat  /etc/rc.local

#!/bin/bash

ifconfig eth0 10.10.2.5/24

route add -net 10.10.2.0/24 gw 10.10.2.1

exit 0

$  chmod +x /etc/rc.local


##
## rc-local.service 설정 파일의 마지막 줄에 [Install] 섹션을 추가한다.
##

$  cat  /lib/systemd/system/rc-local.service
... 중간 생략 ...

[Install]                      ## 이 내용을 추가
WantedBy=multi-user.target     ## 이 내용을 추가
$

##
## 위에서 변경한 내용을 반영하기 위해 데몬을 reload하고, rc-local 서비스를 기동한다.
##

$  systemctl daemon-reload

$  systemctl enable --now rc-local

$  systemctl status rc-local

##
##  잘 설정되었는지 확인하기 위해 OS를 reboot하고, eth0 포트의 IP address 값을 확인한다.
##

$  reboot

... 중간 생략 ...

$  hostname -I

10.10.2.5

$

 

 

 

 

CentOS 7.9 에서 rc.local 초기화 스크립트 활성화하기

CentOS의 rc.local  파일은 /etc/rc.d/rc.local 파일의 Symbolic Link라는 점에서 Ubuntu와 약간 차이가 있다.

이 부분만 주의해서 아래 예제를 따라하면 잘 동작한다.

 

##
##  이해를 돕기 위해 eth0 NIC 포트에 IP address를 설정하는 예시를 들었다.
##

$  sudo -s

$  cat  /etc/rc.local

#!/bin/bash

ifconfig eth0 10.10.2.5/24

route add -net 10.10.2.0/24 gw 10.10.2.1

exit 0

$  chmod 755 /etc/rc.d/rc.local


##
## rc-local.service 설정 파일의 마지막 줄에 [Install] 섹션을 추가한다.
##

$  cat  /lib/systemd/system/rc-local.service
... 중간 생략 ...

[Install]
WantedBy=multi-user.target
$

##
## 위에서 변경한 내용을 반영하기 위해 데몬을 reload하고, rc-local 서비스를 기동한다.
##

$  systemctl daemon-reload

$  systemctl enable --now rc-local

$  systemctl status rc-local

##
##  잘 설정되었는지 확인하기 위해 OS를 reboot하고, eth0 포트의 IP address 값을 확인한다.
##

$  reboot

... 중간 생략 ...

$  hostname -I

10.10.2.5

$

 

 


 

'Ubuntu' 카테고리의 다른 글

KVM의 VM에서 Hugepage 사용하기  (0) 2022.01.13
PCI passthrough on Ubuntu + KVM  (0) 2022.01.12
추가 장착한 Disk Mount  (0) 2021.12.28
Root 계정의 SSH 로그인 허용  (0) 2021.12.28
Install BIND for name server(DNS) on Ubuntu 22.04  (0) 2021.11.05

+ Recent posts