2016년 11월 18일 금요일

Install Pygame for Windows


Download pygame
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame

Step 2: Install Pygame for Windows


pygame-1.9.2b1-cp35-cp35m-win32.whl
C:\Users\name\> cd Downloads
C:\Users\name\Downloads> pip install pygame-1.9.2b1-cp35-cp35m-win32.whl



원본 http://kidscancode.org/blog/2015/09/pygame_install/




2016년 11월 9일 수요일

MFRC522-python

Dump RFID Tag data using mxgxw/MFRC522-python

pi@raspberrypi ~ $ mkdir mxgxw
pi@raspberrypi ~ $ cd mxgxw
pi@raspberrypi ~/ mxgxw $ git clone https://github.com/mxgxw/MFRC522-python
pi@raspberrypi ~/ mxgxw $ cd MFRC522-python
pi@raspberrypi ~/ mxgxw/MFRC522-python $  sudo python Read.py    <-- then read rfrc522
pi@raspberrypi ~/ mxgxw/MFRC522-python $  sudo python Dump.py    <-- read & dump

Pins

You can use this image for reference.
NamePin #Pin name
SDA24GPIO8
SCK23GPIO11
MOSI19GPIO10
MISO21GPIO9
IRQNoneNone
GNDAnyAny Ground
RST22GPIO25
3.3V13V3

Enable SPI using Raspberry Pi Configuration

pi@raspberrypi ~ $ ls /dev/spidev0.*
ls:cannot access bla~
pi@raspberrypi ~ $ ls /etc/modprobe.d/raspi-blacklist.conf



























Install python-dev and SPI-Py

pi@raspberrypi ~ $ sudo apt-get install python-dev
pi@raspberrypi ~ $ git clone https://github.com/lthiery/SPI-Py
pi@raspberrypi ~ $ cd SPI-Py
pi@raspberrypi ~ /SPI-Py $ sudo python setup.py install


download MFRC522-python

pi@raspberrypi ~ $ git clone https://github.com/rasplay/MFRC522-python.git
pi@raspberrypi ~ $ cd MFRC522-python
pi@raspberrypi ~ /MFRC522-python $


Enable device tree

pi@raspberrypi ~ $ ls /boot/config.txt
pi@raspberrypi ~ $ sudo nano /boot/config.txt
device_tree=on <--append

Install latest version of bcm2835

The version of the package that this documentation refers to can be downloaded from http://www.airspayce.com/mikem/bcm2835/bcm2835-1.50.tar.gz
--http://www.airspayce.com/mikem/bcm2835/

pi@raspberrypi ~ $ mv ~/Downloads/bcm2835-1.50.tar.gz ~
pi@raspberrypi ~ $ tar zxvf bcm2835-1.50.tar.gz
pi@raspberrypi ~ $ cd bcm2835-1.50
pi@raspberrypi ~ bcm2835-1.50 $
pi@raspberrypi ~ bcm2835-1.50 $ ./configure
pi@raspberrypi ~ bcm2835-1.50 $ make
pi@raspberrypi ~ bcm2835-1.50 $ sudo make check
pi@raspberrypi ~ bcm2835-1.50 $ sudo make install
pi@raspberrypi ~ bcm2835-1.50 $ sudo reboot


read RFID tags using RFID Reader, RFID-RC522.

pi@raspberrypi ~ $ cd MFRC522-python
pi@raspberrypi ~ /MFRC522-python $ sudo python read.py

Dump RFID Tag data one-by-one

pi@raspberrypi ~ $ cd /mxgxw/MFRC522-python
pi@raspberrypi ~ /mxgxw/MFRC522-python $ sudo python pyDump1.py


출처 https://www.youtube.com/channel/UCUC46OBgd9H1gmQIpNp4_uw

2016년 11월 5일 토요일

python namedtuple - array

파이썬 배열을 이렇게도 사용합니다.....

