'우분투'에 해당하는 글 66건

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

윈도우 공유를 우분투에서 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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

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

그런데, 우분투 <=> 우분투 의 경우 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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 배포판은 지원기간이 있다. LTS 버전은 좀더 오래 지원한다.
(지원 기간은 https://wiki.ubuntu.com/Releases 참조)

ubuntu 12.04 를 사용할 일이 생겨 - 설치를 했는데, 패키지가 깔리지 않아 한글도 안보이고 이상한 부분이 있었다.

추가적인 보안 지원같은 것은 안되지만, 마지막 패키지까지는 사용할 수 있다.

deb http://old-releases.ubuntu.com/ubuntu/ precise universe
deb-src http://old-releases.ubuntu.com/ubuntu/ precise universe
deb http://old-releases.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates universe

/etc/apt/sources.list 를 위처럼 old-releases 주소로 바꿔준다.

보통 다음 주소로 되어 있을 것이다.

http://kr.archive.ubuntu.com

주소를 바꿔주면, apt-get 으로 패키지를 설치해서 사용할 수 있다.(한글 언어 패키지 등 설치 가능)

 

반응형

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

,

동일한 환경의 서버에 ssh 접속하는데, 5초가량 늦는다. (차이점은 동일버전의 서버용/데스크탑용 의 차이)

ssh server -vvv 로 접속해보면

debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50

위 부분에서 5초가량 늦게 접속이 된다.(다른 서버는 거의 바로 접속)

구글링을 해보니, avahi-daemon 이라는 용의자가 보인다.

service avahi-daemon stop
or
systemctl stop avahi-daemon

정지하고 접속하니 해결.

여러 서버/데스크탑을 사용해봤지만, 이런 상황은 처음 겪어본다.
우분투 12.04 지원까지 끊긴 서버라 그런가? 확인해보니 최근 배포판은 그런 현상은 없었다.

 

반응형

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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

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

그냥 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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투에서 윈도우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
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,

우분투 데스크탑을 사용하면서, 보통 계속 켜두고 쓴다.

그런데, 왜 그런지, 잠금화면이 마우스는 움직이는데, 키보드가 안 되는 듯 하다. 또한 상단 메뉴등이 클릭이 되지 않는다.

아예 멈춘것은 아닌데, 이상하다. 그래서 ssh 로 접속해보니, 정상적으로 동작하고 있었다.
lock screen 만 이상한 것이다.

이런경우 ssh 로 root 접속한 후 다음 명령을 입력한다. (또는 sudo 명령으로 )

# loginctl unlock-sessions

 

일단 해결은 했는데, 왜 그런 현상이 발생했는지는 모르겠다.

현상 중 하나가 잠금화면의 암호 입력부분이  마치 키보드의 특정키가 눌린 것처럼  여러개가 눌려져 입력되어 있다는 것이다.
(어디서 이상한 입력이 들어온다? - 해킹?)
위 원인으로 인한 다른 현상은 잠금화면이 되면, 모니터도 잠자기(?) 모드로 가는데, 모니터도 켜져 있다.

좀더 현상을 지켜봐야 겠다. (18.04 등으로 업그레이드를 해야할려나?)

 

[추가]
현상 재연을 확인했다. 키보드가 로지텍 무선 키보드인데, usb 리시버의 이상인지.
무선키보드 전원 껐다 다시 키면 , 특정문자가 여러개 입력이 되버린다.

켜져있는 상태에서 드라이버 문제인지, 키보드 자체문제인지, 혹은 usb 리시버, 혹은 메인보드 이상 현상으로 인한 문제일 듯 하다.

우선 재부팅 등으로 조치해보고, 추후 키보드 교체 등을 해볼 예정.

 

반응형

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

,

공유기 등 내부망에 있어서 외부 접속이 어려운 환경에서 접속할 수 있게 할 수 있다.

터널링을 통해 가능하다. ssh 로 접속해 있을 수 있는 호스팅 환경이 있으면 된다.

apt install autossh

설치는 쉽다.

systemd / upstart 방식에 따라 자동 실행 설정이 조금 다르다.

# systemd 방식 (최근 배포판)

# vi /etc/systemd/system/autossh.service
[Unit]
Description=AutoSSH service for a reverse tunnel 
After=network-online.target

[Service]
ExecStart=/usr/bin/autossh -M 0 -q -N \
-i /root/.ssh/id_rsa \
-o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" your-externel-server \
-R 5991:127.0.0.1:5901 \
-R 5922:127.0.0.1:22 \
-R 5989:192.168.11.19:5900

[Install]
WantedBy=multi-user.target

위 설정처럼 하면 된다. 자신의 맞는 환경에 따라 수정해서 사용하면 된다.
내부 서비스(5901 , 22) 로 접속가능하고, 또는 동일네트워크 다른 서버로도 접속가능하다.

위 파일 생성 후 다음 명령으로 실행해준다.

systemctl enable autossh
systemctl start autossh

 

# upstart 방식 (예전 방식)

# vi /etc/init/autossh.conf 
description "autossh daemon for ssh tunnel"

start on net-device-up IFACE=eth0
stop on runlevel [01S6]

#setuid autossh

respawn
respawn limit 5 60

script
export AUTOSSH_FIRST_POLL=30
export AUTOSSH_GATETIME=0
export AUTOSSH_POLL=60
/usr/bin/autossh -M 0 -q -N \
-i /root/.ssh/id_rsa \
-o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" your-externel-server \
-R 5991:127.0.0.1:5901 \
-R 5922:127.0.0.1:22 \
-R 5989:192.168.11.19:5900
end script

설정 방식만 조금 다를 뿐 사용법은 동일하다.

 

그럼, 제 3의 위치에서 터널링으로 뚫어 놓은 내부서버에 접속해본다.
당연히 바로 접속 할 수는 없다.

다음의 ssh 명령으로  {로컬PC} => 외부 서버 => 내부망(터널링)  으로 접속한다.

ssh your-externel-server -L 5991:127.0.0.1:5991 -L 5922:127.0.0.1:5922 

위 설정은 로컬PC 의 포트로 터널링한 내부망의 서비스 포트와 연결하는 것이다.

ssh root@localhost -p 5922

내부에서 다음 처럼 접속하면 된다. (위 예시는 내부망의 22번 ssh 포트로 접속하는 명령)

조금 복잡해 보일 수 있지만, 흐름을 이해하면 크게 어렵지는 않다.

내부망에 포트포워딩으로 접근할 수 없는 경우, 보안접속이 필요한 서비스 등에 사용할 수 있다.
기본적으로 ssh 를 이용한 것이라 vpn 처럼 보안접속이 필요한 경우등에 유용할 듯 싶다.

 

[추가]

systemd 방식 설정 후 재부팅했는데, autossh 가 실행이 안되는 경우

다음과 같은 에러가 날때 (systemctl status autossh 로 확인)

ssh exited prematurely with status 255; autossh exiting

구글링 해보니, After=network-online.target 대신에

After=network.target
After=NetworkManager-wait-online.service

등등 여러개로 바꿔가며 해봐도 안된다. 네트워크가 정상 접속되는 시점이 차이가 있는 듯 하다.

 

# vi /etc/systemd/system/autossh.service 에 다음 항목을 추가해준다.

[Service]
ExecStartPre=/bin/sh -c 'until ping -c1 google.com; do sleep 1; done;'

 

위 처럼 네트워크가 동작하는지 체크 후에 실행하도록 한다. ( 완료 후 systemctl daemon-reload 로 설정을 재로딩 해준다)

반응형

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

,

우분투에서 윈도우의 공유폴더를 연결해 사용하고 있다.
그동안 별 이슈 없이 사용했던것 같다.

그런데, 윈도우 업데이트 후에 다음과 같은 에러가 발생하면서 연결이 안된다.

mount error(127): Key has expired

"키가 만료되었습니다" / NT_STATUS_ACCOUNT_DISABLED 등의 메시지가 보일 수도 있다.

mount 할때 guest 계정으로 연결하는데, 윈도우 업데이트 후에 해당 계정설정이 바뀐 듯 하다.

위 그림은 조치한 후에 화면이다.   활성계정 부분이 "예" 로 되어 있어야 하는데, "아니오" 로 되어 있었다.

net user guest /active:yes

로 활성화 해준다.

 

반응형

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

,

LG 그램을 사용중이다. 윈도우가 기본 설치가 되어 있지만, 개발에 필요해서 우분투를 설치해서 사용하려 한다.

USB 부팅(설치) 디스크를 만들고 부팅을 시도 했는데. 다음과 같은 에러가 나면서 부팅이 되지 않는다.

Failed to open \EFI\BOOT\NULL - Not Found
Faild to load image \EFI\BOOT\NULL : Not Found
start_image() returned Not Found

위와 같은 에러가 나는 경우. USB 설치 디스크의 해당 위치를 보면

grubx64.efi
mmx64.efi
bootx64.efi

등의 파일이 있는데.

난 grubx64.efi 를 복사해서 NULL 파일로 이름을 바꿔줬다. (NULL.efi 가 아닌 그냥 NULL )

다시 재부팅을 해보니 정상적으로 부팅화면으로 넘어갔다.

ps. 여러가지 그램 바이오스 세팅을 바꾸는 방법이 구글링 하면 나오는데.
난 위 방법으로 했다. (secure boot : disable 등 몇가지는 설정했다.)

반응형

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

,

ubuntu 에서 squid3 설정.

- 설정은 간단하다.

- curl 을 이용해 해당 proxy 서버를 사용할때 주의점.

 

# 설치

apt-get install squid3 
또는
apt install squid

끝. 쉽다.

 

# 설정

/etc/squid3/squid.conf 을 설정 (다른 위치 : /etc/squid/squid.conf )

(원래 파일은 복사하고, 새로 생성한다)
  => 원래 파일을 주석제거하고 복사하고 싶을때

mv squid.conf squid.conf.old     # backup
cat squid.conf.old | egrep -v '^[[:space:]]*(#.*)?$' > squid.conf

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

 

# digest

auth_param digest program /usr/lib/squid3/digest_file_auth /etc/squid3/squid3.digest.passwd

auth_param digest realm proxy

acl sq_digest proxy_auth REQUIRED

http_access allow sq_digest

 

# basic

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squid3.basic.passwd

auth_param basic realm proxy

acl sq_basic proxy_auth REQUIRED

http_access allow sq_basic

 

cache deny all

 

http_port 4128

 

#http_port 3128

coredump_dir /var/spool/squid3

 

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .               0       20%     4320

 

진한 부분이 추가한 부분이다. 기본파일에는 http_access 관련 설정이 있는데 삭제했다.

 

# 포트 변경

그리고 추천하는 부분은 기본포트인 3128 을 다른 포트로 바꾸길 권장한다.
언제나 그렇듯이 공격 대상이 될 수 있다. (ssh 도 필수로 바꾸는 것이 좋다. 22 -> 다른 포트)

 

# 캐시 비활성화

cache deny all 

캐시를 비활성화 했는데, 필요하면 삭제 또는 주석처리한다.

 

# 인증 모드

인증 모드는 digest 와 basic 이 있는데 설정은 위와 같다. 동시에 써도 되는지는 모르겠다.

암호파일 생성은 htpasswd / htdigest 를 사용한다.

사용법은

htpasswd -c /etc/squid3/squid3.basic.passwd {username}

htdigest -c /etc/squid3/squid3.digest.passwd proxy {username}

암호화는 digest 방식을 추천한다.

 

모두 설정이 완료되었으면 재시작해서 바뀐 설정을 적용한다.

service squid3 restart

 

 

 

# curl 에서는 다음처럼 사용한다. ( php 기준 설명 )

php curl 은 아쉽게도 digest 모드를 아직 지원안하는 듯 하다.

$proxyserv = '123.123.123.123:4128' ;
$proxyauth = 'username:password';

 

curl_setopt($ch, CURLOPT_PROXY, $proxyserv );

curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth );
 

