2009년 3월 31일 화요일

ASP 자주 쓰이는 메소드

<% %> 안에 들어가는 메소드

Response.Write "이런식으로 사용" & 변수

많이 쓰이는 자바스크립트 함수 및 메소드

"<script> </script>"안에 들어가서 실행될수 있는 함수 및 메소드

document.writeIn('출력할 문자 및 변수 등' + '추가 되는 문자열 및 변수부분');     //출력 메소드

document.location.redirect("연결할 주소");  //페이지 연결 메소드

결혼식 레이니즘 ㅋㅋ




여자 능력 좋다.. 춤추면서 노래까지 부르고.. 레이니즘도 추고, GEE도 잘 따라했다~

2009년 3월 30일 월요일

MYSQL ROOT 패스워드를 변경해보자

1. mysql root 패스워드를 변경해보자(리눅스)


<우선 mysql start 하기>

mysql설치루트/bin>./mysqld_safe &


<mysql 접속하기>

mysql설치루트/bin>./mysql -u root mysql


<password 변경하기>

mysql> use mysql;


mysql> update user set password=password('new-passwd') where user = ('root');


mysql> flush privileges;

(참고 : update문을 사용하여 암호가 바뀌었을땐 flush privileges를 이용하여 사용자 관련 테이블에 알려야 함)


마지막으로 서버 재실행



2. 패스워드 분실시


패스워드 분실시 빠르게 root 패스워드를 변경 해보자


우선 mysql를 stop 한 환경에서 작업을 해야 한다.


<권한 테이블을 사용하지 않겠다고 선언하면서 서버 start>

mysql설치루트/bin> ./mysqld_safe --skip-grant-tables &


<mysql 데이터베이스로 바로 접속>

mysql설치루트/bin>./mysql -u root mysql


<update문으로 패스워드 변경>

mysql>update user set password=password('new-passwd') where user = 'root';


<mysql 접속 종료>

mysql>quit


<mysql stop하기>

mysql설치루트/bin>./mysqladmin -u root -p shutdown


<mysql 재시작>

mysql설치루트/bin>./mysqld_safe &


<mysql 접속하기>

mysql설치루트/bin>./mysql -u root -p

password:


mysql>

 

MYSQL 사용자 생성 및 권한 설정

우선 사용자를 생성하기 위해서 Root 권한으로 Mysql에 접속을 합니다.


#> Mysql  -u root -p

Enter Password : ######


mis13 이란 유저가 Mis13이란 DB의 권한을 가지게 해보겠습니다. (암호는 mis1313)


mysql> GRANT ALL PRIVILEGES ON Mis13.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;


mysql> flush privileges;


작성해주시면 끝... mis13으로 접속을 하시면 Mis13이란 DB만 보이실겁니다.


2. 그 밖에 외부에서도 접속하기, 모든 DB권한 주기


어떤 DB도 접속 가능하게 권한을 주는것은

mysql> GRANT ALL PRIVILEGES on *.*  to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql> flush privileges;


슈퍼유저로 (즉 root 권한으로) 권한을 주는것은

mysql> GRANT ALL PRIVILEGES on *.*  to mis13@"%" IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql > flush privileges;


GRANT 명령어 말고 Mysql DB 안에 User, DB 테이블에 넣는 법도 있지만 초보분이 사용하시기엔

이 방법이 편하실겁니다.


3. 모든 권한이 아닌 부분별 골라서 주기


예) mis13 이라는 계정이 전체 데이터베이스에 대해서 select, insert, delete, update 권한만 주고 싶을 경우

mysql>GRANT select, insert, delete, update on *.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql> flush privileges;


예) mis13 이라는 계정이 Mis13 이라는 데이터베이스에 대해서 select, insert, update 권한만 주고 싶을 경우

mysql>GRANT select, insert, update on Mis13.* to mis13@localhost IDENTIFIED BY 'mis1313' WITH GRANT OPTION;

mysql>flush privileges;

VSFTP 설치 및 설정내역

VSFTP 설치 및 설정내역

VSFTP 설치 및 설정내역 보기..


[TIP] DNS 설정 절차