namedtuple 을 사용하면 class보다 간편하게 사용가능합니다.
TUPLE 말뜻대로 배열에 이름표를 붙여서 사용하는데
c의 structure 같다는 느낌입니다.

 
from collections import namedtuple


class Fruit(object):    def __init__(self, name, colour, shape):        self.name = name        self.colour = colour        self.shape = shape
variables1 = {}
variables2 = {}
Fruitlist = [
            ['Apple', 'red', 'circle'],
            ['Banana', 'yellow', 'abnormal'],
            ['Pear', 'green', 'abnormal']
           ]
Fruits = namedtuple(
  "Fruit", 
  ["name", "colour", "shape"]
  )


Fruitlist.append(["","노랑","동그라미"])

for args in Fruitlist:    fruit1 = Fruit(*args)
    fruit2 = Fruits(*args)
    variables1[fruit1.name] = fruit1
    variables2[fruit2.name] = fruit2

print("Apple shape: " + variables1[""].shape)
print("Apple shape: " + variables2[""].shape)

http://stackoverflow.com/questions/11118486/python-list-as-variable-name




2016년 10월 27일 목요일

python 3.5 mysql connect on windows

  1. Download driver (PyMySQL-0.7.9.tar.gz (md5)) from here
  2. Extract and copy the folder pymysql into the python Lib folder e.g (C:\Users\MyUsername\AppData\Local\Programs\Python\Python35-32\Lib)
  3. Copy and run the following example.py
#!/usr/bin/env python

import pymysql

conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='', db='sandbox')

cur = conn.cursor()
cur.execute("SELECT * FROM users")

print(cur.description)
print()

for row in cur:
    print(row)

cur.close()
conn.close()
출처 http://stackoverflow.com/questions/35684400/how-to-use-python-3-5-1-with-a-mysql-dtabase


2016년 10월 13일 목요일

Raspberry Pi에서 Python3.5로 MySQL에 연결

Raspberry Pi에서 Python3.5로  MySQL에 연결하려고 하면

sudo python3 -m pip install pymysql







파이썬 프로그램에서는 다음과 같이
import pymysql

conn = pymysql.connect(host='localhost', port=3306, user='userID', passwd='password', db='db')

cur = conn.cursor()
cur.execute("SELECT * FROM tableName")

print(cur.description)
print()

for row in cur:    print(row)

cur.close()
conn.close()

Python 2.7에서는 다음과 같이...
sudo apt-get install python-mysqldb






2016년 10월 6일 목요일

ImportError: cannot import name 'ImageTk'

from PIL import Image, ImageTk


E: Unable to locate package python3-pil
E: Unable to locate package python3-imaging-tk
$sudo apt-get remove python3-pillow


>>> from PIL import Image, ImageTk
ImportError: cannot import name 'ImageTk'

$ sudo aptitude install python3-pil.imagetk
$ python3 -c "from PIL import ImageTk"

2016년 10월 4일 화요일

Raspberry pi 한글깨져 보일때

라즈베리파이에서 한글 이 깨져보이는 경우에
다음과 같이 폰트를 설치해주면 된다.

sudo apt-get install ttf-unfonts-core

우분투에서도 한글이 깨진 경우가 있어 원인을 몰라 Centos를 설치한적이 있었는데
폰트를 설치하면 되더라...

2016년 9월 7일 수요일

PHP한글이 깨져 보일때....


php 한글이 깨져 보일때는

1.<head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head>

2. mySQL 연동시
   mysql_query("SET NAMES utf8"); <-- 추가

2016년 7월 15일 금요일

mysql datetim colmn group by




datetim 형식으로된 column을 grouping을 다음과 같이 할 수 있습니다.


  -- select DATE(  DTColumn  ) d , -- 날짜별로 그룹핑한 경우
  select HOUR(  DTColumn  ) h ,  -- 시간대별로 그룹핑한 경우

  from tTable
  where 
          condition.........

  -- group by  DATE(  DTColumn  ) -- 날짜별로 그룹핑한 경우
   group by  HOUR(  DTColumn  )   -- 시간대별로 그룹핑한 경우