위와 같이 써준다.

curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_DIGEST ); 

위 옵션이 되면 좋겠는데, 아쉽게도 현재는 안된다.( 현재는 CURLAUTH_BASIC , CURLAUTH_NTLM 만 지원)

 

 

 

반응형

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

,

sublime text 를 쓰던 환경을 그대로 복사하거나 옮길경우

1. 계정폴더의 .config/sublime_text_3 폴더를 그대로 복사하면 된다.

해당 폴더 자체를 dropbox 등으로 동기화를 해도 될 듯 하지만,
충돌 가능성이 있으니 일단 배제.

2. license 파일은 그대로 복사해도 안된다. 다시 키 입력해서 새로 생성한다.




반응형

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

,

목적은 다음과 같다.

우분투 14.04 vino-server <==> ssh 터널링(putty) <==> 윈도우 vnc

이와 같은 목적으로 세팅을 했다. putty 에서 ssh 터널링 설정은 많으니 패스.

그런데, 윈도우에서 vnc 로 접속시 다음과 같은 메시지가 나온다.

Error in TightVNC Viewer: No security types supported. Server sent security types, but we do not support any of their.

tightvnc 먼저 테스트.

Unable to connect to VNC Server using your chosen security setting.
Either upgrade VNC Server to a more recent version from RealVNC, or select a weaker level of encryption.
혹시나 해서 realvnc. 둘다 마찬가지.


