*급한 분을 위해 제일 아랫부분에 명령어만 정리해두었습니다.


fdisk -l

위 명령어를 이용하여 추가하고자 하는 하드디스크를 확인

일반적으로 slave를 단 경우에는

Disk /dev/sdb doesn't contain a valid partition table

라는 결과를 확인할 수 있음


fdisk /dev/sdb

위 명령어를 이용하여 sdb의 파티션을 할당

그 후 나오는 commandline에서는 n->p->1->Enter->Enter ->w (New partition Primary 1개 Default Default write 로 외우니 외워짐;;)

그 후 dev/sdb1 파티션이 생김


mkfs.ext4 /dev/sdb1

위 명령어로 방금 생성한 파티션을 ext4 filesystem으로 format을 한다.


--------------

정상적으로 하드를 사용가능한지 확인

mount /dev/sdb1 /dir #임의로 특정 빈 디렉토리에 마운트를 시킴
df -h #용량을 확인함으로써 마운트가 잘 되었는지 확인이 가능
umount /dev/sdb1 #명령어로 언마운트 시켜줌

--------------

ls -l /dev/disk/by-uuid
위 명령어를 이용하여 sdb의 UUID값을 확인한다.
이 값은 미리 복사!

echo "UUID=(방금 복사한 UUID) mount위치 filesystem(ext4) errors=remount-ro 0 1 " >> /etc/fstab

위 명령어를 실행하고 나서 reboot을 해준다.

에러가 나지 않고 잘 켜지면 마운트가 잘 된것이다.


Mariadb(Mysql) 저장소 변경


service mysql stop #먼저 서비스를 종료
#mariadb 및 mysql등이 기본적으로 저장이 되는 위치는 /var/lib/mysql (우분투 14.04기준) 이다.
mv /var/lib/mysql/* /변경할 위치 
rm -rf /var/lib/mysql ln -s /변경위치 /var/lib/mysql
chown mysql /변경위치

chgrp mysql /변경위치

service mysql start

정상적으로 서비스가 잘 실행이 되면 성공한 것이다.

 정리:

fdisk -l
fdisk /dev/sdb
n
p
1
Enter
Enter
w
mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /변경위치
df -h
umount /dev/sdb1
ls -l /dev/disk/by-uuid
echo "UUID=(방금 복사한 UUID)     /변경위치     filesystem(ext4)     errors=remount-ro     0     1" >> /etc/fstab
reboot
service mysql stop
mv /var/lib/mysql/* /변경위치
rm -rf /var/lib/mysql
ln -s /변경위치 /var/lib/mysql
chown mysql /변경위치
chgrp mysql /변경위치
service mysql start



python에서 사용하는 mongodb driver이다.

설치
pip 또는 easy_install을 이용해서 설치한다.
pip install pymongo
easy_install pymongo


접속
from pymongo import MongoClient #모듈 추가

client = MongoClient('mongodb://user:password@localhost:27017/') #auth설정을 False로 한경우 user,passwd는 안써도 된다.

db = client["test"] #use test (실행)
collection = db["collection"] #colletion 선택


Query

db.collection_names(include_system_collections=False) #collection명 얻어오기

collection.insert_one(json_var) #한개의 Docment만 입력
collection.insert_many(json_var) #Bulk insert (여러개의 Document 입력)
#json_var에 _id가 있는 경우는 해당 값을 id로 사용하지만 없는경우에는 .inserted_id 를 마지막에 붙여서 자동으로 만들 수 있도록 한다.

collection.find_one( {"name" : "lukomen"} ) #조건에 만족하는 한개의 결과를 리턴
collection.find( {"name" : "lukomen"} ) #조건에 만족하는 모든 결과 리턴

collection.find().count() #전체 문서의 개수 리턴
collection.find( {"name" : "lukomen"} ).count() #조건에 만족하는 결과 개수 리턴

그외 다양한 방식으로 날리는 find쿼리는 여기를 참조


map/reduce
map/reduce작업을 위해서는 모듈을 하나 더 import시키고 map과 reduce function을 작성해서 map_reduce(map_func, reduce_func, colle에 인자로 넣어준다.
from bsn.code impport Code

mapper = Code("""
  function () {
    this.tags.forEach(function(z) {
    emit(z, 1);
    });
  }
""")

reducer = Code("""
  function (key, values) {
    var total = 0;
    for (var i = 0; i < values.length; i++) {
      total += values[i];
    }
    return total;
  }
""")

result = db.things.map_reduce(mapper, reducer, "myresults")

for doc in result.find():
  print doc


group

SQL의 group by 문과 비슷한 역활을 map/reduce를 통해 진행 할 수 있다.

from bson.code import Code
reducer = Code("""
               function(obj, prev){
                 prev.count++;
               }
               """)
results = db.things.group(key={"x":1}, condition={}, initial={"count": 0}, reduce=reducer)
for doc in results:
  print doc

결과는 아래와 같이 나온다고 가정할 수 있다. x가
{u'count': 1.0, u'x': 1.0} #1일때 1개
{u'count': 2.0, u'x': 2.0} #2일때 2개
{u'count': 1.0, u'x': 3.0} #3일때 1개 뭐 이런식


'python' 카테고리의 다른 글

[Django] Createsuperuser 시 에러 발생  (0) 2018.11.09


저 [ Irvine.zip ] 을 받아 압축을 풀어준후 압축을 풀어 줍니다. 이 글에서는 압축을 푼 경로가 C:\Program Files\Microsoft Visual Studio 10.0\Irvine 이기에 이렇게 한 것 입니다. 다른 경로에 압축을 풀어주셨을 경우에는 그 경로로 경로를 바꿔서 해시면 쉽게 하실수 있습니다.


[유틸리티 -> 텍스트파일 을 선택해줍니다.]

설정을 다 마친후 아래와 같이 코딩을 하면 정상적으로 돌아가는 것을 확인할 수 있습니다.


어쨋든 어셈블리언어는 어렵습니다 ㅠ


'보류' 카테고리의 다른 글

SyntaxHighlighter 티스토리에 적용 및 사용 하기  (0) 2015.04.04

+ Recent posts