참고 http://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/

2016년 6월 16일 목요일

Python GUI module tkinter


라즈베리파이에서 GUI화면을 구현하려면, Tkinter를 import하라는데...
python 2에서는 Tkinter
python 3에서는 tkinter 랍니다.

별거아닌걸로 삽질함.

How to control docking order in c# WinForms

도킹된 컨트롤의 순서변경


간혹 잊어버린다.
Ctrl+w,u 하면 문서개요 창이 나오는데

여기서 화살표로 컨트롤 위치를 아래위로 변경하면 원하는 위치로 이동.

2016년 6월 15일 수요일

mp3 play with python at raspberry pi

import pygame
pygame.mixer.init()
pygame.mixer.music.load("myFile.mp3")
pygame.mixer.music.play()

while pygame.mixer.music.get_busy() == True:
    continue


RaspberryPi FTP Server

 
 
1. vsftpd FTP Server 설치
-->sudo apt-get install vsftpd
 
2. FTP서버 설정 수정
-->sudo nano /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

3. 사용자 리스트 파일(/etc/vsftpd.chroot_list)을 만들어 사용자를 등록
-->sudo nano /etc/vsftpd.chroot_list
에 user(pi,root)를 등록
 
4. FTP 서버(vsftpd)를 재시작
-->sudo service vsftpd restart
 
 
 


2016년 6월 3일 금요일

c# database table existence check

    public class cTableCheck
    {
        public bool TableExist(string conString, string tableName)
        {
            MySqlConnection Con = new MySqlConnection(conString);
            using (var cmd = new MySqlCommand())
            {
                cmd.Connection = Con;
                var sql = string.Format("select count(*) from information_schema.TABLES where table_name = '{0}'", tableName);
                cmd.CommandText = sql;
                Con.Open();
                var count = Convert.ToInt32(cmd.ExecuteScalar());
                return (count > 0);
            }
        }
    }

2016년 5월 27일 금요일

c# MySql LastInsertedId

MySqlCommand dbcmd = _conn.CreateCommand();
dbcmd.CommandText = sqlCommandString;
dbcmd.ExecuteNonQuery();
long imageId = dbcmd.LastInsertedId;


http://stackoverflow.com/questions/8517841/mysql-last-insert-id-connector-net

2016년 3월 25일 금요일

mysql INSERT INTO table ON DUPLICATE KEY UPDATE table

mySQL에서 있으면 수정하고 없으면 추가

create table machine(
  machine_id int not null primary key
, machine_name varchar(50)
, reg_id int );

INSERT INTO machine (reg_id, machine_id, machine_name) VALUES (1, 1, 'test_machine')
ON DUPLICATE KEY
UPDATE machine_name=VALUES(machine_name);



출처 http://stackoverflow.com/questions/5528854/usage-of-mysqls-if-exists

2016년 3월 21일 월요일

SQL Query SerialNumber

요즘은 주로 mariaDB나 mysql을 사용하는 편인데
ms-sql을 사용할 일이 생겼다.
조회결과에 일련번호를 붙이고 싶은데
다음과 같이 하였다.

DB별로, 버전별로 차이가 있으니 사용시 여기저기 찿아보고 테스트후 사용하시길...

MS-SQL2005이상 :
select ROW_NUMBER() OVER(ORDER BY Co_Code) AS RowNum,
          column1,  column2                                  
from mssql2005Table


MySQL:
SET @ROW_NUMBER = 0;
select @ROW_NUMBER := @ROW_NUMBER+1 rNo, column1,  column2
 from mySQLTable


Oracle:
 select rownum, column1,  column2
 from OracleTable 


c# WinForm Dock Order Change

c# winform으로 개발 중

1. panel위에 버턴을 배치하고

2. 버턴의 속성에서 Dock를 Right로 선택하면
    해당 버턴은 가장 오른쪽으로 가서 철석 달라 붙습니다.
    참 편리한 기능입니다.

