2017년 10월 7일 토요일

MongoDB 설치 및 활용

설치 참조페이지 : https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

1. Public Key Import
$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

2. 업데이트 리스트 추가
$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

3. 페키지 업데이트
$ sudo apt-get update

4. MongoDB 패키지 설치
$ sudo apt-get install -y mongodb-org

5. 서비스 시작 정지 재시작
$ sudo service mongod start
$ cat /var/log/mongodb/mongod.log  # 포트 27017 번 확인
$ sudo service mongod stop
$ sudo service mongod restart


2017년 9월 18일 월요일

Keepass 설치 및 참고

a package for keepass2 was recently uploaded into the debian archives.
http://packages.debian.org/sid/keepass2
This makes it easier for you to install keepass and all its dependencies under mono and integrates it with the standard freedesktop.
It is currently in unstable and will migrate to testing in a few days.
It is not included in ubuntu yet. It will be in the main archives in the over next version 11.01 (oneric)
To accommodate 11.04 and 10.10 users I have set up a ppa:
https://launchpad.net/~jtaylor/+archive/keepass
to use it type into a terminal:
sudo apt-add-repository ppa:jtaylor/keepass
sudo apt-get update
sudo apt-get install keepass2
KeePass language files (*.lngx) should be placed in $XDG_DATA_HOME/KeePass
If $XDG_DATA_HOME is not set it defaults to $HOME/.local/share
The XSL transformation style sheets for exporting databases and the documentation are
installed in /usr/share/keepass2/
known issues:
Multiple instances of KeePass are disabled as the communication between
them is broken on unix systems (will be fixed next release).
The KeePass plugins are untested and may not work correctly.
They currently have to be placed in into /usr/lib/keepass2/
but this is not recommended as files in that location may be overwritten by package upgrades in future.

2017년 9월 10일 일요일

mysql 새로운 DB 생성 및 사용자 계정 추가/권한 부여

1. root로 접근하여 db 생성
mysql> create database testDB;
생성db확인
mysql> show create database testDB;

2. 사용자 추가/사용권한 부여
mysql> grant all privileges on testDB.* to test1@localhost identified by '12345';
** 참고로 현재 사용자 확인
mysql>use mysql;
mysql> select host, user from user;
create user test2@localhost identified by '12345';
계정삭제
drop user test2@localhost;

2017년 9월 8일 금요일

scrapy로 크롤링한 자료를 mysql에 저장하기

1. project 설치
$ scrapy startproject amazon

2. 파이썬 설정파일 설정

$cd amazon/amazon
 $ nano items.py 파일을 아래와 같이 설정
---------------------
import scrapy
class AmazonItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
title = scrapy.Field()
link = scrapy.Field()
desc = scrapy.Field(serializer=str)
pass
-----------------------
3. 아래파일 추가 설정
$ nano spiders/__init__.py