ssh 를 통과해서 security 관련 문제가 나타나는 듯 하다.

결국은 vino-server 대신 x11vnc 를 사용하기로 했다.

설치/설정 방법은 http://blog.1day1.org/561 를 참조한다.


x11vnc 로 바꾸고, 접속해보니 정상적으로 접속한다.



반응형

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

,

우분투에서 vino-server 보다 x11vnc 가 나은듯 하다.

x11vnc 를 설치해보자

apt-get install x11vnc xinetd

로 설치해준다.

그리고, xinetd 는 x11vnc 를 자동실행시켜주기 위해 사용한다(취향에 따라 gdm 로그인시 자동실행시켜도 된다.)

/etc/xinetd.d/x11vnc 로 다음 내용을 저장한다.

service x11vnc
{
   port = 5901
   type = UNLISTED
   socket_type = stream
   protocol = tcp
   wait = no
   user = root
   server = /usr/bin/x11vnc
   server_args = -inetd -o /var/log/x11vnc.log -display :0 -auth /var/lib/gdm/:0.Xauth -xkb -repeat -many -bg -noxdamage -rfbauth /etc/x11vnc.passwd
   disable = no
}


여기서 조심할 항목은 /etc/x11vnc.passwd 의 암호를 지정하는 것이다.

x11vnc -storepasswd /etc/x11vnc.passwd


로 하면 암호를 물어보고, 해당 파일로 저장이 된다.

server_args 부분설명
  -noxdamage :  compiz 상에서 화면갱신등의 성능이 좋지 않는데, 저 옵션을 주면 좋아진다.

  -xkb -repeat  : shift 키가 안먹을때 넣어 준다.

  -auth {xauth} : ps aux | grep auth  명령으로 위치를 찾아준다.

/usr/bin/X -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

ubuntu 14.04 에서는 위와 같다. lightdm 부분 /var/run/lightdm/root/:0 을 -auth 옵션뒤에 넣어준다.

 

설정 완료 후에는 xinetd 를 재시작 해준다.

service xinetd restart

 

[추가-2020-03-31]

우분투 18.04 에서는 lightdm 대신에 gdm 을 사용한다.(auth 부분이 /run/user/121/gdm/Xauthority 이다 )
특정 시스템의 문제인지 모르겠지만, 로그인 하면 검정화면이 된다.

해결 방법이 있을듯 하지만, 그냥 lightdm 을 설치해서 해결했다.

apt install lightdm

 

반응형

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

,

관리하는 서버 대수가 많아지다 보니 모니터링이 쉽지 않다.

서버 호스팅 업체를 통한 기본관리도 가능하지만, 부족한 부분이 있고, 여러 호스팅 업체를 사용하다보면 그것도 불편하다