3. 두번째 버턴도 Right속성을 주면 역시 오른쪽에 철석 달라 붙습니다.
     참 편리합니다.

4. 첫번째 버턴의 왼쪽에 철석 달라 붙은 두번째 버턴을 가장 오른쪽으로 보내고 싶습니다.
    잘 안됩니다.
   참 불편합니다.

이럴때는

메뉴/보기/다른창/문서개요 를 열어보면



































화면에 추가했던 리소스들이 나열되어 있다.

여기서 이동하고 싶은 리소스를 선택하여 드래그 하여 순서를 바꾸면
버턴의 위치가 바뀌어 있음을 볼 수 있다.


참조 http://stackoverflow.com/questions/154543/panel-dock-fill-ignoring-other-panel-dock-setting

2016년 2월 18일 목요일

VNC Viewer setting on Raspberry Pi 2

VNC Viewer setting on

 sudo apt-get update
 sudo apt-get upgrade















sudo apt-get install tightvncserver


















설치하는 중간에 disk를 얼마를 쓸텐데 계속할꺼냐고 묻는다.
당연히 y

설치가 끝나면
tightvncserver로 Raspberry pi로 접근할 password를 설정한다.

tightvncserver











이제  'X' desktop 화면 :1 의 password세팅를 세팅했습니다.

vncserver :1 -geometry 1024x768





부팅 시 자동 시작되도록 스크립트 작성. 이후 단계는 /etc/init.d 디렉토리 내에서 진행.
/etc/init.d 디렉토리로 이동 후
vncboot 라는 파일 작성(파일 이름은 마음대로)하고 아래 단계에 따라 진행


참고로 파일 내용 중
/usr/bin/vncserver :1 -geometry 1280x800 -depth 16
이 부분을 사용자 취향에 맞게 수정해주면 됨

더 높은 해상도 및 컬리를 원한다면
/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
이렇게 변경해줌

:1은 screen id를 지정해주는 부분임.
client 에서 접속 시 해당 screen id로 접속하게됨.


파일 내용은 아래와 같음.
사용자 id, home path 입력 부분에 client 접속 시 필요한 사용자의 정보를 입력. 
#!/bin/sh
#/etc/init.d/vncboot

### BEGIN INIT INFO
# Provides: vncboot
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start VNC Server at boot time
# Description: Start VNC Server at boot time.
### END INIT INFO

USER=<사용자 ID 입력, ex:root>
HOME=<사용자 home 입력, ex: /root>

export USER HOME

case "$1" in
start)
  echo "Starting VNC Server"
  #Insert your favoured settings for a VNC session
  su <사용자 id 입력, ex: root> -c '/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24'
  ;;

stop)
  echo "Stopping VNC Server"
  /usr/bin/vncserver -kill :1
  ;;

*)
  echo "Usage: /etc/init.d/vncboot {start|stop}"
  exit 1
  ;;
esac

exit 0



파일 permission 변경
$ sudo chmod 755 vncboot


처음 실행 후 암호설정
$ sudo ./vncboot start
위와 같이 실행시키면 암호설정을 하게됨.
client에서 접속 시 사용할 암호를 입력해줌.



부팅 시 자동실행 되도록 등록
$ sudo update-rc.d vncboot defaults


raspberry pi 재부팅
$ sudo shutdown -r now








client 프로그램 다운로드



이제 raspberryPi에서의 설정은 끝났다.

다시 윈도로 돌아와서

www.tightvnc.com 로 들어가서













TightVNC를 다운로드합니다.

64bit, 32bit중 입맛에 맞는 것을 선택해서 다운로드해서

Windows에 설치합니다.











vncview를 실행하고 ip와 화면 번호를 입력하면












RaspberryPi에서 설정한 password를 묻습니다.

입력하면

















pi's X desktop TigerVNC화면이 열립니다.























putty화면과는 차이가 있습니다.

필요에 따라 선택적으로 접속하여 사용하면 되겠습니다.




