'알아둘일'에 해당하는 글 205건

플러터로 앱을 만들고 있다.

광고연동을 하고 있는데, 애드몹은 무난하게 넘어갔다.

다음에는 앱로빈(Applovin) 을 연동중에 있는데, 안드로이드 쪽도 좀 힘든 부분이 있었지만, 해결은 하였다.

그런데, iOS 쪽을 연동하는 중에 이상한 부분이 있어서 기록을 남긴다.

[현상]

플러터 코드를 동일하게 하고, 앱로빈쪽의 Ad Unit 을 iOS 용으로 만들고 구동해보니
다른 광고는 정상인데, native 만 나오지 않는다.( banner , mrec , Interstitial 등은 잘 나온다)

[조치1]

AppLovinMAX.setVerboseLogging(true);

AppLovinMAX.initialize 초기화 시에 옵션 추가

해당 설정을 추가하면 자세한 로그를 볼 수 있다. 그런데, android 에서는 잘 나오는데, ios 쪽에서는 나오지 않는다.

[조치2]

AppLovinMAX.showMediationDebugger();

다른 디버거 옵션을 넣어본다. 광고 동작등을 체크해볼 수 있다.
여기서는 native 광고도 잘 나온다. 뭔가 설정의 문제일 듯 하다. 범위가 좁혀졌다.

혹시나 해서.

위치 ios/Runner.xcodeproj/project.pbxproj

....
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
    "$(inherited)",
    "@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = com.example.userAppName;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
....

해당 bundle id 를 ad unit 과 맞춰준다.

PRODUCT_BUNDLE_IDENTIFIER = com.example.userAppName;

AppLovin 의 광고 유닛 - 동일하게 맞춰준다.

테스트 용이라 임의로 입력했었다.(안드로이드에서 정상동작해서 신경쓰지 않았었다.)

디버거에도 해당 View Ad Units 부분에 나온다(기존에는 나오지 않았다. 0 )

 

저렇게 bundle id 를 동일하게 맞춰주니 정상동작 한다.

[해결]

android 는 모두 상관없고, iOS 는 native 만 체크하는 듯 하다.

정식 앱이면, 자연스럽게 bundle id 가 맞게 입력했을텐데, 테스트용으로 임의로 넣다보니 그런 현상이 발생했다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

윈도우의 데이터를 우분투에서 가져와서 처리하는 시스템이 있다.

윈도우 공유를 우분투에서 smb 마운트 하여 사용중이다.(ubuntu 22.04 )

그런데, 며칠(수일~수십일)이 지난 후 우분투가 다운 되는 현상이 발생하였다.

커널 메시지에 다음과 같은 부분이 있다.

