우분투2014. 6. 17. 11:29

CSS에서는 변수를 사용할 수 없습니다.

그래서 같은 코드를 여러번 입력해야 하는 불편이 있습니다.

이러한 단점을 보완해주는 것이 Less입니다.

변수와 여러 함수를 이용하여 CSS 코드를 만들 수 있습니다.

Less 문법으로 코드를 짠 후 컴파일을 하면 CSS 파일로 변환됩니다.

따라서 컴파일이 가능하도록 프로그램을 설치해야 합니다.

Ubuntu를 사용하고 있다면, 단 한줄의 코드로 관련 프로그램을 설치할 수 있습니다.

apt-get install node-less

설치를 했다면 테스트를 해봐야겠죠. 다음의 내용으로 style.less 파일을 만듭니다.

@nice-blue: #5B83AD;
@light-blue: @nice-blue + #111;
#header {
  color: @light-blue;
}

다음과 같이 명령합니다.

lessc style.less > style.css

style.less가 있는 폴더에 style.css가 만들어집니다. 내용은 다음과 같습니다.

#header {
  color: #6c94be;
}

CSS 코딩을 할 때 변수를 사용하거나 함수를 이용할 수 있다는 것은 상당히 매력적입니다. 하지만, 공부할 거리가 더 생기는군요.

프로그래머는 계속 새로운 기술이 나와서 평생 지루하지 않은(?) 직업 같습니다.

Posted by 다오나무
우분투2014. 4. 2. 23:56

1. Java 설치

     1) 우분투에 오라클jdk를 설치하기 위해서는 아래 명령어를 입력하면 자동으로 설치가 됩니다.

sudo apt-get install oracle-jdk7-installer 

제거할 경우 : sudo apt-get remove 패키지명

 

     2) 패키지를 찾을수 없다고 나올경우

         아래 명령어를 입력하여 패키지 목록을 업데이트 합니다.

sudo apt-get install python-software-properties

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update

         업데이트가 완료되었으면 설치가 가능합니다.  

 

2. Java 설치 확인

java -version


java version "1.7.0_51"

Java(TM) SE Runtime Environment (build 1.7.0_51-b13)

Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

    위와 유사한 메시지를 출력해주면 설치가 완료상태를 확인할 수 있습니다.

 

3. Tomcat7 설치

sudo apt-get install tomcat7

 

4. Tomcat 버전 확인

sh /usr/share/tomcat7/bin/version.sh

 

Using CATALINA_BASE:   /usr/share/tomcat7

Using CATALINA_HOME:   /usr/share/tomcat7

Using CATALINA_TMPDIR: /usr/share/tomcat7/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar

Server version: Apache Tomcat/7.0.42

Server built:   Aug 1 2013 01:42:03

Server number:  7.0.42.0

OS Name:        Linux

OS Version:     3.11.0-12-generic

Architecture:   amd64

JVM Version:    1.7.0_51-b13

JVM Vendor:     Oracle Corporation

ubuntu@ip-172-31-22-219:/usr/share/tomcat7/bin$ cd ~

ubuntu@ip-172-31-22-219:~$ sh /usr/share/tomcat7/bin/version.sh

Using CATALINA_BASE:   /usr/share/tomcat7

Using CATALINA_HOME:   /usr/share/tomcat7

Using CATALINA_TMPDIR: /usr/share/tomcat7/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar

Server version: Apache Tomcat/7.0.42

Server built:   Aug 1 2013 01:42:03

Server number:  7.0.42.0

OS Name:        Linux

OS Version:     3.11.0-12-generic

Architecture:   amd64

JVM Version:    1.7.0_51-b13

JVM Vendor:     Oracle Corporation

    위와 유사한 메시지를 출력해주면 설치가 완료상태를 확인할 수 있습니다.

 

5. Tomcat 서비스 구동

sudo service tomcat7 start

 

6. 웹 브라우져로 구동 확인

 

 

Posted by 다오나무
우분투2012. 9. 22. 15:20
터미널에서 sudo nautilus 입력하세요.


_________________
Ubuntu 12.04 LTS


Posted by 다오나무
우분투2012. 9. 7. 22:54

tar압축패키지로 전체 시스템 백업하기.. 

백업에 제외할 디렉토리를 정한다. 쓸모없는 디렉토리와, 백업파일 자신을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media   /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러매세지를 볼수가 있는데 대부분의 경우 무시해도 된다.

 

백업 

1. 루트로 이동

#cd /

 

2.전체 시스템을 백업

#tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

 

복구

1. 루트로 이동

#cd /

 

2. 압축을 풀어 복구

#tar xvpfz backup.tgz -C /

마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다.

 

 백업에서 제외했던 디렉토리는 직접 만들어 주어라
#mkdir proc
#mkdir lost+found
#mkdir mnt
#mkdir sys

재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다.

 

--아래는 내가 백업하기전 Directory 구성



 

[
Posted by 다오나무
우분투2012. 9. 7. 22:36

저의 경우 리눅스파티션(ext4)을 3개쓰고 있습니다.

윈도우파티션(NTFS)까지 합치면 9개의 파티션을 쓰고있죠. ;;

NTFS파티션을 자동으로 마운트되게 하는건 'ntfs-config'이라는 유틸을 사용하면 쉽게 되지만 ext4파티션은 직접 작성을 해줘야 합니다.


먼저 파티션의 uuid를 알아야합니다.(UUID: 범용 고유 식별자 Universally Unique Identifier)

터미널에서 아래의 명령을 실행시킵니다.


ls -l /dev/disk/by-uuid/

그러면 아래와 비슷한 하드의 파티션 UUID 번호가 나옵니다.


lrwxrwxrwx 1 root root 10 2010-07-25 15:51 0440AAFD407AF498 -> ../../sda6
lrwxrwxrwx 1 root root 10 2010-07-25 15:51 049C80B292809FB2 -> ../../sda9
lrwxrwxrwx 1 root root 10 2010-07-25 15:52 1846215F46213EB7 -> ../../sda5
lrwxrwxrwx 1 root root 10 2010-07-25 15:52 32905ABC3403C014 -> ../../sda8
lrwxrwxrwx 1 root root 11 2010-07-25 15:52 4f9e4283-2f18-48ef-a881-056f1fb2a30d -> ../../sda10
lrwxrwxrwx 1 root root 11 2010-07-25 15:52 5a5f097d-8587-473e-bc65-4d175b7fa6a5 -> ../../sda12
lrwxrwxrwx 1 root root 10 2010-07-25 15:52 61ABCFF04CAD8CDB -> ../../sda1
lrwxrwxrwx 1 root root 10 2010-07-25 15:51 789FCA7F3C10E3D7 -> ../../sda7
lrwxrwxrwx 1 root root 11 2010-07-25 15:51 a710af3e-bffc-42ec-979d-918c42f65b52 -> ../../sda13
lrwxrwxrwx 1 root root 11 2010-07-25 15:52 ad7e627d-6d70-4dda-bb51-0a582c0afc87 -> ../../sda11


여기서 날짜와 시간 뒤에있는 복잡해보이는 일련번호가 바로 'UUID'입니다.

../../sda6와 같은 문자는 파티션 번호입니다.


위의 파티션정보를 보면 sda라는 1번째하드에 uuid가 짧은 /sda1,/sda5~9는 ntfs파일시스템으로 /sda1은 윈도우의 C드라이브이고, /sda5~9는 D~H드라이브 입니다.

uuid가 긴 /sda10~12는 리눅스파일시스템(ext4)이며, /sda13은 스왑 파티션입니다.


이제 uuid번호를 알았으니 부팅할때 자동으로 마운트되게 하면 됩니다.

터미널에서 아래의 명령을 실행시킵니다.


sudo gedit /etc/fstab

그러면 아래와 비슷한 형식의 글이 나옵니다.


# /etc/fstab: static file system information.
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc    /proc    proc    nodev,noexec,nosuid    0    0

UUID=4f9e4283-2f18-48ef-a881-056f1fb7a30d    /    ext4    errors=remount-ro    0    1  >> 현재 사용중인 우분투 파티션.
UUID=049C80B292809FB2    /media/data    ntfs-3g    defaults,locale=ko_KR.UTF-8    0    0  >>이하 윈도우파티션.
UUID=1846215F46213EB7    /media/drama    ntfs-3g    defaults,locale=ko_KR.UTF-8    0    0
UUID=789FCA7F3C10E3D7    /media/fors    ntfs-3g    defaults,locale=ko_KR.UTF-8    0    0
UUID=32905ABC3403C014    /media/game    ntfs-3g    defaults,locale=ko_KR.UTF-8    0    0
UUID=0440AAFD407AF498    /media/ubuntuk    ntfs-3g    defaults,locale=ko_KR.UTF-8    0    0
UUID=61ABCFF04CAD8CDB    /media/seven    ntfs-3g    defaults,locale=ko_KR.UTF-8    0    0


자동 마운트 되는 파티션을 보여주는 문서입니다.

원하는 리눅스 파티션을 자동 마운트 한다면 uuid번호를  적어주면 됩니다.

/sda12파티션을 넣어준다고 가정한다면...위의 uuid번호를 그대로 복사&붙여넣기 하면 됩니다.


UUID=5a5f097d-8587-473e-bc65-4d175b7fa6a5  /media/kubuntu    ext4    errors=remount-ro    0    1


유의 해야할것은 '/media/kubuntu'라는 폴더입니다. 사용자가 원하는 폴더명을 넣으면 됩니다.

보통 '/media/사용자폴더'로 위치를 정하면 되는데 다른 디렉토리로 해도 전혀 상관없습니다.


'사용자폴더'는 디렉토리(폴더)입니다. 꼭 디렉토리를 만들어야 합니다.


sudo mkdir /media/kubuntu


이제 재부팅해서 확인해 보세요. 자동으로 마운트되어 있을겁니다.


*****************************************************************************************************************8


저와 같이 리눅스파티션을 두개이상 쓰는분이 있는지 모르겠지만... 혹시 필요한 분이 있을듯하여 적어봤습니다.

쉬운건데 너무 복잡하게 설명한듯 합니다.;;

Posted by 다오나무
우분투2012. 9. 6. 16:57

: 안녕하세요~ .. 

: 하나의 하드디스크내용을 모조리 다른 하드디스크로 옮기고 싶습니다. 
: 백업이나 카피, 하드디스크의 업그레이드 수준이 아니라, 
: 완전히 똑같이 말이죠(임시로)... 
: 디스크카피를 수행한 후에 다른 PC에서 카피된 디스크를 이용해 
: 똑같은 서비스를 할 수 있도록 말이죠.. 

: 물론 작업을 위해 임시로 가능할 수 있도록 하면 됩니다. 

: 아~! 그리고 이런 일이 SCSI하드에서 IDE하드로도 가능한지 
: 모르겠습니다. 

: 가르쳐 주세요~~~ 

: 이질문을 2~3일전에 했는데, 워낙 순식간에 한참 지난 글이되어 버려서 다
: 시 했습니다.

가장 손쉬운 방법은 완전히 동일한 하드디스크를 하나 준비한 다음에 
dd 명령을 사용하는 거지요. 예를 들어 SCSI원본이 /dev/sda 에 달려있고
복사당할 똑같은 놈을 /dev/sdb에 단다음에

dd if=/dev/sda of=/dev/sdb

하면 됩니다. 이렇게 할 경우 sector단위로 복사가 되며 lilo등도 똑같이 설
정됩니다. 바꿔끼기만 하면 되는거죠.

그 다음으로 복사당할 하드가 원본이랑 사이즈나 제품이 다를 경우는 위의 
방법을 사용해서는 절대 안되고 원본에서

# tar cvflz /tmp/root.tar.gz / --exclude /tmp

와 같이 명령을 실행하면 /tmp아래 root.tar.gz 이 생성되지요.
그다음에 복사당할 ide를 달고서 포맷하고 파티션을 나눈다음에 (이때 위에
서 만든 root.tar.gz 를 풀수 있을만큼 충분히 사이즈가 커야됨) 이를 원본
의 적당한 곳에 마운트를 하고 위의 파일을 풀어냅니다.

# tar zxvf /tmp/root.tar.gz /mnt/second/
뭐 이런식으로 하면 되겠죠 ( /mnt/second 가 두번째 하드의 마운트 디렉토
리)...

그 다음에 복사된 하드를 첫번째 드라이브로 만든 다음에, 플로피로 부팅하
여 lilo를 설치한다음 떼내서 다른 하드로 달면 되지요.

세번째 방법으로 최소한의 시스템만을 설치한 다음에 네트웍을 구성하고 원
본시스템에서 복사될 시스템으로 rdist나 rsync를 사용하여 필요한 파일을 
복사하는 방법이 있읍니다.

세가지 방법중에서 권하고 싶은 것은 1번입니다.

[출처] Linux 하드카피 방법|작성자 예민

Posted by 다오나무
우분투2012. 8. 26. 01:17

우분투는 SSH로 거의 모든 작업을 다 처리할 수 있지만,

가끔 GUI 모드로 원격접속해야 할 때가 있다. (이쁘기도 하고...)

이를 설정하기 위해 검색해보니 vnc를 이용한 서버 설치와 접속이 주류를 이루었는데,

접속하려는 윈도우에 별도의 프로그램을 깔아야 하니 번거롭다 생각하던중 괜찮은걸 발견했다.

바로 vnc 클라이언트 프로그램 설치 없이 윈도우 원격 데스크톱 연결(mstsc)을 이용해 접속 가능한 xrdp이다.


1. 설치방법

apt-get을 이용해 xrdp를 설치하자. 알아서 vnc4server등 필요한 패키지를 설치해 준다.

$ sudo apt-get install xrdp


2. xrdp 설정 변경

설치하면 포트는 기본적으로 3389로 활성화 된다. 이 포트를 변경하고 싶으면 아래의 파일을 열어 설정값을 변경하자

$ sudo vim /etc/xrdp/xrdp.ini

1[globals]
2bitmap_cache=yes
3bitmap_compression=yes
4port=3389 #원하는 포트로 변경
5crypt_level=low
6channel_code=1


3. .xsession 파일 수정

2번까지만 설정하고 접속하면 접속은 되는데 바탕화면만 나오고 아무런 반응이 없다.

이럴땐 홈 디렉토리 아래에 .xsession 파일을 아래와 같이 수정하거나 없다면 추가해주자

$ sudo vim ~/.xsession

1gnome-session --session=ubuntu-2d


이후 접속해보자.

로그인은 따로 설정하지 않았다면 모듈부분을 sesman-Xvnc로 두고 계정과 비밀번호를 입력하면 된다. 

 

아주 잘 된다 !


'우분투' 카테고리의 다른 글

Linux 하드카피 방법  (0) 2012.09.06
우분투 하드카피  (0) 2012.09.06
우분투 - 예약실행 명령어 cron  (0) 2012.07.26
crontab 사용법 및 php 실행  (0) 2012.07.26
vsftpd 폴더 생성시 권퐇  (0) 2012.07.08
Posted by 다오나무
우분투2012. 7. 26. 20:53

$sudo crontab -e

분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6, 0 = 일요일) 파일명(명령어)