icinga 로 모니터링 서버를 구축해본다.

웹 모니터링 화면을 접속하면 이런식으로 나온다.

관련글 : https://www.digitalocean.com/community/tutorials/how-to-use-icinga-to-monitor-your-servers-and-services-on-ubuntu-14-04

설정은 위 링크를 참조하기로 하고 특이사항 들을 추가한다.


관련 패키지를 설치하면 몇가지 설정단계를 거친다.

1) 처음에는 mysql root 계정 암호를 넣을 것이다. 적당한 암호를 넣는다.


2) 메일 설정 부분

메일 설정을 해준다. 메일로 알람을 받을 때 쓰는 듯 하다.


3) 관리자 화면에 쓸 icingaadmin 계정 설정

관리용 웹화면의 암호를 입력한다.

다음처럼 추가 패키지들이 설치된다.


다음은 그냥 No 로 넘어가고,


4) icinga-idoutils 관련 설정

icinga-idoutils 의 설정 : 모니터링 데이터에 쓰이는 듯 하다.

여기에서는 mysql 을 쓸 것이다.


초기데이터 설정을 위해 관리자 암호를 물어본다(처음에 설정한 값)


icinga-idoutils 가 쓸 mysql 계정암호를 넣는다.

여기까지 기본설정 완료. 추가로 패키지들이 마저 설치된다.



5) 모니터링 관리자 화면 접속.

난 설정을 포트포워딩 해서 http://localhost:8800/icinga/ 으로 접속했다.

아이디는 icingaadmin 이고, 암호는 설정시 입력한 값을 넣는다.




참고로 난 vagrant 로 가상머신을 만들고, icinga 를 세팅했다.
vagrant 로 세팅후 box 의 80포트를 포트포워딩 하고, 부팅시 자동실행하도록 설정했다.

1) 포트포워딩(Vagrantfile)

config.vm.network :forwarded_port, host: 8080, guest: 80

2) 부팅시 자동실행(vagrant box) : http://blog.1day1.org/543




반응형

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

,

우분투 14.04 시스템에 btrfs 를 사용하고 있다.

SSD raid 에 LVM 으로 나눠서 쓰고 있다. 일반적인 사용형태보다는 좀 복잡할 것이다.
(물론 아주 특이한 케이스는 아니다)

docker 를 테스트 하던 중.

docker pull 로  이미지 몇개 설치하지 않았는데, 디스크가 꽉차는 현상이 발생했다.
크롬이 비정상 종료되길래 왜 그러지 싶었다. 그냥 아무 생각없이 재부팅하니. 정상부팅되지 않았다.

순간 멘붕.

허걱! 다시 OS를 깔아야 하나. 데이터 만이라도 살려야 하는데.
중요데이터는 Dropbox 로 동기화 하고 있으니 별 상관은 없지만, 또 세팅을 다시하려니 힘이 쭉.

single 모드로 다시 부팅을 해보고 점검을 해봤다.

주요 메시지는

Incrementally starting RAID arrays...
mdadm: CREATE user root not found
mdadm: CREATE group root not found
Incrementally started RAID arrays.

이런식의 메시지가 계속 무한루프 된다. 위 메시지를 검색 해봤는데, 별다른 원인을 못찾겠다.


docker 를 테스트 하던중 용량 관련 메시지 No space left on device  => 디스크 full 일때 나오는 익숙한(?) 메시지
를 봤었다. 그것과 관련이 있을 것 같다.

# df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_root-lv_root  131G   46G   84G  36% /
none                         4.0K     0  4.0K   0% /sys/fs/cgroup
udev                         3.9G  4.0K  3.9G   1% /dev
tmpfs                        791M  1.3M  789M   1% /run
none                         5.0M     0  5.0M   0% /run/lock
none                         3.9G  156K  3.9G   1% /run/shm
none                         100M   44K  100M   1% /run/user

그러나 시스템 용량은 충분했다. 어떤 다른 이유인것 같다.


docker pull dockerfile/mongodb

등의 명령을 내리면, 이미지를 다운로드하고 컨테이너를 생성한다.

# docker pull dockerfile/mongodb
Pulling repository dockerfile/mongodb
6c03df111896: Download complete
511136ea3c5a: Download complete
5e66087f3ffe: Download complete
4d26dd3ebc1c: Download complete
d4010efcfd86: Download complete
99ec81b80c55: Download complete
b261bc65cd23: Download complete
42404685406e: Download complete
6cc69450fe19: Download complete
efc4fbcd007f: Download complete
2baeb2edbf92: Download complete
ecd5c1cc18ac: Download complete
1f089cc15e82: Download complete
9c1219bb985c: Download complete
d5885db18d17: Download complete
f1b2b4374c6b: Download complete
c0cda6b780cd: Download complete
42f2a60d100f: Download complete

이때 docker 는 btrfs 인 경우 subvolume (스냅샷?) 기능 을 이용하는 것 같다.

/var/lib/docker/btrfs/subvolumes 에 생성이 된다.

btrfs subvolume list /

을 해보면 아무것도 없어야 한다. 그런데, docker pull 후에 다시 명령을 해보면.