kernel: [242843.663373] general protection fault, probably for non-canonical address 0xdead000000000108: 0000 [#1] PREEMPT SMP NOPTI
kernel: [242843.663381] CPU: 4 PID: 1689344 Comm: kworker/4:1 Tainted: G           OE      6.5.0-35-generic #35~22.04.1-Ubuntu
kernel: [242843.663385] Hardware name: ASUS System Product Name/PRIME B760M-A, BIOS 1002 04/03/2023
kernel: [242843.663387] Workqueue: cifsiod smb2_cached_lease_break [cifs]
kernel: [242843.663452] RIP: 0010:smb2_close_cached_fid+0x2a/0xd0 [cifs]


 kernel: [254783.343885] CPU: 2 PID: 1619082 Comm: kworker/2:2 Tainted: G      D    OEL     6.5.0-26-generic #26~22.04.1-Ubuntu
 kernel: [254783.343888] Hardware name: ASUS System Product Name/PRIME B760M-A, BIOS 1002 04/03/2023
 kernel: [254783.343890] Workqueue: cifsiod smb2_reconnect_server [cifs]
 kernel: [254783.343948] RIP: 0010:native_queued_spin_lock_slowpath+0x273/0x300
주요 메시지

Workqueue: cifsiod smb2_cached_lease_break [cifs]
smb2_close_cached_fid

cifsiod smb2_reconnect_server [cifs]

native_queued_spin_lock_slowpath

혹시 부품이상인가 싶어 여러가지 시도를 해봐도 동일(비슷)한 다운 현상이 발생하였다.

사실 그동안 위 메시지를 그냥 넘겼었다.
비슷한 구성의 다른 시스템에서는 나타나지 않은 현상이라, smb 쪽 이슈일까 싶은 생각조차 들지 않았던 것 같다.

이제야 눈에 띄었지만, 실제로 원인인지는 몇가지 설정을 해보면서 찾아봐야 겠다.

smb 의 캐시관련 이슈를 기준으로 찾아봐야 겠다.
캐시가 full 이 되어 중지되는 그런 것일까? 네트웍 접속 지연등의 문제일까?

1차 시도 : 일단 마운트시의 기본값이 cache=strict 인데, cacha=none 으로 해보고 상황을 지켜볼 참이다.

/etc/fstab 예시

//windows/share  /data/  cifs uid=user,gid=user,username=guest,password=,iocharset=utf8,cache=none  0  2

위가 안된다면 2차시도는

echo "0" > /proc/fs/cifs/LookupCacheEnable

3차 시도는 smb 버전 변경 ( 3.0 / 2.0 / 1.0 다른 버전 시도)

현재
vers=3.1.1

시도
vers=1.0

...

잘 해결 되길...

=======

[추가]

1차 시도를 해봤다. 그런데, 전송속도가 캐시가 없으니 너무 떨어진다. (거의 1/5 수준으로)
거의 사용이 어려운 수준.

그러면 2차 시도도 마찬가지로 쓰기 어려울 듯 . 바로 3차 시도로 넘어가야 할 듯 하다.

[추가2]

3차 시도 는 이런 에러?(경고)가.( 상위버전 3.0 / 2.0 부터 시도해볼까?)

CIFS: VFS: Use of the less secure dialect vers=1.0 is not recommended unless required for access to very old servers
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터로 개발중인데, 안드로이드 스튜디오 jellyfish 로 업그레이드 하면서 몇몇 문제를 해결하고 사용중이다.
뭔가 자잘한 오류 메시지들이 보인다.

이번에는 SDK 매니저 에서 에뮬레이터를 추가하면서 발생한 듯 싶다.

INFO    | Storing crashdata in: /tmp/android-{user-name}/emu-crash-34.2.14.db, detection is enabled for process: 56249

다음 명령 flutter emulators  으로 동일한 메시지를 확인 할 수 있다.

추가했던 에뮬중에 이상이 생긴 듯 하다.

새버전과 호환성 문제일까?

종료하려는데 이런 메시지가?

좀더 살펴보다가, 재부팅 신공(?)을 시도해봐야 겠다.

---

[추가 - 재부팅 신공?]

실패

---

[추가 - 재설치]

아래 주요 디렉토리를 삭제 후에 재설치

  위치 사용자 디렉토리 cd ~/
  
  rm -r .android/
  rm -r Library/Android/
  rm -r Library/Caches/Google/AndroidStudio*
  rm -r Library/Caches/AndroidStudio3.6/
  rm -r Library/Preferences/AndroidStudio3.6/
  rm Library/Preferences/com.android.Emulator.plist 
  rm Library/Preferences/com.google.android.studio.plist

실패

다음에는 하위 버전으로 다시 시도해봐야 겠다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터 를 안드로이드 로 개발중인데 - 새버전이 나와서 업그레이드 하였다.

에러가 생길 것은 예상은 했다. 빌드해보니.

Launching lib/main.dart on sdk gphone64 arm64 in debug mode...
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> A problem occurred starting process 'command '/..../flutter/bin/flutter''

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s
Error: Gradle task assembleDebug failed with exit code 1
Error executing devicectl: ProcessException: Process exited abnormally with exit code 3:

User cancelled
  Command: /usr/bin/arch -arm64e xcrun devicectl list devices --timeout 5 --json-output /var/folders/d7/4qd968hd0kzc21y8jggx2qcr0000gn/T/flutter_tools.w7hJCy/core_devices.D5JYTk/core_device_list.json
Error executing devicectl: ProcessException: Process exited abnormally with exit code 3:

User cancelled
  Command: /usr/bin/arch -arm64e xcrun devicectl list devices --timeout 5 --json-output /var/folders/d7/4qd968hd0kzc21y8jggx2qcr0000gn/T/flutter_tools.w7hJCy/core_devices.AHDMpc/core_device_list.json

다음과 같은 에러가 발생하였다.

flutter doctor 해봐도 특별한 이상은 안 보였다.

 


iOS 쪽을 시도 해봤다.

# xcodebuild -downloadPlatform iOS

Downloading iOS 17.5 Simulator (21F79): 83.1% (6.09 GB of 7.34 GB)2024-05-27 00:10:48.511 xcodebuild[38139:36929395]  DVTDownloadable: Download Failed. Downloadable: https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg. Error Domain=NSPOSIXErrorDomain Code=28 "No space left on device" UserInfo={NSErrorFailingURLStringKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, NSErrorFailingURLKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>}
Downloading iOS 17.5 Simulator (21F79): Error: Error Domain=NSPOSIXErrorDomain Code=28 "No space left on device" UserInfo={NSErrorFailingURLStringKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, NSErrorFailingURLKey=https://download.developer.apple.com/Developer_Tools/iOS_17.5_Simulator_Runtime/iOS_17.5_Simulator_Runtime.dmg, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDownloadTask <D677E7D4-290F-4ABB-AE5D-98AAF40F70BC>.<1>}

여기도 에러.

하드 공간이 없다.  오랜만에 봤더니, 6기가 정도 밖에 안 남았네. ㅜㅜ

용량이 부족하다. 조금 정리하고 다시 시도..

Registering simulator runtime with CoreSimulator failed.
Domain: DVTDownloadableErrorDomain
Code: 29
User Info: {
    DVTErrorCreationDateKey = "2024-05-26 15:36:28 +0000";
}
--
Registering simulator runtime with CoreSimulator failed.
Domain: DVTDownloadableErrorDomain
Code: 29
--
Cannot copy the image because the disk is almost full
Domain: com.apple.CoreSimulator.simdiskimaged.SimDiskImageError
Code: 14
--


System Information

macOS Version 14.4.1 (Build 23E224)
Xcode 15.4 (22622) (Build 15F31d)
Timestamp: 2024-05-27T00:36:28+09:00

더 줄여야 겠다.

하드 좀 정리하고, 다시 해보니 정상 다운로드 되었다.
그리고, 안드로이드 스튜디오에서 다시 빌드 해보니 정상 동작 했다.

이제 안드로이드 쪽 빌드를 해결해보자.(즉, iOS 쪽은 정상)

android / gradle 빌드 쪽 이슈로 좁혀졌다.


[다시 시도]

flutter upgrade --force 로 플러터 SDK 를 업그레이드 해봤다.

* What went wrong:
Execution failed for task ':gradle:compileGroovy'.
> Failed to run Gradle Worker Daemon
   > A problem occurred starting process 'Gradle Worker Daemon 1'

에러가 나지만, 메시지가 달라졌다.

android/ 에서 gradle 을 콘솔에서 명령을 내려봤다.

# ./gradlew app:installDebug

FAILURE: Build failed with an exception.

* Where:
Build file '.../android/app/build.gradle' line: 2


What went wrong:
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
      Your current JDK is located in /Library/Java/JavaVirtualMachines/temurin-8.jdk/Contents/Home/jre
      You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 24s
4 actionable tasks: 2 executed, 2 up-to-date

다른 프로젝트에서 1.8 오래된 버전이 필요해서 바꿨었는데, 그것이 영향을 준것 같다.
근데, 안드로이드 스튜디오 젤리피시 버전업 하기까지는 이상이 없었는데..??

android/gradle.properties
파일에 JAVA_HOME 패스를 넣었다.(.bash_profile 등에 넣어도 된다.)

org.gradle.java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-16.jdk/Contents/Home/

 

다시 빌드...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':connectivity_plus:compileDebugJavaWithJavac'.
> error: invalid source release: 17

 

이거 점점 미궁으로 가는거 아닌가? ㅜㅜ

java 버전 17 으로 맞춰준다.

# brew install openjdk@17

sudo ln -s  /opt/homebrew/Cellar/openjdk\@17/17.0.11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

gradle.properties 나 IDE 세팅등에 버전을 맞춘다.

org.gradle.java.home=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/

 

일단 여기까지 해보니, 정상 빌드 된다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

ubuntu 16.04  터미널에서 로그파일등에서 주요 키워드를 볼때 색상을 표시하고자 한다.

watch --color -n 10 \
 'bash your-program-run.sh |  \
GREP_COLOR="01;33" grep --color=always -i -e "Warnning.*" -e "^" | \
GREP_COLOR="01;35" grep --color=always -i -e "Fail.*" -e "^" | \
GREP_COLOR="01;31" grep --color=always -i -e "Alert.*" -e "^"  \
 '

프로그램 실행 명령이 출력으로 나올 때 grep 으로 색상을 표시한다. ( --color=always )
GREP_COLOR 로 키워드 별로 색상을 다르게 줄 수 있다.
(색상코드는 여기 참조 : https://chrisyeh96.github.io/2020/03/28/terminal-colors.html )

또한 -e ".*Keyword.*" 처럼 하면 해당 키워드가 나온 모든 줄이 되고, -e "Keyword" 를 하면 해당 키워드만 색상표시된다.

그런데, 문제는 watch 를 조합하면 색상 표시가 안된다.(우분투 16.04)

동일 명령을 ubuntu 22.04 에서는 정상으로 나온다.

터미널에서 색상코드(ansi code) 표시를 제대로 처리 못하는 것 같다.

ㄴ정상인 경우 코드
비정상 처리된 코드

우분투 16.04 의 watch 버전은 3.3.10 버전 ( 22.04 는 3.3.17 버전이다)

 

# 해결 방안

방법1. 정상동작 하는 터미널에서 원격으로 접속 명령을 내린다.

watch --color -n 10 'ssh {your-username}@{your-server} {원래 명령}'

위 처럼 해서 watch 가 색상코드를 정상적으로 처리하도록 한다.

 

방법2. watch 버전을 해결된 버전으로 소스 컴파일 한다.

위 방법이 뭔가 찜찜하다면, 소스를 직접 컴파일한다.

소스 : https://gitlab.com/procps-ng/procps/-/releases/v3.3.13

해당 릴리즈의 Changelog 를 보니

watch: Support ANSI 39,49 reset sequences              issue #73

가 해당 버그인 듯 싶다.

암튼 소스를 받고 컴파일 한다.

wget https://gitlab.com/procps-ng/procps/-/archive/v3.3.13/procps-v3.3.13.tar.gz

tar xvzf procps-v3.3.13.tar.gz
cd procps-v3.3.13/

sudo apt install autoconf libtool autopoint libtool-bin ncurses-dev

./autogen.sh
./configure
make

설치는 make install 으로 하면 /usr/local/bin 으로 설치가 될 것이다.

그런데, 이 경우 watch 만 필요하니 $HOME/bin 디렉토리에 복사해서 사용했다.

정상적으로 색상이 나오는 것을 확인했다.

 

방법3. 상위버전 deb 패키지에서 watch 파일을 추출한다.

위 방법2 로 소스컴파일 하니, 문제는 한글이 watch 를 거치면서 사라져 버린다. ㅜㅜ

상위 deb 패키지에서 추출하기로 한다.(현버전 16.04 => 18.04 의 패키지)

상위버전 패키지 - https://launchpad.net/ubuntu/+source/procps/2:3.3.12-3ubuntu1.2/+build/17397008

procps_3.3.12-3ubuntu1.2_amd64.deb (219.4 KiB)

하단의 deb 파일을 다운로드

패키지를 설치하면 다른 이상이 있을 수 있으니, watch 실행파일만 추출한다.
(참조 : https://www.cyberciti.biz/faq/how-to-extract-a-deb-file-without-opening-it-on-debian-or-ubuntu-linux/ )

ar x procps_3.3.12-3ubuntu1.2_amd64.deb

tar xvJf data.tar.xz

cp usr/bin/watch $HOME/bin

이제 한글도 제대로 나온다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

오래된 서비스가 돌아가는 머신이 있다.

ubuntu 10.04 버전이니 14년이 넘어가는 머신 - 리얼서버 => 가상서버 로 몇번 옮겨지기도 했다.

새버전으로 바꾸기에는 레거시 코드가 있어서 그냥 돌리고 있다.

리얼 => 가상 서버로 옮겨지면서, 가상머신 내부는 최소의 용량으로 두고, 데이터는 외부로 두고 nfs 로 마운트해서 사용하고 있다.

재부팅할 때 - 아래 부분에서 딜레이가 발생한다.

원인을 찾아보다가, 보아하니 nfs 마운트한 위치를 bind 로 재마운트 한 부분에서 딜레이가 발생하는 것 같다.

# apache logs
/data8/apache2                /var/log/apache2   bind    bind,rw,defaults  0  2

/data8 이 nfs 로 마운트 된 위치 , 그것을 mount bind 로 했다.

재부팅 reboot / 종료 halt 시에 딜레이가 발생한다. ( 이 부분이 ubuntu 상위 버전에서는 일어나지 않는 듯 하다)
10.04 버전에서 이상현상.(다른 모든 버전을 체크하지는 못 함 - 비슷한 환경을 구성한 14.04 은 정상 )

종료프로세스인 /etc/rc6.d 부분이

umount 코드들이 실행되지만, mount bind 는 제대로 언마운트를 못하는 듯 하다.

그래서

S22umount-work-nfs -> ../init.d/umount-work-nfs*

위 파일을 만들어 줬다.

# cat /etc/init.d/umount-work-nfs 
#! /bin/sh
### BEGIN INIT INFO
# Provides:          unmount work nfs
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:      6
# Short-Description: Umount nfs work dir before reboot.
# Description:
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/lsb/init-functions

do_stop () {
	# Message should end with a newline since kFreeBSD may
	# print more stuff (see #323749)
	log_action_msg "Will umount all nfs work dir - before restart"
	umount /var/log/apache2 
}

case "$1" in
  start)
	# No-op
	;;
  restart|reload|force-reload)
	echo "Error: argument '$1' not supported" >&2
	exit 3
	;;
  stop)
	do_stop
	;;
  *)
	echo "Usage: $0 start|stop" >&2
	exit 3
	;;