import scrapy
from amazoncrawler.items import AmazoncrawlerItem
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
class AmazonAllDepartmentSpider(scrapy.Spider):
name = “amazon”
allowed_domains = [“amazon.com”]
start_urls = [
http://www.amazon.com/gp/site-directory/ref=nav_sad/187-3757581-3331414”
]
def parse(self, response):
for sel in response.xpath(‘//ul/li’):
item = AmazoncrawlerItem()
item[‘title’] = sel.xpath(‘a/text()’).extract()
item[‘link’] = sel.xpath(‘a/@href’).extract()
item[‘desc’] = sel.xpath(‘text()’).extract()
yield item
4. 데이터 크롤링 및 저장
$scrapy crawl amazon -o items.csv -t csv

5. mysql database 만들기
root로 로그인해서
mysql> craete database qwerty_project;
mysql> grant all on qwerty_project.* to dbuser@'localhost';
mysql> use qwerty_project;
mysql> create table ProductDepartment (ProductDepartmentLilnk TEXT);

6. pipelines.py 파일 설정
$nano amazon/amazon/pipelines.py

class AmazoncrawlerPipeline(object):
host = ‘qwerty.com
user = ‘qwerty’
password = ‘qwerty123’
db = ‘amazon_project’
def __init__(self):
self.connection = MySQLdb.connect(self.hostself.user, self.password, self.db)
self.cursor = self.connection.cursor()
def process_item(self, item, spider):
try:
self.cursor.execute(“””INSERT INTO amazon_project.ProductDepartment (ProductDepartmentLilnk)
VALUES (%s)”””,
(
item[‘link’]))
self.connection.commit()
except MySQLdb.Error, e:
print “Error %d: %s” % (e.args[0], e.args[1])
return item
7. 파일 settings.py 설정 추가
$nano amazon/amazon/ settings.py
ITEM_PIPELINES = [‘amazoncrawler.pipelines.AmazoncrawlerPipeline’]
8. project 실행
$scrapy crawl amazon

2017년 9월 6일 수요일

scrapy 설정 및 설치, Spider Tutorial

Scrpay는 웹 스크롤링 제품으로 폭넓게 활용되고 있음

이에 대한 설치방법을 정리함
1. 준비작업
$sudo mkdir /usr/local/scrapy
$cd /usr/local
$sudo chown -R 사용자:사용자 scrapy
$cd scrapy


2. 파이썬 관련 의존성 페키지 설치
$sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
##우분투의 경우 sudo apt-get install python-scrapy 식으로는 설치하지 말것
패키지가 너무 오래됨
$sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev$sudo apt-get install python3 python3-dev
$sudo pip install Scrapy
$sudo pip install virtualenv


3. spider tutorial
$scrapy startproject tutorial이렇게 하면 tutorial 폴더 밑에 많은 파일들이 아래와 같이 생성


4. 아래 내용을 quotes_spider.py로 저장
$nano /tutorial/spiders/quotes_spider.py
import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes"

    def start_requests(self):
        urls = [
            'http://quotes.toscrape.com/page/1/',
            'http://quotes.toscrape.com/page/2/',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'quotes-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

5. crawl 실행
$scrapy crawl quotes
실행하고 나면 해당폴더에 quotes-1.html and quotes-2.html 파일이 생성됨
$scrapy crawl quotes -o quotes.json이렇게 하면 quotes.json 파일이 생김

2017년 9월 5일 화요일

Apache sqoop-1.99.7 설정 및 설치

설치 버전/다운로드 : sqoop-1.99.7-bin-hadoop200.tar.gz

1. 다운로드
$wget  http://mirror.apache-kr.org/sqoop/1.99.7/sqoop-1.99.7-bin-hadoop200.tar.gz

2. 압축풀고 /usr/local/sqoop 로 옮기기$ cd ~/다운로드
$ tar -xzvf sqoop-1.99.7-bin-hadoop200.tar.gz$ sudo mv sqoop-1.99.7-bin-hadoop200 /usr/local/sqoop


3.  PATH 설정
$nano ~/.bashrc
아래 추가
export SQOOP_HOME=/usr/local/sqoopexport PATH=$SQOOP_HOME/bin$ source ~/.bashrc


4. Sqoop2 서버 환경 설정
서버 환경 파일은 server/conf 에 위치합니다. 해당 위치로 이동합니다.
$ cd /usr/local/sqoop/server/confcatalina.propertise에선 하둡 라이브러리에 대한 경로를 설정할 수 있습니다. default 경로는 /usr/local/hadoop. /usr/local/hadoop/lib/ 입니다.
다르다면, common.loader 부분을 아래와 같이 설정합니다.(본인의 경로에 맞게)
$ nano catalina.properties
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,${catalina.home}/../lib/*.jar,/usr/local/hadoop/*.jar,/usr/local/hadoop/lib/*.jar,/usr/local/hadoop/share/hadoop/hdfs/*.jar,/usr/local/hadoop/share/hadoop/hdfs/lib/*.jar,/usr/local/hadoop/share/hadoop/mapreduce/*.jar,/usr/local/hadoop/share/hadoop/mapreduce/lib/*.jar,/usr/local/hadoop/share/hadoop/yarn/*.jar,/usr/local/hadoop/share/hadoop/yarn/lib/*.jar,/usr/local/hive-2.1.0/lib/*.jar,/usr/local/hadoop/share/hadoop/common/*.jar,/usr/local/hadoop/share/hadoop/common/lib/*.jar


하둡 환경 파일이 담긴 경로를 확인 / 변경
$nano sqoop.properties# Hadoop configuration directoryorg.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/local/hadoop/etc/hadoop/


하둡 환경파일 추가
$HADOOP_HOME/etc/hadoop/core-site.xml 에 아래 두 프로퍼티를 추가 
<property>                
<name>hadoop.proxyuser.sqoop2.hosts</name>
<value>*</value>       
 </property>        
<property>                
<name>hadoop.proxyuser.sqoop2.groups</name>                
<value>*</value>       
 </property>

5. Sqoop2 서버 검증$ sqoop2-tool verifyVerification was successful.라고 뜨면 설정이 제대로 된 겁니다. 이와 함께 예외도 같이 뜨는 걸 볼 수 있는데, 메인 쓰레드가 아닌 서브 쓰레드에서 발생한 예외로 지금 오류 수정 중이란 것 같습니다.


6. Sqoop2 서버 시작
$ sqoop2-server start
$ sqoop2-server stop
sqoop2 comand line 진입
$ sqoop2-shell

2017년 9월 3일 일요일

rsa 암호화를 이용한 인증키 생성 및 설정 방법

ssh localhost 접속

$ssh-keygen -t rsa -P ""
$cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$sudo chmod og-wx /home/user계정/.ssh/authorized_keys
$ssh localhost

원격 서버 ssh key 설정
$scp ~/.ssh/id_rsa.pub 원격서버아이디@192.168.x.xx:id_rsa.pub

원격서버 접속하여 파일 권한 수정
$ssh 원격서버아이디@192.168.x.xx
$cat id_rsa.pub>>~/.ssh/authorized_keys
$chmod 644 ~/.ssh/authorized_keys
$exit

다시 접속하면 패스워드 없이 접속 가능
$ssh 원격서버아이디@192.168.x.xx





2017년 6월 6일 화요일

스마트폰의 사진백업 서버 DropBox에서 Owncloud 서버로 이동

사진 백업 서버로 오랬동안 Dropbox를 사용했으나 최근에 용량을 줄이면서
여기저기 다른 곳을 시도해보았으나 적당한 곳은 내가 직접운용하는 서버를 이용하는 방법이 최고라고 생각합니다.

구글 포토 앱을 사용해서 구글서버를 활용하는 방법이 있지만 보안상 내 모든 사진이 웹상으로 올라간다는 것도 개인 정보보호 차원에서 고민되어서 결국 내서버로 이동

owncloud 설치 및 운용방법은 앞에 작성한 블로그를 참조하시고요.
사진백업은 QuickPic 라는 안드로이드 앱을 스마트폰에 다운로드/설치하고 설정으로 들어가 내 서버의 주소와 ID, 패스만 설정해주면 간단히 해결됨

2017년 5월 4일 목요일

Install OS X El Capitan 10.11 on Ubuntu on VirtualBox 우분투 버추얼박스에 MAC OS X 설치방법

1. OS X El Capitan 10.11  다운로드

2. sudo apt-get install unrar
    오른쪽 마우스 클릭, extract

3. VirtualBox설치

4. 가상머신 설치
   mac - 하드디스크(기존하드디스크 파일 사용, 압축풀은 vmdk 파일 연결)
  환경설정에서 플로피디스크 제거, 프로세서 CPU 2개, 비디오 메모리 최대
 
5. VirtualBox에 코드 추가(virsion 5.0. 대상, 기타  https://goo.gl/tHW6lb 참조)

Code for Virtualbox 5.0.x: OS X NAME를 위에서 설정한 이름으로 변경시켜 입력
VBoxManage modifyvm "OS X NAME" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "OS X NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "OS X NAME" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "OS X NAME" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
VBoxManage setextradata "OS X NAME" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "OS X NAME" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

6.실행시켜서 순서대로 초기설정하면 됨

2017년 2월 4일 토요일

우분투 R에서 markdown 사용시 Pdf 출력이 안될때 조치 ( pdflatex 설치 )

참고사이트 : 우분투 활용 블로그

RStudio 프로그램 사용하면서 rmarkdown을 이용하여 문서를 publish 할 때 HTML, PDF 등 문서포멧으로 출력이 가능한데 우분투에서 운용할 때 특별한 페키지가 설치안되면 pdf 전환 출력이 불가능하다. 이때 아래와 같이 추가적인 latex 패키지를 설치해주면 된다.
* TexLive base 설치
$ sudo apt-get install texlive-latex-base
* 필요한 폰트 설치
$ sudo apt-get install texlive-fonts-recommended
$ sudo apt-get install texlive-fonts-extra
* 추가 패키지 설치 및 명령어 연결
$ sudo apt-get install texlive-latex-extra
$ pdflatex latex_source_name.tex
* 인쇄 프로그램 설치
$ sudo apt-get install texlive-publishers

2017년 1월 21일 토요일

우분투 시스템 프로그램 오류 조치

새로 부팅할 때마다 보고해줄 것인지 아닌지 귀찮게 한다. 이를 조치하는 방법은

1. 오류 내용은 /var/crash 폴더에서 확인, 택스트 편집기로 내용 확인
ls -l /var/crash


2. 일시적으로 생겼던 오류라면, 앞으로 팝업이 않되도록 하고싶다면 폴더를 지우면 됨
sudo rm /var/crash/*


2017년 1월 20일 금요일

우분투 서버 16.10에 owncloud 업그래이드 시키기

서버 업그레이드 후에 owncloud 안돼어서 고생했네요.

1. 서버 인증키 및 다운로드 주소 변경 / 업데이트 및 새버전 설치

wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_16.10/Release.key -O Release.key
sudo apt-key add – < Release.key
sudo nano /etc/apt/sources.list.d/owncloud.list * 아래 내용 입력/저장
deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.10/ /
sudo apt-get update
sudo apt-get install owncloud

2. 점검모드 조치, 서비스 재시작

sudo chown www-data:www-data /var/www/owncloud -R

sudo nano /var/www/owncloud/config/config.php 로 들어가서
밑에서 네번째줄 maintenance => true 라고 되어있는 항목을 false 값으로 변경 저장다시 사이트에 접속하면 스스로 업그레이드하여 정리됨


sudo service apache2 restart