# btrfs sub list /
ID 386 gen 94278 top level 5 path var/lib/docker/btrfs/subvolumes/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
ID 387 gen 94278 top level 5 path var/lib/docker/btrfs/subvolumes/5e66087f3ffe002664507d225d07b6929843c3f0299f5335a70c1727c8833737
ID 388 gen 94279 top level 5 path var/lib/docker/btrfs/subvolumes/4d26dd3ebc1c823cfa652280eca0230ec411fb6a742983803e49e051fe367efe
ID 389 gen 94280 top level 5 path var/lib/docker/btrfs/subvolumes/d4010efcfd86c7f59f6b83b90e9c66d4cc4d78cd2266e853b95d464ea0eb73e6
ID 390 gen 94281 top level 5 path var/lib/docker/btrfs/subvolumes/99ec81b80c55d906afd8179560fdab0ee93e32c52053816ca1d531597c1ff48f
ID 391 gen 94282 top level 5 path var/lib/docker/btrfs/subvolumes/b261bc65cd23e8399c39ef0b77d732ddf6ca9679d4cea0ad1cdaca715c4a0d81
ID 392 gen 94283 top level 5 path var/lib/docker/btrfs/subvolumes/42404685406e72d29e3b349605d34cb88590cfcfabb06b9925628f2949c2eb89
ID 393 gen 94284 top level 5 path var/lib/docker/btrfs/subvolumes/6cc69450fe1990579c13d444495dcfec342955712481647fcb73d5a8e6184f33
ID 394 gen 94285 top level 5 path var/lib/docker/btrfs/subvolumes/efc4fbcd007ff7a202ead05932a48f62301464b8f1bc1449f3a8f9b5c26d9515
ID 395 gen 94286 top level 5 path var/lib/docker/btrfs/subvolumes/2baeb2edbf92488d7bbd4723368aeb2e86045f7ed6310b5924cec2d3c3ff8710
ID 396 gen 94287 top level 5 path var/lib/docker/btrfs/subvolumes/ecd5c1cc18ac86e88dd6420161d5812ef6cd31c1a0ce252d071d4481996502fc
ID 397 gen 94288 top level 5 path var/lib/docker/btrfs/subvolumes/1f089cc15e82571690524c3633dc361ba526d25fed072e09607fac7ee1178098
ID 398 gen 94289 top level 5 path var/lib/docker/btrfs/subvolumes/9c1219bb985cb5ceb0a602ad943c9dd5b83cf0f16d3cd05730113fe0af37d0be
ID 399 gen 94290 top level 5 path var/lib/docker/btrfs/subvolumes/d5885db18d17c3e473f310ab7723a1c6b4c29a14b9a8db54bfd795466bee1da3
ID 400 gen 94291 top level 5 path var/lib/docker/btrfs/subvolumes/f1b2b4374c6b1813549a4436c190f4e0ab04168eee3244e08931b63c96b943c1
ID 401 gen 94292 top level 5 path var/lib/docker/btrfs/subvolumes/c0cda6b780cdb2c400b470371baea2149ac4caef980d4685465f0ef13eb2af6c
ID 402 gen 94293 top level 5 path var/lib/docker/btrfs/subvolumes/42f2a60d100fcbda388b76bb69270fc057565ab4bdf5d68072b30b225669e5f4
ID 403 gen 94293 top level 5 path var/lib/docker/btrfs/subvolumes/6c03df11189668e549ac34464dbdbef563144f92eeb89246afaa1029b92cfd7d

위 처럼 많은 subvolume 이 생성된 것을 볼 수 있다.
ID 값이 동일한 것(진한부분)을 보니 ID 당 서브볼륨을 생성해서 관리하나 보다.


파일용량을 체크해보면 다음과 같다.

# btrfs file df /
Data, single: total=127.21GiB, used=44.64GiB
System, DUP: total=8.00MiB, used=20.00KiB
System, single: total=4.00MiB, used=0.00
Metadata, DUP: total=1.50GiB, used=1.02GiB
Metadata, single: total=8.00MiB, used=0.00

서브볼륨은 어느 부분에 영향을 주는지 확인해봐야 겠다.

아무튼.

docker rmi dockerfile/mongodb

명령으로 docker 이미지를 삭제하면 해당 subvolume 도 삭제된다.


개별적으로 subvolume 을 삭제하려면

btrfs sub del var/lib/docker/btrfs/subvolumes/6c03df11189668e549ac34464dbdbef563144f92eeb89246afaa1029b92cfd7d

으로 삭제해준다.( 부팅이 안되서 usb 우분투 로 부팅하고, 해당 서브볼륨을 위 처럼 하나씩 삭제해줬다)


btrfs 에 좀더 알기전까지는 조심해야 겠다.

다음부터 docker 는 vagrant 기반의 vm 내에서 테스트 해봐야 겠다.



반응형

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

,

docker 를 설치해본다.

우분투 14.04 에서는 간편하다. 이미 우분투 공식패키지로 등록이 되어 있다.

apt-get install docker.io


그러나 공식패키지는 버전업이 느리다.

# docker.io --version

Docker version 0.9.1, build 3600720


빠르게 버전업하는 패키지는 공식사이트의 배포버전을 사용하면 좋다.

echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list

apt-get update

apt-get install lxc-docker

한번에 끝내기

curl -s https://get.docker.io/ubuntu/ | sudo sh

위 스크립트를 받아서 실행하는 방법이다.

Docker version 1.0.1, build 990021a

최신버전으로 설치된다.


간단한 테스트.

# docker run ubuntu:14.04 /bin/echo 'Hello World'

다음과 같은 명령을 내리면.. 로컬이미지를 찾고,
없으면 저장소에서 찾아서 설치한 후 echo 'Hello World' 를 실행하게 된다.