esac

do_stop 부분에 bind mount 한 위치를 umount 해준다.

10.04 버전을 아직도 쓰실 분이 얼마나 있겠냐마는 ㅜㅜ

난 여러버전을 쓰고 있구나. 10.04 / 14.04 / 18.04 .. 최근 22.04 도 ,  곧 나올 24.04 도 쓰겠군.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

지금까지의 삽질(?)은 콘솔 환경에서 개발을 편하게 할 수 있게 세팅하기 위함이다.
Language Server Protocol (LSP) 가 최종 목적이 될 듯 하다.

mac os 와 byobu 를 사용하니, 몇몇 단축키가 충돌되거나 한다.
CTRL + 화살표(Left / Right) 등

1. 일단 터미널에서 단어간의 이동이 안된다. 다른 조합으로 바꾼다. (터미널 쪽에서 설정이 필요 - alacritty)

위치 .config/alacritty/alacritty.toml

bindings = [
  { key = "Right", mods = "Alt", chars = "\u001BF" },
  { key = "Left",  mods = "Alt", chars = "\u001BB" },
  { key = "F",  mods = "Control|Shift", action = "ToggleFullscreen" }, # full screen
 ]

CTRL 을 Alt (mac Opt 키) 조합으로 바꾼다.
Ctrl + Shift + F 로 전체화면 변경도 추가했다.

 

2. byobu 에서 Alt + Left/Right 는 윈도우 간의 전환인데, 위 터미널 설정이 우선하는 것 같다.

대신 동일 기능으로 CMD + Left / Right 로 전환 가능하다.

byobu ( tmux ) 의 단축키를 F1~F12 등을 사용하기도 하는데.

난 CTRL+a 의 조합을 사용하기 좋아한다.(Mac 에서는 Fxx 키를 입력하기 불편하다. fn 키를 같이 입력해야함)
tmux 는 ctrl+b 를 사용하나보다. byobu 쪽은 ctrl+a 를 사용한다.

CTRL+a 는 prefix 또는 Leader 키라고 한다.

CTRL+a 입력 후 조합단어. 대소문자 구분 ( 동일 키 )

+ c : 새윈도우 열기 ( F2 동일 )
+ n : 다음 윈도우 ( CMD + Right )
+ p : 이전 윈도우 ( CMD + Left )
+ ctrl-a : 바로 이전 윈도우

+ , : 윈도우 이름 변경 ( F8 )

+ d : detach  ( F6 )

+ % : 창 수직 분리 pane 
+ | : 창 수평 분리

pane 간 이동 ( Shift + Up/Down/Left/Right )

pane 간 사이즈조절 ( Shift + Opt + Up/Down/Left/Right )

 

3. byobu 에서 pane 을 나눈 후 마우스 스크롤을 pane 단위로 하도록 설정

# cat .config/byobu/.tmux.conf
set -g mouse on

위 항목 추가.

위 설정을 하니, pane 단위 스크롤이 되기는 한데, 복사하기 위해 마우스 드래그가 이상해 진다.
그냥 Alt + F12 로 위 옵션을 on / off 할 수 있으니, 이 방법이 나을 듯 하다.

CTRL+a + : (: 콜론, not ; 세미콜론)
으로 명령 모드로 들어간 후
set -g mouse on
set -g mouse off

직접 명령을 실행해도 된다.

 

4. 방향키 ( Arrow Key ) 를 다른 조합으로 바꾼다.

키보드의 방향키를 쓰기 불편해서 다른 키조합으로 바꾸고 싶다.(키캡을 교체하면 좀 나을려나?)
- 기존 텐키리스 쓰다가, 텐키 로 바꿨는데, 방향키가 적응이 안되네(유독 방향키가 구분이 안되는 키보드이긴 하지만)