위 방법들은 여러분들이 올려 놓아 비교적 손쉽게
설정가능한데 나의 경우 자동실행되는 부분의
주석인듯한부분들 #을 모두 제외하고 진행하여
또다시 삽질을 하였음.
아래 링크에 보면 나와 같은 사람들이 세계 각국에 존재하는 듯함.

https://www.raspberrypi.org/forums/viewtopic.php?t=7395

참조 https://wiki.debian.org/LSBInitScripts

2016년 2월 16일 화요일

Raspbian Jessie Lite wifi setting

Raspbian Jessie Lite에서 무선랜을 잡을 때 이런저런 삽질을 했는데
의외로 깔끔하게 연결됩니다.

yellow background is command

white background is default

gray background is insert command


sudo nano /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf





sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="YourSSID"
        psk="password"
        key_mgmt=WPA-PSK
}



sudo reboot




2016년 2월 12일 금요일

Raspbian Jessie Lite for RaspberryPi

Raspbian Jessie Lite 도 설치해 봅시다.

ubuntu를 설치해봤었지만,  공식지원은 rsapbian이라서 시도 해보는 것입니다.
















 위 이미지를 클릭하면


















위와 같이 Raspbin Jessie, Wheezy, Jessie Lite 3종세트가 보입니다.

이중 Jessie Lite를 선택해서 이미지를 다운로드합니다.


이후 부터는 이전에 게시한 내용과 동일합니다.

그래서 copy and paste 합니다.