Unable to find image 'ubuntu:14.04' locally
Pulling repository ubuntu
e54ca5efa2e9: Download complete
511136ea3c5a: Download complete
d7ac5e4f1812: Download complete
2f4b4d6a4a06: Download complete
83ff768040a0: Download complete
6c37f792ddac: Download complete
Hello World


하위 버전은 다음을 참조.

http://docs.docker.io.s3-website-us-west-2.amazonaws.com/installation/ubuntulinux/



반응형

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

,


우분투 - samba 로 설정한 파일을 수정시 다음과 같은 에러가 발생하는 경우.

파일 작업 실패.
"다른 프로세스가 파일의 한 부분을 잠갔으므로, 프로세스가 해당 파일을 액세스할 수 없습니다."

우분투 8.04 를 사용하다가 10.04 로 업그레이드 했을때 위와 같은 에러가 발생하였다.

samba 옵션에 다음을 추가한다.

/etc/samba/smb.conf 의 global 섹션에 추가하면 된다.

strict locking = no



반응형

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

,

우분투 10.04 에서 samba mount 사용하기(fstab)


저의 개발환경 구성을 이렇게 하고 있다.(사정이 있어 기존 구성된 환경을 유지하려다 보니 복잡해 보인다)

                                                     [개발서버(소스)]  => 개발VM(nfs)    => web-dev
외부작업환경1)               윈도우 네트워크 드라이브 -> vm (smb)
외부작업환경2) (remote) -> sftp -> smb_mount -> vm (smb)

그에 맞게 작업환경을 꾸미다보니 sftp 로 직접 붙이려니 애매한 부분이 있었다.
그래서 중간에 smb mount 해서 사용하기로 했다.


1. samba 관련 설정. /etc/samba/smb.conf (설치 부분은 생략)

[httpd]
   comment = working dev httpd
   path = /work/httpd
   browseable = yes
   hosts allow = 127.0.0.1
   force user = www-data
   force group = www-data
   public = yes
   guest ok = yes
   writable = yes
   printable = no
   create mask = 0765
   directory mask = 0755

2. mount 에 필요한 패키지 설치

# apt-get install smbfs

  최신 우분투 버전은 cifs-utils 로 설치하는 듯 함.

3. /etc/fstab 에 다음처럼 항목 추가

//linux/httpd  /smb_mount/httpd  smbfs uid=user,gid=adm,password=,iocharset=utf8,noauto  0  2

예전버전에 codepage=cp949 등이 쓰였는데, 언제부터인가 옵션이 빠졌음. iocharset 만 추가

uid , gid 는 서버의 접근계정 아이디/그룹
password 옵션은 암호가 있으면 넣고, 없으면 그냥 빈란

4. 마운트

# mount /smb_mount/httpd

크게 어려운 부분은 없다.(자신에 맞게 환경설정은 변경)

해당위치로 /smb_mount/httpd 로 sftp 접근해서 파일을 직접 수정해서 작업한다.




반응형

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

,

노트북의 터치패드의 좋은 부분중 하나가 가로 스크롤이 편하다는 것이다.

그래서 데스크탑용 터치패드를 사볼까 하는 생각도 한다.

우분투에서 마우스로 가로스크롤이 되도록 설정하고자 한다.

관련정보 : http://askubuntu.com/questions/404737/horizontal-scrolling-in-firefox-to-shiftmouse-scroll-instead-of-back-forward

위 링크에 나와있다.

크롬에서는 기본적으로 되나 보나, 위 링크를 적용하지 않고 해보니 잘 된다.(Shift - scroll )


요약해서 설명하자면,

1) 관련패키지 설치

$ sudo apt-get install xautomation xbindkeys

2) .xbindkeysrc.scm 파일 생성  후 xbindkeys 실행.