alacritty + zsh + byobu(tmux) 조합에서 방향키를 다른 키로 바꾼다. ( alt + h j k l 으로 변경 )
alacritty 는 시도해봤는데, 안되거나 어렵다. 키코드값 chars 를 알아내기가 어렵다. 포기...

그래서 zshrc 에서 세팅하기로 한다. ( alt 가 ^] 라고 하는데, 맥이라 그런지 안되고 아래처럼 해야 된다.)

# cat .zshrc

bindkey "˙" backward-char
bindkey  "∆" down-line-or-history
bindkey  "˚" up-line-or-history
bindkey  "¬" forward-char

이렇게 바꾸니 좀 나아졌다. (키보드를 바꾸는게 상책이려나?)

- 그냥 다시 텐키리스 키보드로 바꿈.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

mac os 의 기본 shell 은 bash 로 되어 있는 것 같다.
chsh -s /bin/zsh 로 바꾸라는 안내도 나오지만, 그냥 쓰기로 했다.

다만, neovim 을 쓰기 위해 alacritty 를 쓰면서 zsh 를 써보기로 했다. (https://blog.1day1.org/693)
alacritty 가 따로 탭기능은 없어서, byobu 를 쓰기로 했다.

brew install byobu 로 설치

실행하니 기본쉘인 bash 로 실행이 된다. byobu 쓸때도 zsh 를 쓰고자 한다.

# cat .config/byobu/.tmux.conf
set -g default-shell /bin/zsh
set -g default-command /bin/zsh

위 파일명이 비어 있는데, 위 두줄을 넣어준다.

정상으로 zsh 가 기본으로 실행된다.

간만에 byobu 를 쓰려니 단축키가 잘 생각이 안난다.
자주 쓰던 키를 정리해둬야 겠다.

Shift-F1 을 누르면 단축키가 나온다. ( 아래와 같은데, 난 좀 다르게 사용한다. 그 부분을 따로 정리.)

  F1                             * Used by X11 *
    Shift-F1                     Display this help
  F2                             Create a new window
    Shift-F2                     Create a horizontal split
    Ctrl-F2                      Create a vertical split
    Ctrl-Shift-F2                Create a new session
  F3/F4                          Move focus among windows
    Alt-Left/Right               Move focus among windows
    Alt-Up/Down                  Move focus among sessions
    Shift-Left/Right/Up/Down     Move focus among splits
    Shift-F3/F4                  Move focus among splits
    Ctrl-F3/F4                   Move a split
    Ctrl-Shift-F3/F4             Move a window
    Shift-Alt-Left/Right/Up/Down Resize a split
  F5                             Reload profile, refresh status
    Alt-F5                       Toggle UTF-8 support, refresh status
    Shift-F5                     Toggle through status lines
    Ctrl-F5                      Reconnect ssh/gpg/dbus sockets
    Ctrl-Shift-F5                Change status bar's color randomly
  F6                             Detach session and then logout
    Shift-F6                     Detach session and do not logout
    Alt-F6                       Detach all clients but yourself
    Ctrl-F6                      Kill split in focus
  F7                             Enter scrollback history
    Alt-PageUp/PageDown          Enter and move through scrollback
    Shift-F7                     Save history to $BYOBU_RUN_DIR/printscreen
  F8                             Rename the current window
    Ctrl-F8                      Rename the current session
    Shift-F8                     Toggle through split arrangements
    Alt-Shift-F8                 Restore a split-pane layout
    Ctrl-Shift-F8                Save the current split-pane layout
  F9                             Launch byobu-config window
    Ctrl-F9                      Enter command and run in all windows
    Shift-F9                     Enter command and run in all splits
    Alt-F9                       Toggle sending keyboard input to all splits
  F10                            * Used by X11 *
  F11                            * Used by X11 *
    Alt-F11                      Expand split to a full window
    Shift-F11                    Zoom into a split, zoom out of a split
    Ctrl-F11                     Join window into a vertical split
  F12                            Escape sequence
    Shift-F12                    Toggle on/off Byobu's keybindings
    Alt-F12                      Toggle on/off Byobu's mouse support
    Ctrl-Shift-F12               Mondrian squares
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

neovim 을 세팅하고 사용해보려고 한다.
지난번 초기 세팅후 맥OS 기본 터미널에서 색상이 이상해져서 다른 터미널을 찾고 있다.(https://blog.1day1.org/690)
혹시나 해서 다른 theme (gruvbox) 를 시도해봐도 정상으로 나오지는 않았다.(조금 나아졌지만 ...)

가능한 맥OS 기본세팅으로 가려고 했지만 어려울 듯 하다.
그래서 다른 터미널을 찾기를 시도.

여러가지가 있지만, 그중에 alacritty 가 눈에 들어왔다.

설치는 여기를 참조 : https://github.com/alacritty/alacritty

설치 / 실행하면 너무나 심플해서 당황스러울 것이다.(기본 설정 하는 메뉴도 없다)

기본 설정 하기 : ~/.config/alacritty/alacritty.toml 파일에 설정을 해준다.
설정 항목은 https://alacritty.org/config-alacritty.html 을 참조한다.

예전에는 설정파일이 yml 방식이었는데, 최근 toml 방식으로 바뀐것 같다.
설정 예시 검색시 toml 방식을 사용하면 된다.

내가 조정한 몇가지 설정을 정리하면 다음과 같다.


[window]

dimensions = { columns = 500, lines = 100 }  # Default: columns = 0, lines = 0

opacity = 0.8  # Default: 1.0

#startup_mode = "Maximized"  # Default: "Windowed"


[font]

# Font size in points
size = 12  # Default: 11.25

위 정도만 해도 봐 줄만 한 것 같다.

추가로 alacritty 를 써보면서 기본 쉘도 zsh 로 해보고 있다.(oh my zsh 던가?)
아직은 내 취향에 맞는 설정이 확정되지 않아. 추후 필요시 정리.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

neovim 을 세팅해보고 있다.
설정 참고는 https://github.com/cpow/neovim-for-newbs/blob/main/init.lua

세팅해보는데, 맥OS 기본 터미널에서는 이렇게 나온다.

컬러 세팅(colorscheme) 이 안 먹는 것 같다.

VScode 의 내장 터미널? 에서는 잘 되는 것 같다.

 

검색해보면, 맥OS 기본 터미널에서는 안되고 다른 터미널을 써라가 답인 듯 한데.
일단 좀더 찾아보고 안되면 다른 터미널로...

 

[추가]

위처럼 처음부터 환경을 만드는 방법도 있고.

어느정도 세팅된 것을 설치해서 사용할 수도 있다.
예로는 LazyVim / LunarVim / AstroNvim / NVChad  등이 있다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 <=> 윈도우 의 경우는 심볼릭링크가 크게 상관없을 듯 하다.

그런데, 우분투 <=> 우분투 의 경우 samba 마운트 시에 symlink 유지여부가 SMB 버전마다 차이가 있는 듯 하다.

결론부터 이야기 하면 vers=1.0 으로 해야 유지가 되는 듯 하다.

//ubox-serv/data  /data/   cifs uid=ccex,gid=ccex,username=guest,password=,iocharset=utf8,vers=1.0  0  2
#//ubox-serv/data  /data/   cifs uid=ccex,gid=ccex,username=guest,password=,iocharset=utf8,noserverino 0  2

fstab 에 설정에서 위처럼 vers=1.0 으로 하는 경우만 symlink 유지됨.

SMB버전은 올리고, noserverinfo 등의 옵션은 안되는 듯 하다.

 

다른 해결 방법이 있을지는 추후 필요하면 정리.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

세부적인 부분은 링크로 대신

1. ssh 키 생성 : https://docs.github.com/ko/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

새 SSH 키 생성 및 ssh-agent에 추가 - GitHub Docs

SSH(Secure Shell Protocol)를 사용하여 GitHub.com의 리포지토리에서 데이터에 액세스하고 쓸 수 있습니다. SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증합니다. 자세한 내용은 "

docs.github.com

2. 깃허브에 키 등록 : https://github.com/settings/keys

키등록까지 한 후에 ssh 계정 설정으로 여러계정의 깃허브에 연결할 수 있다.
(예시> 개인계정 / 회사계정 등)

위 계정의 ssh 키는 달라야 한다. 동일하면, 등록이 안된다.
(키 파일명도 다르게 해준다. 기본 : id_ed25519 , 추가 : id_ed25519_idname 등 )

3. 키 가 등록되는 위치는 .ssh 를 기준으로 .ssh/config 파일에 다음항목을 추가한다.

Host github.com-idname
	hostname github.com
	User git
	IdentityFile ~/.ssh/idname-id_ed25519

위 처럼 github.com 주소를 분리해준다.
즉, github.com 로 접속하면 기본값이 .ssh/id_ed25519 가 적용되고, github.com-idname 으로 접속하면 .ssh/idname-id_ed25519 가 적용되는 식이다.

ssh git@github.com-idname 를 해보면 다음과 같이 나와야 한다.

PTY allocation request failed on channel 0
Hi idname! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

이후에는 저장소를 지정한 Host 주소로 연결해서 사용하면 된다.

git remote add origin git@github.com-idname:idname/your-repositry-name.git

커밋 후 git push -u origin main 로 저장소에 업로드 하면 된다.

저장소 별로 author 정보를 등록해준다.( 전체 적용시는 --global 을 추가 - git config --global OOO )

git config user.name "user name"
git config user.email "your-mail@your-mail.com"

 

혹시 author 가 다르게 등록이 되었으면, 전체 변경이라 주의!!

git rebase -r --root --exec "git commit --amend --no-edit --reset-author"
git push --force-with-lease
반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

플러터를 공부하고 있는데, 가상머신 (안드로이드 / 아이폰) 을 통해 충분히 테스트 할 수 있다.

그러나 실제 폰에서 하면 "좀더 실감(?) 난다" 는 느낌이고, 실제적으로 가상머신은 메모리를 많이 먹는다.(최소 수기가의 메모리가 필요)
그래서 메모리가 적은 기기를 사용해 개발하는 경우 실제폰을 연동하는게 좋다.

예전 기억으로는 USB 케이블 연결하고 해서 좀 복잡한 느낌이었는데, 무선디버깅이 생겨서 좀더 편해진 듯 하다.
전체적인 설명은 구글링해서 하면 된다.

진행하면서 이상한 부분이 있어서 그 부분을 정리한다.

1) 무선 디버깅 - 장치를 찾지 못한다.

  위 처럼 정상적으로 장치가 등록이 되어야 하는데, 와이파이 아이콘을 클릭 후 장치를 찾으려면 안되는 경우가 있다.

장치를 못 찾는다.

핸드폰에서 개발자옵션을 키고 , 무선디버깅 항목으로 들어간다.

순서는 무선디버깅 on => 기기 페어링 => 기기 연결  순서로 한다.

안드로이드 스튜디오에서 터미널을 열어서 다음 과 같은 명령을 내린다. (페어링 포트 와 연결 포트가 다른 것에 주의)

# adb pair 192.168.99.25:40425
Enter paring code: 305619
Successfully paired ...

페어링되면 기기가 위처럼 보인다.

# adb connect 192.168.99.25:43169

connect 까지 하면 - android studio 에서 실행파일을 전송 할 수 있다.

2) 전송하면 설치가 안된다.