DNS 설정 단계 보기..



흠... 나의 베스트 프렌드들과 커뮤니티 결성했다랄까...

이름은 커뮤니티 팀명은 DEVSTAR
Development 와 Star의 합성어이다..
개발 + 별 = 개발계의 떠오르는 별이라는 생각으로 이름을 지어봤다..
앞으로 웹이나 게임쪽 공모전을 같이 프로젝트 형식으로 진행하면서 참가도 해보고,
개개인의 테크니컬 강의를 올린다던가, 프리토크 게시판과 뉴스 게시판을 따로두어
최근 경향흐름을 분석하고 판단하면서 재밌는 커뮤니티를 진행해나갈수 있는
그런 사이트가 됐으면 좋겠다..

2009년 3월 23일 월요일

[TIP] 쿼리값이 NULL값인 변수를 변환시 오류 해결책

쿼리결과값이 담겨있는 객체를 while문을 이용하여 테이블로 반복출력시
쿼리값에 공백이나 null 값이 들어가있을시, Clng 함수나 Format 함수등으로 그 값을 변환시
에러 또는 오류가 출력되어 전체 페이지가 출력이 안되는 경우가 발생할 수 있다.

    <td align=center class="under">
    <%
     If price_12 = "" Or IsNull(price_12) Or Not IsNumeric(price_12) Then
      response.write("0")
     Else
    %><%=FormatNumber(price_12,0)%>  //이 부분은 PHP에서는 간단하고 보기좋게 표현이 가능..
    <%
     End If
    %>원</td>