; bind shift + vertical scroll to horizontal scroll events
(xbindkey '(shift "b:4") "xte 'mouseclick 6'")
(xbindkey '(shift "b:5") "xte 'mouseclick 7'")

3) firefox - shift scroll 세팅 비활성화(기본 명령은 뒤로가기/앞으로가기 )

주소창에서 about:config 명령을 내려서 아래의 두가지 '사용자 설정' 값을 변경한다.

mousewheel.with_shift.action
mousewheel.with_shift.action.override_x

두값을 각각 0 , 1 으로 변경.


- 위 설정 문제점

파이어폭스에서 shift + scroll 이 되긴하는데, 너무 조금씩 스크롤이 되서 불편하다.

그냥 직접 FF 에서 설정하는 방법이 있다.

관련출처 : https://coderwall.com/p/xnez3g

about:config 에서 설정변경함.

general.autoScroll = true
mousewheel.with_shift.action = 1

위 두값을 변경하고, 스크롤되는 speed 는

mousewheel.with_shift.delta_multiplier_x = 1000

값을 변경한다. 1000 정도가 편한것 같다. (값은 본인 취향에 따라)


브라우저에서만 사용한다면, 위 xbindkeys 는 설정 안해도 된다.




반응형

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

,

간만에 우분투 체제로 다시 돌아왔다. 그동안 주로 윈도우8 을 써왔다.

윈도우8 / 우분투 둘다 괜찮다. 난 어느 한쪽만 지지하자는 주의는 아니다.
어느 한쪽 OS 에 종속되지 않고 쓰자라는 컨셉.

이번에 우분투14.04 가 나오고, 노트북을 새로 장만해서 다시 메인으로 써볼까 해서 당분간 테스트 중이었다.

먼저 13.10 을 설치해서 쓰고 있었다. 그 당시 한글 버그가 있어서 좀 안정화 되면 넘어갈려고 했었다.
그런데, 13.10 의 compiz 세팅이 꼬였는지 설정이 이상하고, 느린감이 있었다.

그냥 화김에 14.04로 올렸는데, compiz 문제가 해결되어 한글버그를 감수하고 쓰게 되었다.
속도도 더 빨라져서 만족하고 있다. 그 사이 한글 버그도 해결이 되었다.

듀얼로 써서 스크린샷이 아래처럼 나온다.

작업용 virtualbox 머신 을 세팅했고, 간단하게 conky 세팅해서 꾸며봤다.

가급적 심플하게 사용하려고 한다.

주요 파일은 dropbox 로 동기화해서 윈도우8 / 우분투 모두 사용가능하게 해놨다.
프로그램 개발을 위해서 sublime text 를 세팅해서 사용한다. 이것도 윈도우8 도 같은 환경.
dropbox + git + ST3 환경으로 세팅하니, OS 에 종속되지 않고 쓸 수 있다.

그러나 우분투에서 해결이 잘 안되는 부분은 가상머신으로 돌린다.(예전 보다는 많이 나아졌다. 진짜 가끔 쓴다)
간혹 OS X 용으로 나오는 프로그램들이 몇가지 있어서, 맥북프로를 마련해볼까 생각중이다.
당장은 아닐 듯 한데, OS X 요세미티가 얼마전에 소개가 되어서, 써보고 싶은 마음이 생긴다.
적응 기간이 필요할테니 맥미니 를 먼저 마련할지도 모르겠다.


반응형

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

,

# 우분투(리눅스) 에서 하드용량이 없다고 나오는 문제(No space left on device)

다음과 같은 문제가 발생하는 경우가 있다.

# touch /tmp/check
touch: cannot touch `/tmp/check': No space left on device

파일을 생성하는 명령을 내렸을때 용량이 없다는 메시지가 나온다.

하드용량을 확인해보면.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       19G  3.0G   15G  17% /
udev            236M  4.0K  236M   1% /dev
tmpfs            98M  180K   98M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            245M     0  245M   0% /run/shm
none            100M     0  100M   0% /run/user

아직 용량은 충분한데 이상하다.

# df -i
Filesystem      Inodes   IUsed IFree IUse% Mounted on
/dev/xvda1     1253376 1253376     0  100% /
udev             60266     385 59881    1% /dev
tmpfs            62675     261 62414    1% /run
none             62675       2 62673    1% /run/lock
none             62675       1 62674    1% /run/shm

none             62675       1 62674    1% /run/user

바로 inode 의 갯수가 꽉 찬것이다.

분명히 어딘가에서 너무 많은 파일이 등록이 되어 있는 것이다.


범인을 찾아라.

# for i in /home/*; do echo $i; find $i |wc -l; done

=> 해당 위치를 찾아라.

# for dir in *; do [ -d "$dir" ] && echo "$dir" && find "$dir" | wc -l; done

둘다 명령은 동일.(디렉토리를 지정하거나 현재디렉토리를 기준)
의심되는 위치를 위 명령으로 해본다.

결과

session
1194823

=> 찾았다 범인.

너무 많은 세션파일이 생성되어 하드 용량이 남았어도 inode 갯수가 꽉 차서 더이상 파일을 생성할 수 없게 된 것이다.

저 파일들을 정리해주면 된다.

파일이 너무 많으니 rm -rf session 등으로 해주는게 좋다.(각자 알아서)

정상.

# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/xvda1     1253376 58729 1194647    5% /
udev             60266   385   59881    1% /dev
tmpfs            62675   261   62414    1% /run
none             62675     2   62673    1% /run/lock
none             62675     1   62674    1% /run/shm
none             62675     1   62674    1% /run/user

 => 이제 정상으로 나온다.



반응형

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

,

mariaDB 가 여러곳에서 칭찬이 자자하다는 소문이 많다.

한마디로 "써본사람은 압니다. 좋은데 말로 설명할 방법이 없네?" 인것 같다.


그러나 이미 난 MySQL 에 익숙해져 있다. 바꾸면 또 배워야 하는거 아니야? 귀찮아!!
등등 나로 하여금 스스로 옮겨가지 못하게 막고 있었다.

그러다가 써야하는 상황이 생겼다. 그래서 소문이 사실인지 확인해봐야 겠다.



1. 설치 방법

https://downloads.mariadb.org/mariadb/repositories/

에서 각 배포판별로 패키지 설치방법이 잘 나와있다. 이거 한방이면 끝이다.

기초작업

sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/repo/5.5/ubuntu raring main'

설치

sudo apt-get update sudo apt-get install mariadb-server


여긴 수동 - /etc/apt/sources.list 파일에 내용을 추가하거나, sources.list.d 디렉토리에 파일로 추가하거나 입맛대로.

# MariaDB 5.5 repository list - created 2013-11-07 11:51 UTC # http://mariadb.org/mariadb/repositories/ deb http://ftp.kaist.ac.kr/mariadb/repo/5.5/ubuntu raring main deb-src http://ftp.kaist.ac.kr/mariadb/repo/5.5/ubuntu raring main


2. MariaDB 패키지 설치하는데 기존 MySQL 이 설치되어 있으면.

설치 명령을 내리면 다음처럼 나오게 된다.

# apt-get install mariadb-server

패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음 패키지를 더 설치할 것입니다:
  libmariadbclient18 libmysqlclient18 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mariadb-server-5.5  mariadb-server-core-5.5 mysql-common

제안하는 패키지:
  tinyca mailx mariadb-test

다음 패키지를 지울 것입니다:
  mysql-client-5.5 mysql-client-core-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5

다음 새 패키지를 설치할 것입니다:
  libmariadbclient18 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mariadb-server mariadb-server-5.5  mariadb-server-core-5.5

다음 패키지를 업그레이드할 것입니다:
  libmysqlclient18 mysql-common

2개 업그레이드, 7개 새로 설치, 5개 제거 및 3개 업그레이드 안 함.
31.7 M바이트 아카이브를 받아야 합니다.
이 작업 후 17.6 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]?

위와 같이 패키지를 지울것이라는 무서운 문구.

어떡하지. 무서우면 n 으로 중지. 그러나 우린 용감하잖아요. 과감하게 엔터를 누릅니다.
내 데이터. 또 설정바꿔줘야 하나. ㅠㅠ

그러면 설치하는 화면이 나온다 중간에 기존 mysql 도 지우는 것도 보이고
좀 지나면 mariadb 계정 암호 넣는 화면이 나온다.(mysql 설치할때 나오던 그대로)

그런데, 중간에 좀 이상한 것이 있다.

 * Stopping MariaDB database server mysqld                                                                                   [ OK ]
131108  0:57:51 [Warning] Using unique option prefix myisam_recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
131108  0:57:51 [Note] Plugin 'InnoDB' is disabled.
131108  0:57:51 [Note] Plugin 'FEEDBACK' is disabled.
 * Starting MariaDB database server mysqld                                                                                   [ OK ]
 * Checking for corrupt, not cleanly closed and upgrade needing tables.
어! 뭐지 정상적인건가?


3. 내 데이터. 솨라있네~~
 위까지 하고 다른 설정을 건드리지 않고, 바로 phpMyAdmin 을 살펴봤다.

어. 서버 버전 부분만 mariaDB 로 바뀌고 다른 부분은 똑같다.

신기하다. 너무 똑 같아서.
웹서비스들도 잘 동작한다.(처음에 살짝 느린감이 있었는데, 아마 캐시때문?)

mysql console 도 명령은 동일한것 같다. (아래처럼 바뀌어 있다)

# mysql --version
mysql  Ver 15.1 Distrib 5.5.33a-MariaDB, for debian-linux-gnu (x86_64) using readline 5.1

# mysql -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 115
Server version: 5.5.33a-MariaDB-1~raring-log mariadb.org binary distribution

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>



일단 성능등은 돌려보면서 느껴봐야 겠다.
최소한 설치까지는 정말 쉽게 끝났다.




반응형

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

,
구글톡이 윈도우,맥,리눅스 를 모두 지원한다.
우분투에서 구글톡 플러그인을 설치할 수 있다.

1. gmail -> settings -> Chat 에서 두번째 항목
  Voice and video chat 항목을 보면 구글톡 플러그인을 다운받는다.
  직접링크 : http://www.google.com/chat/video?hl=ko 에서 다운받아 설치한다.
  리눅스(우분투)에서는 deb 파일을 다운받아 설치하면 된다.
  dpkg -i google-talkplugin_current_i386.deb
  설치하면 /opt/google/talkplugin 에 설치된다.

2. firefox 를 실행해서 도구 -> 부가기능 -> 플러그인 항목을 보면
  정상적으로 구글 플러그인 에 나와야 한다.

우분투 버전에 따라 다르겠지만, 쓰고 있는 ubuntu 10.04 에서는 정상적으로 나오지 않았다.

이유는 apparmor 때문이다.
/var/log/kern.log 나 message.log 등을 확인해보면
kernel: [77536.598461] type=1503 audit(1295939125.913:24):  operation="open" pid=4565 parent=4561 profile="/usr/lib/firefox-3.6.13/firefox-*bin" requested_mask="::r" denied_mask="::r" fsuid=1000 ouid=0 name="/opt/google/talkplugin/libnpgoogletalk.so"
이런 메세지를 볼 수 있다. 우분투의 보안강화를 위해 적용된 기술인데, 불편하지만 가급적 따라 주는것이 좋다고 본다.

3. /etc/apparmor.d/usr.bin.firefox  파일에 다음을 추가한다.
  # for google talk
  /opt/google/talkplugin/* mr,
  /opt/google/talkplugin/GoogleTalkPlugin Uxr,
  /opt/google/talkplugin/lib/* mr,
  /dev/ati/card0 rw,
  /proc/ati/major r,
   위 3줄은 플러그인을 사용할 수 있는 권한을 추가한 것이다. 그 밑의 ati 나오는 부분은 사운드카드를 사용하기 위한 것인데, 사용자의 보드에 따라 다른 값이 나올 수 있을 듯 하니 kern.log 에 나오는 메세지를 확인해서 추가해준다.

gmail -> settings -> chat 항목에서 비디오,사운드 등을 확인해본다.
실제 영상채팅을 테스트해보진 않았지만, 테스트시 화면과 사운드가 정상적으로 나오는 것 까지 확인했다.


반응형

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

,