Do You Eat Rice?

2016/12/25

Debian Service Management

Debian 8 에서 service 관리를 위해서 systemctl 만으로 충분
chkconfig 와 같이 리스트 형태로 보고 싶을면 apt install chkconfig 설치
하지만 Debain 에서는 왠지 다른걸 써보고 싶음 ㅋㅋㅋ
참고 - Chkconfig alternative for Ubuntu Server?

sudo apt-get install sysv-rc-conf
sudo sysv-rc-conf

Debian extra repository dotdeb

Debian 에서 Mediawiki+Nginx+PostgreSQL 구축을 위해서 위해서 괜추한 php 용 repository 찾던중 알게된 dotdeb 아래 package 를 지원 주의할 점이 있다면 Nginx 공식 repository 를 등록 해놓은 상태에서 nginx 설치 및 업그레이드시 error 발생 다른 repository 랑 일일이 확인 안해밨음 

  • Nginx,
  • PHP 7.0, 5.6, 5.5 and 5.4 (obsolete),
  • useful PHP extensions : apcu, imagick, mongo, Pinba, xcache, Xdebug, XHprof…
  • MySQL 5.6
  • Redis,
  • Zabbix
  • Jira, Confluence Supported Platforms

    Jira 7.2, Confluence 6.0 를 구축 하기 전에 미리 확인 하기

    Jira 설치중 PostgreSQL 9.6 에서 SQLException 발생함 아나 ....
    미리 확인을 했어야 했는딩....

    https://confluence.atlassian.com/adminjiraserver072/supported-platforms-828787550.html
    https://confluence.atlassian.com/doc/supported-platforms-207488198.html

    9.4 내려서 재설치 하니 이상 없음..

    http://jira.zzizily.com
    http://wiki.zzizily.com

    2016/12/22

    Debian 8 에서 PostgreSQL 설치 및 외부 접속 허용

    Debain 8 에서는 PostgreSQL 9.4 기본 9.6 설치 하기위해서는 별도의 repository 등록후 설치가 필요함

    vi /etc/apt/sources.list.d/pgdg.listdeb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main
    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
      sudo apt-key add -
    sudo apt update
    sudo apt install postgresql

    vi /etc/postgresql/9.6/main/pg_hba.conf
    Host all all 127.0.0.1/32 md5 에서 Host all all 0.0.0.0/0 md5 변경
    vi /etc/postgresql/9.6/main/postgresql.conf
    listen_addresses = 'localhost' 에서 listen_addresses = '*' 변경하고 주석 제거 

    sudo ufw allow postgresql
     

    tmux 복수의 shell 간의 bash_history 동기화 하기

    tmux 등의 가상의 복수 console 사용시 bash_history 가 동기화 안됨에 따른 불편함을 보완하기
    ~/.bashrc 파일에 마지막에 붙여넣기 해서 넣어줌 
    모든 사용자에게 적용을 하기 위해서는 /etc/bash.bashrc 마지막에 붙여넣기 해서 넣어줌

    function share_history {                                    # 다음 내용을 함수로 정의
        history -a                                                          # .bash_history에 이전 명령을 한 줄 추기
        history -c                                                          # 단말 로컬 히스토리를 일단 삭제
        history -r                                                          # .bash_history에서 기록을 다시로드
    }
    PROMPT_COMMAND = ' share_history '       # 위 함수를 프롬프트마다 자동 실행
    shopt -u histappend                                           # .bash_history 추가 모드는 필요 없기 때문에 OFF
    export HISTSIZE = 9999                                      # 기록 MAX 저장 수를 지정

    ENTER 를 한번 해준다음 부터 동기화됨

    2016/11/28

    Windows 10 에서 Ubuntu 16 LTS 를 써보자!

    Windows 10 사용하고 있으면서 1주년 업데이트(redstone) 를 한사용자는
    Windows 기능 중 켜기/끄기 를 선택 Linux 용 Windows 하위 시스템(베타) 설치가 가능


    설치 한다음 PC 를 재시작 후 bash 로 검색을 하면 기존에 사용하던 git bash 아닌 새로 설치한 bash 들어 갈수 있음


    기본 계정 생성을 하고 Linux 확인을 해보면
    $ cat /etc/issue
    Ubuntu 14.xx LTS
    와우!~ Windows 안에 Ubuntu 있다~

    Windows 10은 공식적으로 Ubuntu LTS 14.04 (Trusty) 까지만 지원함
    개인 개발용으로 local 에서만 쓸꺼고 실제는 운영은 Ubuntu LTS 16.04 (Xenial) 해야 한니깐 올려주자

    그리고 좀 더 빠른 속도로 업데이트를 위해서 repository 를 변경 해주자
    /etc/apt/sources.list repository http://archive.ubuntu.com/ubuntu 주소를 아래 3주소중 한곳으로 변경해준다

    • http://ftp.daum.net/ubuntu
    • http://ftp.neowiz.com/ubuntu
    • http://kr.archive.ubuntu.com/ubuntu


    # apt update
    # apt full-upgrade
    # sudo do-release-upgrade -f DistUpgradeViewNonInteractive -d
     release upgrade 할때 몇몇 창이 떠는딩 그냥 OK, NEXT 넘어간걸로 기억함...

    가상화 기술이 발달 하니깐 이런게 가능 하구나...




    2016/10/16

    알라딘 결제창 아름답다.


    알라딘에서 결제를 할려고 보니 결제시스템이 다양하고 아름답다.
    결제 방식 보편적인, 핀테크, 웹표준 페이팔, 아마존, 알리페이 류가 없느것은 법적문제 인가
    여튼 결제지원 국내최고가 아닐까 한다.

    2016/08/04

    google domain dynamic dns ip 변경 하기

    Python 을 이용한 Google Domain Dynamic DNS IP

    # -*- coding: utf-8-*-
    import requests
    print requests.get('https://{username}:{password}@domains.google.com/nic/update?hostname={hostname}&myip={ip}'.format(
            username='##########',
            password='##########',
            hostname='sub.domain.com',
            ip=requests.get('http://ifconfig.co/json').json()['ip']
        )
    ).text

    2016/02/14


    이글루스 > 태터툴스 > 티스토리 > 블로거 > 고스트 거의 끝판까지 왔구나.
    광고가 없고 순수하게 글 쓰는것에 대해서만 집중할수 있는 블로그 GHOST 시작 합니다.

    2016/02/10

    EXSI 5.5 Debian 8 에서

    vi /etc/apt/sources.list
    deb http://ftp.debian.org/debian/ jessie main contrib
    sudo apt-get update
    sudo apt-get install open-vm-tools

    2016/01/29

    Eclipse Mars 기념 자주 사용하는 Plugin 들..

    개발 1년차 때는 EditPlus 에 Ant 를 활용해서 개발을 했지만 2년차 부터는 Eclispe 를 사용 하였는되..  필수로 사용하는 Proerties Editor 빼고
    단순히 편의성을 높여주기 위한 Plugin 전부 Eclipse MarketPlace 에서 바로 설치가 가능


    • Eclipse Color Theme : Theme 는 sublime text 2 용 사용 함
    • Grap Console : console 출력 되는 글자색 또는 배경색을 설정 로그 레벨에 따라 출력 되는 내용들을 구분 하기
    • Easy Shell : CMD 로 바로 가기 및 파일 주소 바로 복사 하기
    • AnyEdit Tools : Carmel <-> Underscores 변환 하기 DB 컬럼 명을 복붙 해서 쓴다음 변환 하기
    • TM Terminal : Eclipse 에서 바로 CMD 작업을 해야 하는 경우 SSH 로도 활용이 가능
      • git bash 같이 활용 할시 더 좋음

    2016/01/23

    네네치킨은 안먹습니다.


    치킨중에는 네네를 좋아라 하는 편이였는되 한,두번도 아니고 이제 안먹어야지

    2016/01/16

    2016/01/14

    Rasbian Cron log

    Rasbian 으로 Cron 을 돌리는되 로그가 없냉 앙?

    $ vi /etc/rsyslog.conf
    /*주석 해제 하기*/
    # cron.* /var/log/cron.log
    /*서비스 재시작*/
    $ /etc/init.d/rsyslog restart

    2016/01/09

    Rasberry PI virtualenv install Scrapy

    Rasberry PI virtualenv 환경에서 Scrapy Install 하기

    보통 Ubuntu 14.4(Trusty Tahr) 환경에서는 lxml 설치 하고 "pip install scrapy" 만 해도 설치가 되던 것이 Raspbian 8.0 virtualenv 환경에서는 먼가 좀 다르다 아나.. 좀...

    cffi 설치가 안되서 발생하는 오류로 판단 구글링 해보니깐 누군 가는 나랑 비슷한 문제를 경험한 사람이 있었구나 출처 askubuntu

    apt-get 이용해서 설치
    sudo apt-get install libffi-dev 
    그래도 안되면 몇몇 설치 파일들이 없다는 이야기
    sudo apt-get install python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev 
    pip install scrapy
    "scrapy shell" 실행을 하니깐 MySQLdb 없다고 나오네 MySQLdb 설치
    sudo apt-get install libmysqlclient-dev 
    pip install MySQL-python 
     그럼 드디어 끝 "scrapy shell" 우휴!~ 혹시 ipython 까지만 설치 해주면 드뎌 끝!~

    apt-get list

    debian 계열 에서 설치한 package 확인 하기
    • dpkg --get-selections | grep -v deinstall
    • dpkg -l
    • apt --installed list
    출처 askubuntu

    2016/01/08

    pip uninstall all

    pip 로 설치한 모든 라이브러리를 한꺼번에 삭제 하는법 있지 않을까 하고 생각 해보았는됭
    pip freeze | xargs pip uninstall -y
     존재 한다 자체 기능 보다는 Linux 기본 CMD 를 활용한 기능

    참조 stackoverflow

    2016/01/05

    Linux process KILL and restart

    Linux 에서 process PID KILL 한다음 재시작 하기 shell
    개발 서버 모니터링 을 하기 위해서 glance 를 WEB 인터페이스로 사용 하는되
    이게 종종 작동을 멈춘당 왜 그러징 아나...
    구래서 우선은 임시방편으로 프로세스를 확인 해서 1시간 마다 재시작 해주는 걸로 변경
    그럴려먼 우선 해당 프로세스 찾아서 kill 해주고 재시작이 필요

    -9 도 좋지마 가능하면 -TERM 사용 하자 -9 는 강제 종료 -TERM 은 정상종료 요청
    출처(https://www.lesstif.com/pages/viewpage.action?pageId=12943674)
    ps -ef|grep "/usr/bin/python /usr/bin/glances -w"| grep -v grep|awk '{print $2}'|xargs kill -TERM 
    출처(http://stackoverflow.com/questions/13910087/shell-script-to-capture-process-id-and-kill-it-if-exist)

    0 */24 * * * /root/cron/monitoring.sh

    #!/bin/bash
    PID=`ps -eaf | grep "/usr/bin/python /usr/bin/glances -w" | grep -v grep | awk '{print $2}'`
    if [[ "" !=  "$PID" ]]; then
        echo "KILL glances $PID"
        kill -TERM $PID
    fi
    /usr/bin/python /usr/bin/glances -w &

    Python pip install ALL

    기존 개인 PC 에서 개발한던 python 모듈을 Raspberry PI 에 올려서 기존 LIB 들을 
    다시 설치 해야 함 그걸 전체로 밀어 넣기 하기

    pip freeze > requirements.txtpip install -r requirements.txt

    list of articles