PHP에서 하던 습관(대로 ASP에서는
response.write(FormatNumber(price_12,0)) 이렇게하면 될줄 알았는데
ASP에서는 상식이 안통했다..
결국 PHP에서 여러가지 쓰던 방식중 하나를 위에 적용시켜봤더니 된다. -_-
하아.. 정말 ASP 귀찮을뿐더러, 컴퍼넌트도 거의 유료라서 무료는 찾아보기도 힘들고..
컴퍼넌트를 설치해야 돌아가는 웹사이트를 만지자니.. 초반에 애를 먹었다랄까..
아뭏든 MS의 IIS, MSSQL 정말 싫다; 인터페이스 너무 불편하잖아 이건..

[COMPONENT] ABCUPLOAD 4.1

ABCUpload 4.1 입니다.

ABCUpload는 4.1버젼 이하는 사용제한이 없지만 그 위 버젼부터는
사용기간이 있어 시리얼을 입력해 주어야 합니다.

사려면 생각보다 가격이 높네여 ㅋㅋ

[설치법]

1. ABCUpload를 다운 받습니다.

2. 압축을 풀고 인스톨을 합니다.

3. c:\windows\system32 안에서 ABCUpload4.dll을 복사해서 현재 설정한 사이트 홈디렉토리에 넣습니다.

4. 시작 -> 실행에서 regsvr32 "홈디렉토리 전체경로\ABCUpload4.dll"

5. "DllRegister Server 성공" 가 뜨면 성공적으로  설치가 끝난것입니다.

6. Upload가 이루어지는 디렉토리는 쓰기권한을 주는게 당연하겠지요~

[출처] [본문스크랩] ABCUpload 설치법 및 다운로드|작성자 호수비밀

2009년 3월 21일 토요일

자주 쓰이는 ASP 선언문 종류

ASP에서의 IF문 사용법
IF 조건 THEN
    참일 때의 처리 실행.
ELSE
    거짓일 때의 처리 실행.
END IF


선언 및 생성
1. Dim - 변수를 선언. (예: Dim strName)
2. Set - 개체를 생성. (예: Set rs = Server.CreateObject("ADODB.RecordSet"))
논리 구문
3. IF ~ THEN - 만약 ~ 라면. (조건이 적은 경우)
4. SELECT CASE - 만약 ~ 라면. (조건이 많은 경우)
5. FOR ~ NEXT - 순환하면서 실행. (반복 횟수를 정확하게 알고 있을 때)
6. DO WHILE - 순환하면서 실행. (반복 횟수를 정확하게 알 수 없을 때)

IIS 5.x 설치 후 환경설정

IIS 설치 방법은 제어판 -> 프로그램 추가/제거를 열고
왼쪽 아이콘 중 Windows 구성 요소 추가/제거 탭을 누르고 누르면 나오는 창에서
인터넷 정보 서비스를 체크하고서 Windows XP 시디를 미리 넣어주고 확인을 누르면 설치가 된다.
설치하고나서 페이지를 테스트시 로그인창이 뜨는 경우가 있기에

사용자 삽입 이미지


제어판 -> 관리 도구 -> 로컬보안정책
을 열고
안 설정 > 로컬 정책 > 보안 옵션을 누르면 나오는 목록중
네트워크 액세스  : 로컬 계정에 대한 공유 및 보안에 게스트 전용으로 설정되어있는 값을
일반 - 로컬 사용자를 그대로 인증으로 설정해준다.

사용자 삽입 이미지


그리고 보안 설정 > 로컬 정책 > 사용자 권한 할당에서
네트워크에서 이 컴퓨터 액세스 부분을 누르면 나오는 창에서 IUSR_사용자명이 추가 되있는지 확인한다.

이렇게까지 설정해줬는데도 로그인창이 뜨는 경우가 있는데, 필자는 제어판의 방화벽 창을
열고 사용 -> 사용안함 으로 바꿔주니 외부에서 로그인창이 뜨지 않았다..
방화벽 사용으로 설정한 상태에서 고급탭의 설정을 눌러 HTTP 포트에 접근 권한을 개방해놔도...
안되던것이... 사용안함으로 설정해놓으니 되는것이 참... IIS 참 짜증을 유발시킨다...
어쨌든 테스트 서버는 이렇게 설정해놓고 테스트해야겠다...

2009년 3월 18일 수요일

ASP에서 MSSQL 연동해서 쿼리 출력하는 예제

안녕하세요? 웹프로그램에 가장 흥미와 제미 있을시기가 지금 님의 시기인듯 한데요

상세한 정보를 원하신다면 제가 끝에 남긴곳에 강좌를 보시구요

저는 실전적으로 바로 적용할수 있고 초보개발자가 빨리 이해할수있는 수준으로 글을 작성하겠습니다.

따라서 학술적이나 이론적으로는 상이함이 있을수 있습니다만...

님이 원하시는 답변의 핵심에 최대한 접근해보도록 노력하겠습니다.

소스작성 순서는

디비접속객체로 디비접속 =>디비 내용 전달 객체생성=>변수활용 쿼리작성=>디비내용전달객체에 쿼리실행에 의한 테이블내용 담기=>리스팅 뿌리기

이상이 순서입니다.

주석을 확인하시면 미약하지만...^^; 설명이 있습니다.
소스
<%
constr="Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=디비명;User ID=유져아이디;Password=비밀번호;Network Library=dbmssocn"
Set db = Server.CreateObject("ADODB.Connection") 'db라는 컨넥션 object 를 생성합니다.
db.Open constr

'위내용은 constr 변수 내용으로 db라는 object로 데이터베이스에 접속한다는 뜻입니다.


Set rs = Server.CreateObject("ADODB.Recordset")

'rs라는 레코드셋 object 생성합니다. rs안에 테이블내용이 들어갑니다.
Set rs.ActiveConnection = db 'rs는 접속할것이다 db라는 객체를 활용해서

'위내용은 테이블 내용을 전달할 rs object 선언과 rs는 db object 를 활용해서 디비에 접속한다는 뜻입니다.


strSql ="select * from  table " 'strSql 이라는 변수에 실행 쿼리를 작성
rs.Open strSql 'strSql 변수의 내용(쿼리)으로 rs에 테이블 내용을 담으라는 뜻입니다.

'위내용은 strSql 의 변수 활용으로 쿼리 작성해서 rs가 그것을 활용해서 테이블 내용을 가져오는 과정입니다.


while not(rs.EOF) '루프를 돌립니다. 테이블의 끝레코드가 아니면 계속 루프가 돌아가라는 조건으로

response.write rs("필드명") &"<br>" '뿌려야할 필드를 출력

rs.MoveNext '다음레코드로 이동

wend '루프의 끝

'위내용은 rs 가 갖고 있는 필드내용을 출력하는 예제입니다. 그리고 그다음 레코드가 이동이 되는 과정도 있구요
%>

이상이 디비에 있는 내용을 출력하는 소스 예제이구요...

물론 객체를 생성했으면 close 하고 nothing 해야한다 변수선언 똑바로 안하냐?
그런 내용의 테클적인 글도 올라올수 있겠으나...

님이 원하는 질문의 핵심에 최대한 접근이 이글 작성의 목표입니다.

상세한 학습을 원하신다면 teayo 사이트의 asp 강좌를 보시면 정말 잘나와있습니다.


제글이 도움이 되셨으면 합니다. 좋은하루요 ^^

MSSQL2005의 권한 설정 설명

MSSQL2005의 변화된 권한 설정 DB/SQL 노트
자료 출처 : http://blog.naver.com/c1dong8/10019140217

MSSQL2000에서는 권한설정을 하면 SQL을 기준으로 권한을 주었다. 예를 들면 검색권한을 주고싶으면 select 권한을 주는 식으로 필요한 권한을 체크해주는 식이였다.

그래서 MSSQL2005왔을때 많이 해맸다-_-;;;;

어찌됫건 MSSQL2005와서 권한 설정의 가장큰 변화는 로그인권한과 데이터베이스 사용권한을 따로 생성해야하는 것인거 같다.

MSSQL2000때는 로그인권한을 가진 유저를 각DB에 추가시키는 방식으로 권한을 주었지만 MSSQL2005부터는 로그인권한을 가진 유저를 만든후 DB에 유저를 추가시킨다음 만든 로그인과 연결된 권한을 생성하는 방식이다.(C#으로 보자면 인스턴스를 만들어서 접근하는 것과 비슷한거 같다.) 간단하게 말하자면 로그인하는 계정과 DB를 사용하는 계정을 따로 생성해야 한다는 것이다.


로그인 계정을 만드는 것은 MSSQL2000때와 같다. 보안>로그인 에서 새 로그인을 만들어주면된다.

이제 DB로 가서 보안>사용자 새 사용자를 추가한다. 사용자이름을 추가하고 아까만든 로그인(로그인 이름)을 설정해준다.

기본 스키마는 자신보다 높은 권한을 가진 스키마를 설정해야한다. 디폴트로 dbo로 되있는데 dbo의 정보를 보면 오너 권한이 있는걸 알수있다. 사용자를 만들면 자동으로 스키마도 생성해주므로 필요하다면 다른 스키마를 선택해도 된다.

밑에보면 데이터베이스 역할 멤버 자격 이라는 칸이 있는데 이것이 예전의 권한설정부분이다.

MSSQL2000과 많이 달라진 것중하나가 권한설정 부분이다. 어디서 본것 같다했는데.....오라클할때 배운거 같다-_-;;;

권한을 설명하자면


역할 멤버

설명

db_accessadmin

Windows 로그인, Windows 그룹 및 SQL Server 로그인에 대한 액세스를 추가하거나 제거할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms191451(SQL.90).aspx

설명으로 봐서는 로그인에 대한 계정을 추가 삭제할수 있는 권한이다.

db_backupoperator

데이터베이스를 백업할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms189041(SQL.90).aspx

말그대로 DB를 빽업할 수 있다.

db_datareader

데이터베이스에 있는 테이블이나 뷰에 대해 SELECT 문을 실행할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms188629(sql.90).aspx

보통 이 권한을 염두하고 프로그램을 만들었으니 변환한 DB의 사용자는 거의 이 권한으로 주었다.

db_datawriter

모든 사용자 테이블에서 데이터를 추가, 삭제 또는 변경할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms175039(SQL.90).aspx

MSSQL2000 에서는 안써본기능이라 잘 모르겠다;;

db_ddladmin

데이터베이스에서 모든 DDL(데이터 정의 언어) 명령을 실행할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms190667(SQL.90).aspx

데이터 정의어로 오라클에서는 테이블을 생성,삭제,변경할 수 있는 권한이었는데 여기서도 그런거 같다

db_denydatareader

데이터베이스 내에 있는 사용자 테이블의 데이터를 읽을 수 없습니다.

http://technet.microsoft.com/ko-kr/library/ms187916(SQL.90).aspx

어디에 쓰이는지 모르겠다;;

db_denydatawriter

데이터베이스 내의 사용자 테이블에 있는 데이터를 추가, 수정 또는 삭제할 수 없습니다.

http://technet.microsoft.com/ko-kr/library/ms188308(SQL.90).aspx

안써봐서 모른다;;

db_owner

데이터베이스에서 모든 구성 및 유지 관리 작업을 수행할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms180977(SQL.90).aspx

개발할 때 이 권한을 주면 편하다 ㅡ.-;;;

db_securityadmin

역할 멤버 자격을 수정하고 사용 권한을 관리할 수 있습니다.

http://technet.microsoft.com/ko-kr/library/ms188685(SQL.90).aspx

Database Roles에서 사용자를 추가, 삭제, 객체사용권한등을 변경할 수 있다.

Public

사용자를 만들면 들어가있는 권한


어디에 쓰이는 권한인지는 모르겠다.


이렇게 역할 멤버 자격까지 주면 사용자가 추가된다.



저장프로시저를 이용하기위해서는 전처럼 하나하나에 권한을 추가해주어야한다.

프로그래밍 기능<저장 프로시저 에서 해당 저장프로시저에서 오른쪽 클릭을 하여  속성을 눌러 속성창을 연다.

사용권한에 보면 사용자 또는 역할이 있는데 아까 만들었던 사용자(로그인이 아님)를 추가하고 Execute권한에 체크를 한다. 스키마 밑에 보면 '스키마 사용 권한 보기'라는 것이 있는 이것을 누르면 연결된 스키마의 권한 정보가 나온다. 로그인 사용자를 누르고 Execute권한에 체크를 한다.(어느 사이트의 설명에서는 권한을 위임받아서 사용한다고 되있었다.)

유효 사용 권한을 눌러보면 연결이 제대로 됬는지 확인해 볼수 있다.


좀 복잡한 느낌은 들지만 나는 어차피 테이블을 다 만들어놓고 그것에 마쳐 프로그래밍을 하기때문에 어차피 쓰는권한은 한정되있으니 별로 걱정은 되지 않지만....예상보다 구하기 힘든 자료에 당황스러웠다;;;(도움말이 이렇게 허접하게 느껴질줄이야-_-;;)

이제 완벽하니 다음 포맷때는 삽질 말아야지

MSSQL 접속프로그램 다운받기(서버 운영 프로그램도 포함)

MSSQL서버에 접속하는 프로그램을 다운받으려면 아래 주소에 가서
SQL Server Management Studio Express 를 다운받는다
MSSQL 서버를 운영하고 싶다면 SQL Server 2005 Express Edition SP1 을 다운 받는다

http://www.microsoft.com/korea/msdn/vstudio/express/sql/download/

2009년 3월 17일 화요일

ASP- ODBC MYSQL 연동하기

아시는 분들도 있겠지만... ^^



ODBC로는 연결이 잘되는데 OLEDB로 연결하려고 삽질 했네요 ㅡㅡ'

이렇게 간단한걸...



1.준비물

MyOLEDB3.exe (http://www.mysql.com/downloads/download.php?

file=Downloads/Win32/MyOLEDB3.exe&pick=mirror)



2. Connect 부분

"Provider=MySqlProv;Location=xxx.xxx.xxx.xxx;Data Source=디비명;User ID=아이디;Password=패스;"

- 한글부분은 알아서 ^^ (xxx.xxx.xxx.xxx는 ip)



3. 간략 예제

<%

strcon = "Provider=MySqlProv;Location=xxx.xxx.xxx.xxx;Data Source=디비명;User ID=아이디;Password=패스;"

set DbCon = Server.CreateObject("ADODB.Connection")

DbCon.open strcon



SQL_query = "SELECT count(*) FROM 테이블명"

Set RS = DbCon.Execute(SQL_query)



Response.Write " Query : " + SQL_query + "<p>"

Response.Write " Result : "



while not RS.eof

Response.Write RS(0)

Response.Write "<br>"

RS.MoveNext

wend



RS.Close

DbCon.Close



set RS = nothing

set DbCon = nothing

%>


FLEX와 MYSQL 연동

Flex는 MySQL과 직접적으로 연동을 할수가 없습니다.

때문에 Flex->PHP->MySQL->XML->Flex 라는 다소 복잡한 과정을 거쳐야합니다.

(PHP 대신에 ASP 혹은 JSP 등을 사용할수도 있습니다.)

(물론 잘 찾아보면 DB를 연동할수 있는 컴포넌트가 있긴합니다만,

Flex 자체에서 정식으로 지원하지는 않습니다. 자세한 정보를 원하시면

http://code.google.com/p/assql/ 를 참고하시기 바랍니다.)


개략적인 프로그램의 흐름은 다음과 같습니다.

inputID라는 textinput에서 ID를 받아서 버튼을 눌러 PHP파일을 호출합니다.

PHP파일에서는 mxml에서 보낸 id를 받아서 해당 id의 파일 목록을 얻어와서

xml형식으로 만들어서 다시 flex로 보냅니다.


자 다음은 소스를 보도록 합시다.


MXML

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
 <mx:Script>
  <![CDATA[
   import mx.collections.ArrayCollection;
   import mx.controls.Alert;
   import mx.rpc.http.HTTPService;
   import mx.rpc.events.ResultEvent;
   
   private var SQLData:ArrayCollection = new ArrayCollection();
   

   
   private function sendAndReceive(event:ResultEvent):void {
    SQLData = event.result.file; //DB에서 받아온 내용을 배열에 바인딩
   }
   
  ]]>
 </mx:Script>
 
 <mx:HTTPService id="request" method="POST" url="http://xxx.xxx.xxx.xxx/~next2008/index.php" useProxy="false" result="sendAndReceive(event)">

 <!--url은 php파일의 경로이고, result는 php파일 호출후 실행할 함수명입니다.-->
  <mx:request xmlns="*">
   <userID>{inputID.text}</userID>

   <!--실질적으로 php에 데이터 보내는곳입니다. <tag>내용</tag>형식으로 추가하면 됩니다.-->
  </mx:request>
 </mx:HTTPService>
 <mx:Panel title="example"  width="100%" height="255">
  <mx:TextInput id="inputID"/>
 
  <mx:Button click="request.send();" />
 
 </mx:Panel>
</mx:Application>



PHP

<?
    $inputID = $_POST['userID'];

    //Flex에서 보낸 데이터를 받습니다. 변수를 추가로 더 받을때는

    //"$변수 = $_POST['tag'];" 형식으로 합니다.
    $link = @mysql_connect ("MySQL주소", "ID", "패스워드");

    //MySQL이 있는 주소를 적으면 됩니다. php파일이 있는곳에 DB가 있다면

    //localhost 라고 하면 됩니다. ID와 패스워드는 mysql의 아이디와 패스워드입니다.
    $db = mysql_select_db("web", $link);

    //db선택
    $query = "select * from userinfo where id='" .$inputID. "'";
    $result = mysql_query($query, $link) or die ("쿼리잘못");

    //쿼리
    $data = mysql_fetch_array($result) or die("데이터 못넘겨받음(ID이상)");
    $ID = $data[0];
    $db = mysql_select_db($ID, $link);

    //db교체


    $query = "select * from file";
    $result = mysql_query($query, $link) or die("쿼리이상");

    $dataNum = mysql_num_rows($result);
    $fileList = array();
    for($i = 0;  $i < $dataNum;  $i++)
    {
        $data = mysql_fetch_array($result) or die("데이터 잘못넘겨받음");
        for($j = 0;  $j < 4;  $j++)
            $fileList[$i][$j] = $data[$j];
    }

    //데이터를 배열로 받아옵니다.

    for($i = 0;  $i < $dataNum;  $i++)
    {
        $return .= "<file><name>" . $fileList[$i][0] . "</name><upperfolder>" . $fileList[$i][1] . "</upperfolder><size>" . $fileList[$i][2] . "</size><date>" . $fileList[$i][3] . "</date></file>";

    }

    print($return);

    //xml형식으로 만들어서 뿌려줍니다.


    mysql_close($link);


?>



MySQL

db생성-web

create database web;
web/userinfo테이블생성
create table userinfo(id char(10) not null, name char(10) not null, password char(16) not null, nickname char(20) not null, primary key(id));

web/userinfo테이블에 데이터 삽입
insert into userinfo values('tkeo', '최인명', 'asdf', 'Rese');

db생성-tkeo

create database tkeo;

tkeo/file테이블 생성
create table file(fileName char(20) not null, upperFolder char(20) not null, size integer not null, updateDate integer not null, primary key(fileName));

tkeo/file테이블에 데이터 삽입
insert into file values('fghj.exe', 'aaaa', 1301, 20070222);

2009년 3월 12일 목요일

CENT OS FTP 설치 및 설정

FTP를 운영하는 간편한 방법으로 리눅스에 기본으로 설치되있는 VSFTP를 실행해서 사용하는 방법이다.
###VSFTPD 실행####
> service vsftpd start or restart


 

CentOS 기반에서 FTP (proftp) 설치 및 운영하기 more..

2009년 3월 11일 수요일

리눅스 자동 백업 스크립트

그럼 먼저 crond 을 보도록 하자
crond 는 특정 시간이나 날짜(좀 복잡하게도 가능)에 정해진 일을 수행하는 데몬이다.
자세한거는 직접들 찾아보시고
# crontab -e 0 6 * * * /bin/backup.sh

이렇게 명령을 주게되면 crond 에 매일 아침 6시에 /bin/backup.sh 를 실행하라는
것을 의미한다. 자세한 의미는 굳이 설명하지 않겠다.
이러면 crond 는 매일 아침 6정각에 /bin/backup.sh 를 실행한다.

다음은 backup.sh 의 내용이다.

#!/bin/bash
dstring="backup_`date +'%y%m%d'`.tar.gz"  # 파일명을 만들어낸다.
                                                             # 04년06월21일같은경우에
                                                             # backup_040621.tar.gz 를 만든다.
#wall < /bin/start_backup_message             # 접속되어있는 모든 사용자에게
                                                             # 백업이 시작됨을 알리고
#/etc/init.d/network stop                            # 네트워크 서비스를 중지시킨다.
tar cfz $dstring "/home"                        # ex) home 디렉토리를 파일명으로 압축한다.
#/etc/init.d/ network start                           # 네트워크 서비스 재개

Server="Backup Server Address"   # 서버IP
UserID="USERID"                           # ID
Password="PASSWORD"              # backup 받는 유저의 패스워드

ftp -n $Server <<End-Of-Session  # ftp 에 접속 -n 옵션은 자동로그인을 안한다.
user $UserID $Password                # 로그인
binary
put "$dstring"
bye
End-Of-Session

rm -f $dstring                               # 백업파일 삭제

#wall < /bin/end_backup_message  # 백업이 끝났음을 알린다

2009년 3월 4일 수요일

흠.. 고민때리네..

앞으로 어떤 방향으로 흐름을 타고 가야하는걸까..
이도 저도 아닌 소속이 된거 같은데...
일단, 대략 200만원 정도 상당의 다음 트랙 장학금과 현장실습후 지급되는 돈 40만원 정도...
운이 좋다고 해야하나.. 성적은 그닥 잘 안나왔었지만, 운이 따랐는지..
돈으로 받게 되서 어려운 상황에서 한줄기 빛을 본거 같다..
그래, 인턴 3개월후에 내 인생의 방향이 결정될거 같군...
그때까지 이 악물고 미친듯이 해보자..

09.2.27 ~.2.28 먹자파 1박 2일!~

27일 선녀와 나무꾼에서
사용자 삽입 이미지

27일 리조트 도착후 이른 저녁식사 중
사용자 삽입 이미지

27일 화투치다 산책하다가..
사용자 삽입 이미지

28일 리조트 및 호텔 구경하다..
사용자 삽입 이미지

28일 위미리까지 가서 낚시 후 기념샷
사용자 삽입 이미지

2009년 3월 2일 월요일

리눅스 VI 편집기 명령어 정리

 

Vi 에디터 사용법


<Vi의 3가지 Mode>


모 드

전환키

설 명

Command Mode

ESC

문서내의 텍스트를 지우거나, 복사하거나, 추가하거나, 삽입하거나, 옮기거나 할 수 있는 명령을 사용할 수 있는 모드입니다.

Insert Mode

i,a,o,O, ...

문서에 텍스트를 추가하거나, 삭제하거나, 복사할 수 있는 모드입니다.

ex Mode

:

맨 아래 라인에 확장된 명령어를 입력할 수 있도록 해줍니다.


<Command Mode>

편집한 파일을 저장하고 닫고, 다른 파일을 편집하고 싶을 때, ESC를 눌러서 명령을 내릴 수 있는 상태로 변환하고, 다음 명령을 사용한다.


명  령

설  명

ZZ or :wq

저장하고 vi 끝내기

:w [파일이름]

주어진 파일이름으로 파일 저장하기

:w! [파일이름]

주어진 파일이름으로 저장/덮어쓰기

:q!

편집한 내용을 저장하지 않고 vi 끝내기

:e!

편집한 내용을 저장하지 않고 최종 저장된 상태로 파일 열기

:w 새파일이름

현재 작업중인 파일을 새파일이름으로 저장하기

:e 열고_싶은_파일이름

vi를 끝내지 않고 다른 파일 편집하기


<Inset(삽입) Mode>

1. 커서의 이동

   다른 에디터처럼 방향키나, 다른 기능키를 이용하여서도 가능하여 요즘은 아래의 키는 잘 사용하지 않지만 초창기 버전에서는 아래표의 키만 적용되는 버전도 있음


기 능

입력 키

기 능

h

오른쪽으로 한 칸

b

한 단어 뒤로 이동

j

아래로 한 칸

B

특수문자/기호들은 단어로 치지 않고, 한 단어 뒤로 이동

k

위로 한 칸

w

한 단어 앞으로 이동

l

왼쪽으로 한 칸

W

특수문자/기호들은 단어로 치지 않고, 한 단어 앞으로 이동

0

라인의 시작으로 이동

:0

문서의 맨 앞으로

$

라인의 끝으로 이동

:$

문서의 맨 뒤로

^

라인의 첫 번째 단어로 이동










2. 편집 명령


입력 키

기 능

입력 키

기 능

i

insert, 현재 문자 앞에서부터 입력

cw

한단어 change

a

append, 현재 문자 뒤부터 입력

x

한문자 delete

o

현재 줄 아래 한 줄 삽입

O : 현재 줄 위에 한 줄 삽입

y

yank(copy) text, 문자 복사

yw : 단어 복사

yy : 한줄 복사

3yy : 세줄 복사


r

replace


p

put(paste) 현재 줄 다음 줄에 버퍼의 내용을 붙인다.

R

현재 문자 이후부터 replace

P

현재 줄 앞에 버퍼의 내용을 붙인다.

dw

delete word

u

마지막 명령을 Undo

U : 그줄에서 수행한 명령들을 Undo

dd

delete line

J

join, 두 줄을 연결한다.


3. 기타 명령


명  령

설  명

:se nu

:set number

:se nonu

:set nonumber

:set ic

:set noic

^g

각 라인앞에 일련번호를 표시


각 라인앞에 일련번호를 표시하지 않는다.


검색시 대소문자를 구분하지 않는다.5

검색시 대소문자를 구분한다.

현재 라인버호를 표시

:ab ttt the

ttt를 the로 상용구 등록

:e filename

:r filename

:sh

:! command

:r !command

filename 불러와 편집

filename을 불러와 커서 위치에 삽입

shell 나들이

shell 명령어 수행

shell 명령어를 vi 화면내에 출력