각각의 값은 빈칸으로 구분
 되어 있으므로 명령어에 빈칸이 있다면 ""로 감싸주거나 \을 빈칸 앞에 놔 주어야 합니다.
그리고 구분 없이 "매번"을 적용시키고 싶으면 해당되는 곳에 *를 대체해 주면 됩니다.

"분" 은 0분에서 부터 59분을 사용한다. 
"시" 는 0시에서 부터 23시 까지를 사용 한다. 
"일" 은 1일 에서 부터 31일 까지를 사용 한다. 
"월" 은 1월에서 12월 까지를 사용 한다. 
"요일" 은 0에서 7까지를 사용 하는데 숫자별 요일은 다음과 같다. 

0 , 7 = 일요일 
1 = 월요일 
2 = 화요일 
3 = 수요일 
4 = 목요일 
5 = 금요일 
6 = 토요일 

ex)30 05 * * * sh /경로/파일명
매일 새벽 5시30분에 파일속 내용을 자동으로 실행

편집이 완료되면 Ctrl + O 를 눌러 저장하고
Ctrl + X 를 눌러 빠져나온다.



crontab -e [ username ] # crontab 파일을 에디트 한다. 
crontab -l [ username ] # crontab 파일 리스트를 보여준다. 
crontab -r [ username ] # cronatb 파일을 지운다. 
crontab [ filename ] # file을 crontab 파일에 카피한다. 