압축받은 파일을 7-zip(http://www.7-zip.org/)등을 이용하여 압축을 풀고....

Win32 Disk Image(
Win32 Disk Imager)로 SDCard에 굽습니다.
(뒤집을 필요없습니다...썰렁)


구워진 SD Card를 라즈베리에 꽃고 전원을 넣으면 끝.

 

2016년 2월 11일 목요일

snappy ubuntu core for Raspberry pi 2


라즈베리파이 다운로드로 들어갑니다. https://www.raspberrypi.org/downloads/


snappy ubuntu core를 클릭합니다.
(https://developer.ubuntu.com/en/snappy/start/#snappy-raspi2)



on the Raspberry Pi 2 를 클릭하면 Ubuntu, win, Mac에서 설치할수 있는 화면이 나온다.

나는 윈도이므로 다음 그림의 링크를 따라간다.

https://developer.ubuntu.com/en/snappy/start/raspberry-pi-2/#install-from-windows


http://cdimage.ubuntu.com/ubuntu-snappy/15.04/stable/latest/ubuntu-15.04-snappy-armhf-raspi2.img.xz

link를 클릭하여 이미지를 다운로드 합니다.

이후 부터는 ubuntu mate와 동일합니다.

그래서 copy and paste 합니다.

다운로드가 끝나면

압축받은 파일을 7-zip(http://www.7-zip.org/)등을 이용하여 압축을 풀고....

Win32 Disk Image(
Win32 Disk Imager)로 SDCard에 굽습니다.
(뒤집을 필요없습니다...썰렁)


구워진 SD Card를 라즈베리에 꽃고 전원을 넣으면 끝.



출처 https://developer.ubuntu.com/en/snappy/start/raspberry-pi-2/#install-from-windows

Ubuntu MATE for the Raspberry Pi 2

라즈베리파이2에 라즈비안을 깔아지만....

느리다.

혹시 ubuntu를 설치하면 좀 나아질까 싶어 시도해 봅니다.


라즈베리파이로 이동
https://www.raspberrypi.org/

다운로드로 이동
https://www.raspberrypi.org/downloads/





















NOOBS, Raspbian  외에

ubuntu가 Third Party Operating System Images로 있습니다.

먼저 ubuntu mate를 설치해보고 snappy ubuntu code도 설치해볼 예정입니다.

ubuntu mate 아이콘(https://ubuntu-mate.org/raspberry-pi/)을 클릭해서 이동하면

Ubuntu MATE 15.10.1을 다운로드할수 있는 경로가 나타납니다.


마음에드는 경로를 선택하고 저장폴드를 선택하여 다운로드합니다.

기부도 할 수 있습니다.(2.5$,5$,10$,20$), 선택사항입니다.

다운로드가 끝나면

압축받은 파일을 7-zip(http://www.7-zip.org/)등을 이용하여 압축을 풀고....

Win32 Disk Image(Win32 Disk Imager)로 SDCard에 굽습니다.
(뒤집을 필요없습니다...썰렁)


구워진 SD Card를 라즈베리에 꽃고 전원을 넣으면 끝.

(ubuntu도 좀 느림니다....ㅠㅠ)
(gui를 포기해야 될가요?....)

출처 https://ubuntu-mate.org/raspberry-pi/
























2016년 1월 28일 목요일

소장수 신씨와 뱃사공 황씨

신경림


영흥도에서 만난 소장수 신씨는
눈을 감고도 소를 몰고 백리를 간다

어디서 길이 굽고 어디에 도랑이 있는가
또 어디쯤 돌부리가 있는가
눈을 감고도 그는 다 안다

하지만 그는 잠시도 한눈을 안 판다
서른 해 걷던 길도 늘 첫길로 조심하고

천 번 뛰어넘던 도랑도
늘 첫번처럼 힘을다해 뛰어넘는다


남한강 청풍에 사는 뱃사공 황씨는
강길이 바로 그의 뜨락이자 텃밭이다

살여울 어디쯤 물살이 더 세고
어디쯤에 풀등이 있는가도 다 안다

물풀 하나하나 강돌 하나하나
바위서덜 그 하나하나 손금 보듯 다 알지만
노만 잡으면 그는 늘 긴장한다

장가가던 첫날밤처럼 긴장한다
쉰 해 물길이 그에게는 하루처럼 새롭다


잠이 오지 않는 밤 나는 서글퍼진다
창문을 때리는 빗소리를 들으면 서글퍼진다

이 길 걸은 지 서른 해에
단 하나 익은 골이 내게 없음이

눈 감고도 갈 수 있는 단 한 길이 내게 없음이
그러면서도 때로 턱없이 건방져지는 어리석음이

때로 분수없이 설치게 되는 뻔뻔스러움이
소장수 신씨와 뱃사공 황씨를 생각하며 서글퍼진다

2016년 1월 25일 월요일

ftp로 원격서버의 데이터 자동백업

ftp로 원격서버의 데이터 자동백업             
 
 
서버2에서 서버1의 데이터를 FTP로 가져와 백업하기
작업내용 : 서버2에서 매일(/etc/cron.daily/autoftp) 서버1로 ftp접속을 하여(/home/sspark/.autoftp.sh, /home/sspark/.ftpscript) 백업할 데이터들을 가져온후에 서버2에 날짜형식을 가진 디렉토리를 생성하여 저장하고, 서버1의 원본데이터는 삭제한다.
서버1에서는 매일매일 백업일 하기위해 /etc/cron.daily/NICE-daily-backup에서 /sbin/NICEBACKUP파일을 실행시켜 이 파일에 있는 내용대로 매일매일 백업이 되고 있다.
 
 
서버1에서 매일 백업되는 내용
다음과 같이 서버1의 /sbin/NICEBACKUP에는 백업해야할 내용에관한 명령어들이 들어있다.
[root@kebia_1 /root]# cat /sbin/NICEBACKUP
#!/bin/bash
#APACHE Server BACKUP
tar cvfpz /home/sspark/BACKUP/usr_local_apache.tar.gz /usr/local/apache
#Mysql DB Full BACKUP
tar cvfpz /home/sspark/BACKUP/usr_local_mysql.tar.gz /usr/local/mysql
#Filesystem BACKUP
tar cvfpz /home/sspark/BACKUP/etc.tar.gz /etc
tar cvfpz /home/sspark/BACKUP/var.tar.gz /var
tar cvfpz /home/sspark/BACKUP/home.tar.gz /home
#Mysql file BACKUP
/usr/local/mysql/bin/mysqldump -uroot -p11111 mysql > /home/sspark/BACKUP/mysql.sql
/usr/local/mysql/bin/mysqldump -uroot -p11111 kebia > /home/sspark/BACKUP/kebia.sql
chown -R sspark:sspark /home/sspark/BACKUP
아래와 같이 서버1에는 위의 백업을 매일 하기위해 /etc/cron.dailly에 NICE-daily-backup이란 파일이 존재한다.
[root@kebia_1 /root]# cat /etc/cron.daily/NICE-daily-backup
echo "NICE KOREA BACKUP"
echo `date`
/sbin/NICEBACKUP
echo "BACKUP is completed"
[root@kebia_1 /root]#
 
서버1에는 매일 아래 디렉토리에 다음과 같이 백업이 되고 있다.
[root@kebia_1 BACKUP]# pwd
/home/sspark/BACKUP
[root@kebia_1 BACKUP]# ll
-rw-r--r--    1 sspark   sspark    1514583 Apr  1 04:04 115.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark       9263 Apr  1 04:05 chapter.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark   12996153 Apr  1 04:05 e-gain.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark     556780 Apr  1 04:04 etc.tar.gz
-rw-r--r--    1 sspark   sspark    2007684 Apr  1 04:04 imt-2000.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark   11236021 Apr  1 04:04 nicekorea.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark      32128 Apr  1 04:04 owner.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark    2150591 Apr  1 04:04 picasso.co.kr.tar.gz
-rw-r--r--    1 sspark   sspark    3624831 Apr  1 04:04 sajik.com.tar.gz
-rw-r--r--    1 sspark   sspark   94379928 Apr  1 04:04 usr_local.tar.gz
-rw-r--r--    1 sspark   sspark    4471105 Apr  1 04:04 var.tar.gz
[root@kebia_1 BACKUP]#
 
 
서버2에는 서버1의 데이터를 매일 가져오기위해 /etc/cron.daily에서 매일실행하는 스크립트 autoftp가 아래와 같이 있다.
[root@kebia_2 /root]#
[root@kebia_2 /root]# cat /etc/cron.daily/autoftp
#!/bin/bash
/home/sspark/.autoftp.sh
[root@kebia_2 /root]#
 
서버2에 만들어져야할 파일2개
  autoftp.sh : ftp실행파일
  ftpscript : ftp명령어들
 
[root@kebia_2 sspark]# cat autoftp.sh
#!/bin/bash
ftp -n 211.220.193.181 < ./ftpscript
export backupdir=`date '+%y-%m-%d.%H-%M'`
mkdir /home/sspark/BACKUP/$backupdir
mv /home/sspark/tmp/* /home/sspark/BACKUP/$backupdir

[root@kebia_2 sspark]#
 
[root@kebia_2 sspark]# cat ftpscript
user sspark 11111
cd /home/sspark/BACKUP
lcd /home/sspark/tmp
bin
prompt
mget *.tar.gz
mdelete *.tar.gz
bye

[root@kebia_2 sspark]#
 
서버1에는 cron.daily에 /sbin/NICEBACKUP등으로 매일 또는 매주 또는 매월백업을 자동으로 되고 있어야한다.
서버1의 /home/sspark/BACKUP/200104010303 형식으로 디렉토리를 생성하게되어 저장된다.
그런후에는 서버1의 데이터를 삭제한다.
 
작업완료후에 서버2에는 서버1의 내용이 백업되어 있다.
 
[root@kebia_2 01-04-01.05-45]# pwd
/home/sspark/BACKUP/01-04-01.05-45
[root@kebia_2 01-04-01.05-45]# ll
-rw-r--r--    1 root     root      1514583 Apr  1 05:36 115.co.kr.tar.gz
-rw-r--r--    1 root     root         9263 Apr  1 05:36 chapter.co.kr.tar.gz
-rw-r--r--    1 root     root     12996153 Apr  1 05:37 e-gain.co.kr.tar.gz
-rw-r--r--    1 root     root       556780 Apr  1 05:37 etc.tar.gz
-rw-r--r--    1 root     root      2007684 Apr  1 05:37 imt-2000.co.kr.tar.gz
-rw-r--r--    1 root     root     11236021 Apr  1 05:38 nicekorea.co.kr.tar.gz
-rw-r--r--    1 root     root        32128 Apr  1 05:38 owner.co.kr.tar.gz
-rw-r--r--    1 root     root      2150591 Apr  1 05:38 picasso.co.kr.tar.gz
-rw-r--r--    1 root     root      3624831 Apr  1 05:38 sajik.com.tar.gz
-rw-r--r--    1 root     root     94379928 Apr  1 05:45 usr_local.tar.gz
-rw-r--r--    1 root     root      4471105 Apr  1 05:45 var.tar.gz
[root@kebia_2 01-04-01.05-45]#
 
서버2에서 ftp접속 및 작업이 끝난후 서버1의 내용(즉, 원본파일은 지워지게 된다.)
[root@kebia_1 BACKUP]# pwd
/home/sspark/BACKUP
[root@kebia_1 BACKUP]# ll
[root@kebia_1 BACKUP]# 
 
 

2016년 1월 18일 월요일

Raspberry Pi

준비물

라즈베리파이(pi2 B)

sdcard

라즈베리파이 이미지 https://www.raspberrypi.org/downloads/raspbian/

A tool for writing images to USB sticks or SD/CF cards  http://sourceforge.net/projects/win32diskimager/


Raspberry Pi Java Closs Compile

라즈베리파이 윈도 closs compile


putty 로 라즈베리파이에 접속
pi@rasberrypi $ cd .. -->home으로 이동
pi@rasberrypi $ cd pi -->pi로 이동

pi@rasberrypi $mkdir jre
pi@rasberrypi $chmod 777 jre



ms windows에서
ORACLE JAVA SE EMBEDDED DOWNLOADS에 접속
(http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.html)

ARM v6/v7 Linux - VFP, HardFP ABI, Little Endian 1 을 다운로드한다.
적당한 장소에 압축을 풀어놓고....



NetBeans IDE를 실행
도구-Java Platforms 를 클릭
Add Platforms를 클릭
Remote Java Standard Edition 선택후 다음 클릭

Platform Name : Raspberry Pi (적당한 이름으로....)
Host                  : 192.168.0.9  (라즈베리파이의 IP)
Username          : pi                 (라즈베리파이 ID)
Password           : **********(라즈베리파이 비밀번호)

Remote JRE Path:          Create... 클릭

Browse클릭 ---------------> 다운로드해서 압축을 풀어놓은 디렉토리 선택

Profile                : Compact3
Virtule Machine : Client

Extensions : 적당히 선택
(fx...를 체크하면 실패함. javaFX는 안되나? 나중에 시도해보겠습니다.)


Create 클릭
Configuration Name : HelloPiConfig(언제나 헬로파이...)OK 클릭


완료 클릭


이제 NetBeans에서 프로젝트생성하고
프로젝트 선택하고 오른쪽 마우스 클릭하여

Properties(등록정보: 괜히 한국어버전 선택했나?) 클릭
카테고리선택  Profile                   : Compact3 선택
실행 선택         Runtime Platform : Raspberry Pi 선택

컴파일하고 실행하면 라즈베리파이의

/NetBeansProjects/HelloPi 에 jar파일이 생성되어 있음.

java -jar helloPi.jar --> 헬로출력


끝.

출처:
https://www.youtube.com/watch?v=ebHbDlTnV-I
https://www.youtube.com/watch?v=-aC6nj4xAas

vsftpd FTP 서버 접속은 성공하였으나, "디렉토리 목록 조회 실패" 현상 발생시

FTP Passive 모드를 활성화 필요. 1. vsftpd 설정 변경 /etc/vsftpd/vsftpd.conf 상에 아래 내용 추가 기입 #passive modpasv_enable=YES pasv_min_port=5001 pasv...