USB 로 설치 가 허용되어야 한다.

무선디버깅하면 USB 항목은 없어도 되는 줄 알았는데, 위 "USB 로 설치" 항목은 필요하다.

 

장치 찾기가 되면 편하겠지만, 수동? 연결이라도 되니 나쁘지는 않다.
(기기 특성으로 못 찾는 것인지는 추후 필요하면 정리)

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

칼리 리눅스를 설치하려고 한다. 주로 맥북에서 가장 많이 쓸 듯 하다.

m2 / m3 맥북에는 가상머신 세팅이 intel 맥보다는 까다롭다(2020년도에 출시했지만, 아직 완벽하지는 않다)
그중에 utm 이 가장 나은 듯 싶다.

설치는 구글링해서 검색해보고 하면 되는데, 좀 다른(?) 부분을 정리하고자 한다.

1) kali 설치시 utm 의 serial 장치를 추가한다.

  serial 추가 안하고 그냥 해보면, 부팅 후 검정화면이 되서 설치가 진행이 안된다.
  (serial 장치를 추가해서 원격 접속하는 것처럼 설치가 진행된다. - 설치완료후 serial 은 제거 - 안하면 화면이 두개가 된다.)

2) 설치 완료 후 - 한영전환 이 안된다. (fcitx 패키지를 설치후)

 기본 전환 단축키는 (Ctrl-space) 로 한다 (다른 조합으로 바꿀 수 있다.) 그런데, 한영전환이 안되는 현상이 있다.

로케일을 한글로 변경해준다.( dpkg-reconfigure locales 명령 후 ko_KR.UTF-8 으로 추가 / 설정)

입력기 설정을 보면 "Hangul" 부분이 없었다. 그래서 "+" 를 눌러 해당 부분을 추가해준다.
추가한 후에는 단축키로 변경이 된다.

주로 Virtualbox 를 사용해왔는데, UTM 은 아직은 뭔가 매끄럽지 못한 듯한 느낌이다.
아직 버쳘박스는 공식지원하지 않아, 당분간은 UTM 으로 사용할 듯 하다.

칼리 리눅스 사용해보면서 추가할 부분 보완하겠다.

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

vultr 서버를 사용중이다. 새로운 미션이 있어 관련 사항을 정리한다.

새로운 미션은 서버 접속량(사용량)이 늘어날때 - 서버를 추가 생성하여 부하를 분산하고자 한다.

일단 간단한 구성으로 메인+서브 형태로 구성한다.
해당 메인서버는 톰캣+nginx+MySQL 서버가 동작하는 서버이다.
과부하시 서브로 톰캣 서버를 세팅해서 부하를 분산하고자 하는 미션이다.

1) vultr API 를 활성화 시킨다.

Account > API 메뉴에서 API key 를 활성화 시킨다.

2) vultr-cli 콘솔 관리툴을 설치한다.(MacOS 기준)

brew install vultr/vultr-cli/vultr-cli

3) API key 등록

vi $HOME/.vultr-cli.yaml

내용
api-key: {YOUR-API-KEY}

4) 새로운 인스턴스(서버) 생성하기

vultr-cli instance create --region="icn" --plan="vc2-1c-1gb" --os=167

최소 3가지 항목을 입력하여 생성한다.

1) 서버 생성 지역
vultr-cli regions list

...
icn	Seoul		KR		Asia
...

2) 서버 OS
vultr-cli os list

...
167	CentOS 7 x64				x64	centos
...
1743	Ubuntu 22.04 LTS x64			x64	ubuntu
...

3) 서버 사양
vultr-cli plans list |grep icn
ID				VCPU COUNT	RAM	DISK	DISK COUNT	BANDWIDTH GB	PRICE PER MONTH		TYPE	GPU VRAM	GPU TYPE
vc2-1c-1gb			1		1024	25	1		1024		5			vc2	0
...