cron 재부팅
$sudo /etc/init.d/cron restart


참고 Site
http://www.leopit.com/Leophp/board/lecture_board/view.php?id=37&board_mode=linux

Posted by 다오나무
우분투2012. 7. 26. 20:50

1. crontab 사용법 

 

 분

 시

 일

 월

 요일

 명령어

 설명

 0-59

 0-23

 0-31

 1-12

 0-7

 실행할 파일 또는 명렁어

 

 30

 4,12

 *

cd /var/www/test; ./auto_sms.php

 매월 매주 매일 4시,12시 30분에 해당파일을 실행 시킨다.

 40

 1

 *

 *

 0

 

cd /var/www/test; ./auto_sms.php

 매월 매주일요일 1시 40분에 해당파일을 실행 시킨다.

 

2.등록 및 수정

 

 # crontab -e

  vi 형식의 에디터 창이 나오면 i 키로 등록할 명령어를 입력한다.

* * * * * /usr/home/test.sh >> /dev/null   : 1 분간격으로 해당 파일을 실행 하고 오류 저장을 하지 않는다.

 

3. .목록 확인

 

# crontab -l

 

4. 목록 수정

 

# crontab -e

 

# crontab -u username -e : 해당 유저의 crontab 수정

 

5. 목록 삭제

 