여기까지가 기본 사용법이다.

추가로 VPC 연동 / 최초 설치 스크립트 설정 등 관련부분은 정리하도록 하겠다.

 

 

테스트 서버가 필요한 경우 약 100$ 가량의 혜택을 받을 수 있는 광고 링크입니다.

이미지 클릭하여 가입

위 링크를 통해 가입하면, 이런식으로 약 2주간 100$ 가량의 Credit 을 쓸 수 있습니다.

결제(Credit Card / Paypal 등) 설정을 꼭 해야하는지는 불확실 하지만, 2주후에 테스트 서버 삭제하고, 해지하면 될 듯 합니다.
(아마도 악용?해서 가입했다 해지했다 하는 경우가 있을 수 있으니, 카드 인증 등이 필요할 듯 함)
물론 서비스가 좋아서 그대로 계속 써도 되겠죠.

vultr 서비스 사용해보시려면 클릭. ( https://blog.1day1.org/655 )
(무료 100$ 사용 가능)

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

시놀로지의 디스크를 삼바 마운트하여 우분투에서 사용하고 있다.

그런데, 다음과 같은 에러가 발생한다.(우분투쪽)

[15523.215931] CIFS VFS: No writable handles for inode
[16798.711632] CIFS VFS: No writable handles for inode
[17040.031477] CIFS VFS: No writable handles for inode
[18304.662429] CIFS VFS: No writable handles for inode
[18658.056606] CIFS VFS: No writable handles for inode
[19876.687363] CIFS VFS: No writable handles for inode
[20117.599812] CIFS VFS: No writable handles for inode
[20476.214572] CIFS VFS: sends on sock 000000003fca1e56 stuck for 15 seconds
[20476.214575] CIFS VFS: Error -11 sending data on socket to server
[20502.797871] CIFS VFS: cifs_invalidate_mapping: could not invalidate inode 0000000029bfb3c4
[20712.507564] CIFS VFS: sends on sock 000000003fca1e56 stuck for 15 seconds
[20712.507567] CIFS VFS: Error -11 sending data on socket to server
[24255.554486] CIFS VFS: sends on sock 00000000199ed322 stuck for 15 seconds
[24255.554489] CIFS VFS: Error -11 sending data on socket to server
[27933.514989] CIFS VFS: sends on sock 00000000100ef432 stuck for 15 seconds
[27933.514992] CIFS VFS: Error -11 sending data on socket to server
[31459.413179] CIFS VFS: sends on sock 00000000143282f3 stuck for 15 seconds
[31459.413183] CIFS VFS: Error -11 sending data on socket to server
[31474.773249] CIFS VFS: sends on sock 00000000143282f3 stuck for 15 seconds
[31474.773255] CIFS VFS: Error -11 sending data on socket to server

어떤 이유인지 명확하지는 않다.

주로 백업데이터를 나스로 백업하는 용도로 사용한다.

위 에러중 윗 부분은 일시적인 듯 하고, 아래부분이 계속 주기적으로(백업 주기) 발생하고 있다.
원래부터 발생한 것은 아닌듯 하고, 어느 시점부터 발생한 듯 싶다.(또는 늦게 발견)

원인을 찾아 해매던중 혹시나 해서 fstab 의 mount 옵션을 바꿔봤다.

//nas/backup  /data/nas-backup   cifs username=guest,password=passwd,iocharset=utf8,vers=2.0,noauto  0  2

기존 samba ver 1.0 으로 연결하던 것을 ver 2.0 으로 바꿔줬다.( vers=2.0 부분 )

위처럼 바꿔보니, 기존 백업주기에 에러메시지가 나오지는 않게 되었다.

이게 해결책인지는 모르겠다.(한동안 살펴보고, 또 발생하는지도 체크해봐야 겠다.)
참고 : 동일하게 ver 1.0 으로 공유된 윈도우10 머신쪽은 위와 같은 에러가 발생하지는 않았다.

 

[추가] 1일정도 지났는데, 해당 현상은 사라졌다. 추후 다시 체크

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

맥미니 를 벤츄라 로 업그레이드 했다.

주요기능인 스테이지 매니저도 약간의 아쉬움이 있지만, 마음에 든다.

그런데, 주로 서버관리를 원격접속으로 해서 사용하는데, 예전 ubuntu 22.04 에서 나타난 비슷한 현상이 있다.(https://blog.1day1.org/653)
정확히 동일한 원인인지는 모르겠다.

보안성 이슈라 생각해서, id_rsa 방식대신 id_ed25519 의 키를 등록해서 접속하도록 바꿔주고 있다.

PubkeyAcceptedKeyTypes +ssh-rsa

그런데, 해당 옵션으로 안되는 서버가 있다.

no matching host key type found. Their offer: ssh-rsa,ssh-dss

다음과 같은 메시지가 보인다.(오래된 서버라 그런지, 안된다 - centos 6)

HostKeyAlgorithms ssh-rsa

다음 옵션을 추가하니 접속이 된다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

간만에 우분투를 데스크탑 용도로 활용하려고 한다.(주로 서버용으로 많이 썼다.)
맥미니를 쓰면서 더욱 원격으로 사용하게 된다.

놀고(?)있는 컴이 있어서, 데스크탑 용도로 써보기로 하고, 최근 배포판 22.04 를 설치했다.

1. 처음에는 우분투 기본 공유를 써보기로 했다.

이런 메세지가 보이면서 화면이 검정이 된다.

/etc/gdm3/custom.conf

# uncomment
WaylandEnable=false

위 라인을 설정해주고, 재부팅.

접속을 RealVNC 로 접속했는데, 역시나 검정화면

화면 퀄리티를 High 나 Medium 으로 해주면 정상으로 보이긴 한다.

그런데, 느리다. 참고 쓸만한 정도가 아니다. 느리다. 못쓰겠다.

 

2. 더욱 문제인 것은 재부팅 하면 접속암호가 계속 바뀐다.

키인증 관련 문제인 듯 싶다.(https://askubuntu.com/questions/1396745/21-10-make-screen-share-password-permanent )

설정을 잘 못 했는지, 해결이 되지는 않는다.
이걸 해결해도 느려서 못 쓰겠다.

 

3. 그래서 고전적인(?) 방법으로 하기로 한다.

x11vnc 를 사용하기로 한다. https://blog.1day1.org/561 예전에 실패한 gdm3 (기본) 를 다시 시도해봤다.
이번에도 동일하다. 접속이 안된다. 그래서 다시 lightdm 으로 해결.

1804 버전 이후로는 저 문제는 해결이 안된다.(나중에 다시 시도해볼지는 모르겠지만...)
점점 우분투가 이상해(?)지는 부분이 있다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 20.04 에서 기본 패키지로 phpmyadmin 을 설치했다. ( apt install phpmyadmin )
(DB 관리툴은 여러가지가 있지만, 손에 익어서 그런지 phpmyadmin 이 제일 낫다.)

설치 / 설정은 구글링 해보면 잘 나와 있다.(세팅후 접속시 이슈를 정리한다)

그런데, 설정 후 접속해보면 다음처럼 로고까지만 나오고 나오지 않는다.

아래에 로그인 화면이 나와야 하는데, 안나온다.

개발자 도구에 보니 , jquery 등을 불러오지 못한 현상이다.

사실 OOO도메인/phpmyadmin 등으로 접속하면 잘 나오는데, 문제는 phpmyadmin 을 다른 이름으로 바꿀때 나오는 이슈이다.

phpmyadmin / pma 등 자주 쓰는 이름은 무작위 공격에 노출되게 되어 , 가능하면 안쓰는 이름으로 바꿔서 하려고 한다.
즉, OOO도메인/db-secure 등과 같은 자신만의 이름으로 바꾼다.

ln -s /usr/share/phpmyadmin /{nginx-document-root}/db-secure

{nginx-document-root} 는 OOO도메인 을 설정한 위치이다.

저렇게 심볼릭링크만으로 완료되면 좋겠는데, 저렇게 하면 js 파일등이 /db-secure/js/vendor/jquery/jquery.min.js 위치에서 불러와야 하는데, nginx 기본설정으로는 해당위치에 파일을 로딩하지 못한다.
실제 접근하는 주소를 /usr/share/phpmyadmin/js/vendor/jquery/jquery.min.js 가 되도록 설정해줘야 한다.

location /db-secure/ {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ \.php$ {
        root /usr/share/;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_read_timeout 300;   
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~* ^/db-secure/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
        root /usr/share/;
    }
}

위 설정 후에 systemctl restart nginx 로 설정을 적용한다.

그러나 접속해도 동일한 현상이 발생. js 파일 접속주소가 이상하게 되어 있다.
/usr/share/db-secure/js/vendor/jquery/jquery.min.js 로 접근한다.

다음처럼 해서 해당 경로를 만들어 줬다.

cd /usr/share
ln -s phpmyadmin db-secure

위 설정후에 nginx 를 재시작 하면 다음처럼 정상으로 나온다.

 

뭔가 설정이 찜찜한 구석이 있지만, 위와 같이 해결.

추후 좀더 깔끔한 설정을 찾으면, 추가 메시지를 남기겠다. 일단 끝.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

https 를 사용하는 것은 옵션이 아니라 이젠 필수요소인듯 하다.

명령은 2줄이면 될려나?  

apt install certbot python3-certbot-nginx
certbot --nginx -d {도메인} -d {여러개일때 도메인 추가}

나중에 도메인을 추가하려면 2번째 명령을 -d 옵션 추가해서 다시 해주면 된다.

명령 후 다음과 같은 메시지가 나오면.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

2번 즉, http 로 접속하면 https 로 리다이렉트 해준다. (본인의 사례에 따라 1번이 필요하면 1번)

자동으로 cron.d 에도 넣어주어 주기적으로 갱신한다.(즉, 신경쓸 것이 없다)

예전에는 좀 귀찮았던것 같은데, 요즘은 그냥 한줄이면 끝나네.

끝.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 데스크탑의 디스크유틸리티로 파티셔닝(포맷)을 하니 디스크전체를 하나로 잡아버린다.

그냥 sdb 로 통채로 잡아버렸다

fdisk 로 봐도 뭔가 이상하다.

파티셔닝 정보가 보이지 않는다

그래서 다시 파티셔닝을 한다.

예전에 parted 를 이용한 파티셔닝을 했었다.( https://blog.1day1.org/621 )

해당 방법으로 해도 크게 문제는 없지만, fdisk -l 으로 봤을때 뭔가 찜찜한 메시지가 보인다.

참고 : https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-in-linux

위 글을 참조해서 이렇게 하면 해당 메시지가 없어진다.

parted /dev/sdb

(parted) mkpart primary ext4 0% 100%

위 방법이 제일 깔끔해보인다.(더 나은 방법이 있다면, 추후 보완)

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

ubuntu 22.04 로 업그레이드 후에 기존 autossh 로 설정해놓은 터널링이 안된다.
그래서 확인해보니. autossh 가 실패되었다.

더 확인해보니 ssh 로 접속이 안되고, 암호를 물어본다.

ssh -vvv 로 접속해서 메시지를 확인해봤다.

다음과 같은 메시지가 보인다.

ssh send_pubkey_test no mutual signature algorithm
or
sign_and_send_pubkey: no mutual signature supported

검색해 보니, 보안관련 이슈인듯 싶다.

일단 해결방안은 아래 링크로

https://transang.me/ssh-handshake-is-rejected-with-no-mutual-signature-algorithm-error/

https://confluence.atlassian.com/bitbucketserverkb/ssh-rsa-key-rejected-with-message-no-mutual-signature-algorithm-1026057701.html

위 방법중 임시방편? 으로 일단 해결해본다.

.ssh/config 에 접속설정을 추가한다.

Host server-nickname
        hostname servername.com
        User root
        Port 2222
        PubkeyAcceptedKeyTypes +ssh-rsa

추천하는 방법은 보안성에 좋은 key 를 재생성해서 사용하는 것 같다.
추후 시간내서 조치해야 겠다.

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

원래 컴을 계속 켜놓고 쓴다. 안쓸때는 화면잠금 정도만 하면서 사용했다.

올해 유난히 더운지, 게다가 에어컨도 고장인 듯 해서 안쓸때 끄려고 한다.
특히 맥미니에 외장그래픽카드를 연결해두는데 이게 특히 뜨겁다.(물론 맥미니 본체도 뜨끈하다)

아예 시스템종료를 할까? 잠자기를 할까? 고민하다가 잠자기로 하기로 했다.
빠르게 켜지기도 해서 잠자기로 하려는데, 보니 맥미니에서는 단축키가 설정이 안되어 있다.
(검색해보니 맥북같은 노트북류 맥OS에서는 command(⌘) + option(⌥) + 전원버튼 라고 한다.)
전원버튼? (혹은 미디어 꺼내기 or 이젝트) 라고? 맥미니 에는 그게 없다.

그래서 직접 키보드 단축키 설정으로 만들어 줘야 한다.
(메뉴위치 : 시스템환경설정 => 키보드)

단축키 탭의 + 를 눌러 추가해준다.
메뉴제목을 잠자기 로 하고, 단축키를 입력해준다.

난 control(⌃) + shift(⇧) + command(⌘) + Q  로 설정했다.

메뉴에 잠자기 항목에 설정한 단축키가 나온다.

 

그나저나 빨리 에어컨을 고쳐야 겠다.

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

카톡을 보다보니 혹하는(?) 메시지가 떠서 확인해보니 "환급금 없음" 이라 실망했다.
그래서 뭔가 알아봤다.

저 광고를 예전 몇번 보긴했는데 조회는 안해봤었다. 그후에 계속 눈에 뜨긴했다.(좀 안나오면 안되나?)

암튼 해당 조회는 국세청(홈택스)의 국세 환급금 인 듯 하다.

홈택스를 이미 이용하고 있다면, 간편?하게 확인 할 수 있다.

조회를 하려면 아이디 로그인 만으로는 안되고, 공인인증서 나 간편인증(카톡,네이버등) 을 해야 한다.

나는 네이버로 했다. 카톡도 할 수 있다.
인증 완료 후에 조회 가능하다.

지난 5년을 조회가능하다. 해보니 난 2건이 있었다.(이미 환급은 받았다.)

환급을 받았다고 하는데, 뭔지는 모르겠다.(연말정산 환급 그런것일까?) 암튼 이미 받아서 아쉽.

 

결론) 이제 저 광고 안 봤으면 좋겠다. 왠지 낚시 같아! 좀 다른 마케팅으로 해주세요.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

간만에 노트북에서 git 프로젝트를 실행하려고 보니 다음과 같은 에러가 발생한다.

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), 
missing xcrun at: ...

그동안 데스크탑(맥미니)에서 하다보니, 노트북 설정이 꼬였나 했다.

검색해보니 xcode 관련 이슈인 듯 하다.

일단 xcode 를 업그레이드 한다.

xcode-select --install

... 느리네.

OO minutes later ..

완료된 후 다시 시도하면 OK

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 20.04 에서 openssl 을 사용할 때 , 기본값이 TLS v1.3 인 듯 하다. (그 이전 어느버전 부터 바뀐듯)

imap 등을 접속할 때, 1.3 버전을 지원하지 않는 서버의 경우 다음과 같은 에러를 보인다.

TLS/SSL failure for imap.naver.com: SSL negotiation failed

openssl 으로 아래처럼 접속시 안되는 경우가 있다.

openssl s_client  -connect imap.naver.com:993

아래 부분의 (NONE) 부분.

New, (NONE), Cipher is (NONE)
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1635870017
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no

정상적인 경우 아래와 같다.

New, TLSv1.2, Cipher is DHE-RSA-AES256-GCM-SHA384

 

우분투 20.04 버전의 설정을 TLS v1.2 이하 버전도 가능하게 활성화(?) 시켜본다.

파일은 /etc/ssl/openssl.cnf 으로, 아래 설정값을 추가한다.

# openssl.cnf 앞 부분에 추가
# system default
openssl_conf = default_conf



# openssl.cnf 뒷 부분에 추가
[ default_conf ]
ssl_conf = ssl_sect

[ ssl_sect ]
system_default = system_default_sect

[ system_default_sect ]
MinProtocol = TLSv1.2
CipherString = DEFAULT:@SECLEVEL=1

재부팅 해보면, 설정이 적용된다.

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

윈도우 11 이 런칭해서, 업그레이드 해서 테스트 해보고 있다.

사용중인 virtualbox 가 실행시 다음과 같은 에러가 난다. (VERR_NEM_VM_CREATE_FAILED)

이유는 윈도우 자체의 가상머신 기능과 충돌하는 듯 하다.

다음 명령으로 윈도우 가상머신 기능을 비활성화 한다.(관리자 모드로 실행 CMD 나 powershell )

bcdedit /set hypervisorlaunchtype off

예전 윈10 일때도 설정했던 기억이 살짝 난다.

위 명령후에 재부팅을 한 후 다시 시도해보면 해결된다.

윈도우 업그레이드 마다 발생하는 듯 한데, 더 좋은 해결책이 있을지는 ...

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

오늘 이런 메일이 왔다.  공식적인 네이버 메일인 줄 알았다.

네이버 피싱메일 예시

그래서, 메일 내용대로 스팸을 보냈다면,  메일 계정(암호)이 털렸나 생각했다.

암호 바꿔야지 생각하던차 자세히 보니 이상했다.
일단 보낸이 주소가 약간 이상하다.  navercorrp.com => r이 이상하게 하나더 들어가있다.

그렇다 피싱메일 인 것이다.

"아이디 보호해제" 로 들어가면 개인정보를 요구한다.(화면도 사칭화면이다.)

주소창의 주소가 다르다. naevear.com 이라는 사칭주소

피싱메일 은 이런식으로 공식계정을 사칭하는 경우가 많다. 순간 방심하다가는 당할 수 있다.

특히 개인정보를 요구하는 경우는 특히 조심해야 한다.

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투에서 윈도우10 의 공유폴더가 마운트 되지 않는다.

# mount win10-share
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

위와 같은 메시지가 나오면서 연결이 안된다.

로그기록은 다음처럼 나온다.

 CIFS VFS: cifs_mount failed w/return code = -112

smbclient 로 연결해도 표시가 되지 않는다.

# smbclient -L win10-pc
WARNING: The "syslog" option is deprecated
Enter root's password: 
protocol negotiation failed: NT_STATUS_CONNECTION_RESET

윈도우10 에 삼바1 프로토콜이 기본 비활성화 되서 그런것이다.

실행 => appwiz.cpl 명령 실행  / 또는  설정 => 앱및기능 => 프로그램 및 기능

실행창 => 윈도우키+R
Windows 기능 켜기/끄기

위 이미지의 SMB 1.0 관련 설정을 켜준다.

ps. 우분투 버전에 따라 기본 samba 2 를 사용할 수도 있겠지만, 기존 사용하던 컴에서 연결이 안된 경우이다.

 

[추가]
위 단계를 처리하고, 다음과 같은 에러가 나온다면, https://blog.1day1.org/602 를 참조.

mount error(127): Key has expired

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

M1 버전 맥은 아니고, 인텔 맥으로 테스트 해본다.(M1 사고 싶은데, 고려 사항이 생겼다)

맥에서 brew 가 설치되어 있어야 한다. (이건 구글링 하시길... 패스)

brew install smartmontools

설치가 되면 다음 명령으로.

sudo smartctl --all /dev/disk0

어떻게 나올까?

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        54 Celsius
Available Spare:                    100%
Available Spare Threshold:          99%
Percentage Used:                    29%
Data Units Read:                    525,286,903 [268 TB]
Data Units Written:                 497,637,078 [254 TB]
Host Read Commands:                 3,693,274,932
Host Write Commands:                3,504,711,045
Controller Busy Time:               0
Power Cycles:                       125
Power On Hours:                     3,222
Unsafe Shutdowns:                   47
Media and Data Integrity Errors:    0
Error Information Log Entries:      0

Read 1 entries from Error Information Log failed: GetLogPage failed: system=0x38, sub=0x0, code=745

주요 체크할 부분은

Percentage Used:                    29%
Data Units Read:                    525,286,903 [268 TB]
Data Units Written:                 497,637,078 [254 TB]

수명의 30% 가량을 사용했다는 뜻일까? (Percentage Used)

자세한 부분은 "SSD TBW 계산" 등으로 검색해본다.

용량 256G 는 75 TBW 정도라고 한다.( 하루 75G 사용시 5년정도 수명이라고 한다.)

위 제품은 M1 버전은 아니고, 2019년형 인텔 맥미니이다. (2019년 7월경 구매)

그 이후 거의 매일 켜두고 쓰고 있다. 약 20개월 정도 사용한 듯 하다.
쓰기가 254 테라로 나오니 계산해보면, 1개월 12.7테라 / 30일기준 1일 430기가 정도.

헐. 75G 기준 5~6배가 넘네. (저 정도로 오버해서 썼나? 딱히 헤비하게 쓴것 같지는 않은데...)
내가 계산을 잘못한건가? 암튼 계산이 맞다면, 1년정도에 수명이 다 했어야 하나? 현재는 1년 8개월정도 사용.

음. 150 TDW 라고 가정하고 계산하면, 2년정도 되나? 수명이 얼마 안남은건가?

Percentage Used 로 보면 30% 정도 사용? 대략 계산시 2~3년 더?

수명이 딱히 정확하게 계산으로 나오는 것은 아니라고 한다.
그렇더라도, 항상 켜두고 쓰는 스타일이라 아주 오래쓰지는 못 할 것 같긴하다.

M1 버전은 더 심하게 SSD 를 혹사하는지는 모르겠지만,
조만간 M1 버전 맥미니를 살까하는데, 메모리나 SSD의 용량을 늘리는 것을 검토해봐야 겠다.
(현재는 8G 메모리, 256G SSD 인데, 같은 사이즈로 할려고 했는데, 늘리는 것을 고려)

아니면, 그냥 다음 버전 M2 같은 거로 해야 할려나?

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,