# crontab -r

 

6. 실행확인

 

# ps -ef | grep cron

 

7. 로그검토

 

# /var/log/cron

 

8. 파일 등록

 

# crontab [file_name]

 

9.시간 설정

 

 * * * * *

 1분 마다 수행

 5 * * * *

 매시 5분 마다 수행

 5 6 * * *

 매일 6시 5분에 수행

 5 6 7 * *

 매월 7일 6시 5분에 수행

 5 6 7 8 *

 매년 8월 7일 6시 5분에 수행

 5 6 * * 1

 매주 월요일 6시 5분에 수행

 5 6 1,10 * *

 매월 1일과 10일 6시 5분에 명령 수행

 5 6 1-10 * *

 매월 1일~10일 동안 6ㅛㅣ 5분에 명령 수행

 5 6 */5 * *

 매월 편집일로부터 5일마다 6시 5분에 수행

 

※ 주석 처리리시 맨 앞에 '#' 붙인다

   # * * * * * /usr/home/test.sh

 

※ PHP 쉘스크립트(php 바이너리 파일이 있는 곳을 앞에 적어준다)

 

 #!/usr/bin/php -e

<?php

    echo "hello";

?>

Posted by 다오나무
node.js2012. 7. 9. 23:05

이제 node.js 를 시작해 보려 합니다.

트랜드에 조금 뒤쳐졌지만.. 시작해 봅시다.

왜 node.js에 관심을 가지게 되었는가 부터 배경을 설명하면..

간단한 설치 및 유연한 속도 또한 확장성 부분에서 뛰어날 수 있다라는 관점..

특히나 js 를 사용한다는 점.. 시스템을 접근해서 만질 수 있다는 점.. 여러가지 메리트가 있더라고요.

자 그럼 설치 해 보고 시작해 봅시다.

저는 우분투를 사용하기 때문에, 우분투 리눅스 위주로 작성합니다.

설치방법: 일단 apt-get 을 이용해 필요한 요소를 설치 합니다.

> sudo apt-get install g++ curl libssl-dev apache2-utils

> sudo apt-get install git-core

기본 설치는 완료 했고요.

이제 실제 node.js 라이브러리를 설치 합니다.

nodejs.org 로 가서 최신 버전을 받는다.

> wget http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz

> cd node-v0.6.14

> ./configure

> make

> sudo make install

샘플코드

 test_node.js 파일을 만드시고

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'});

  res.end('Hello Node.js\n');

}).listen(8282, "127.0.0.1");

console.log('Server running at http://127.0.0.1:8282/');

이렇게 넣으시고.. 커맨드 창에서

> node test_ndoe.js

이렇게 하시고 wget 127.0.0.1:8282 라고 하시면 확인이 가능합니다.

따로 ip 지정 안하시면 외부 웹으로 접근도 가능합니다.:)

그럼 몇 가지 샘플을 한 번 더 볼까요.

hello.js

// helloworld1.js

var sys = require("sys")

setTimeout(function() {

    sys.puts("world");

}, 2000);

sys.puts("hello");


// helloworld_sigint.js

puts = require("sys").puts;

setInterval(function() {

    puts("hello");

}, 500); 

process.addListener("SIGINT", function() {

    puts("good-bye");

    process.exit(0);

});


// hello_tcp.js

var tcp = require("net");

tcp.createServer(function(c) {

     c.write("hello!\n");

    c.end();

 }).listen(8000);


// hello_html.js

var http = require("http");

http.createServer(function(req, res) {

    res.writeHead(200, {"Content-Type": "text/plain"});

    res.write("Hello\r\n");

    res.write("World\r\n");

    res.end();

}).listen(8080);


// hello_stream.js

var http = require("http");

http.createServer(function(req, res) {

    res.writeHead(200, {"Content-Type": "text/plain"});

    res.write("Hel");

    res.write("lo\r\n");

    setTimeout(function() {

        res.write("World\r\n");

        res.end();

    }, 2000);

}).listen(8000);


응용할 만한게 참 많은 것 같다. 재미있네?

'node.js' 카테고리의 다른 글

node.js용 iOS 푸쉬 인증서를 생성해 보자.  (0) 2012.10.31
node.js 에서 debugger 를 사용해보자.  (0) 2012.10.26
Posted by 다오나무