반응형

간혹 시스템에서 아주 긴~ log파일 같은 것을 확인해야 할 때가 있는데, vi를 굳이 열어서 맨 끝까지 이동하는 것보다는 계속 기록되고 있는 log파일의 맨 끝부분만 화면을 통해 보는 것이 더 편할 때가 있다.
그럴 때는 tail [filename]을 치면 파일의 맨 끝에서부터 10줄을 화면에 보여준다. 보여지는 줄 수를 변경하고 싶으면 -n 옵션을 통해서 조정 가능하다.

$ tail [filename] -n [라인 수]


추가로, 실시간으로 갱신되어 저장되는 로그 파일의 경우에 변경된 내용을 실시간으로 화면상에서 보고 싶으면 옵션에 "-f"를 추가해 준다.

tail [filename] -f -n [라인 수]

반응형
블로그 이미지

Bryan_

,
반응형

파일(sql구문)로 DB 백업:
$ mysqldump -u[사용자] -p[암호] [백업할 데이터베이스 이름] > db091130.sql
참고로 -d 옵션을 주면 데이터 없이 스키마만 백업한다.

생성된 DB가 utf8을 사용하고 있고 데이터에 한글이 포함되었을 때는 가급적
구문을 추가해줄 것.


백업파일로부터 DB 복구:
$ mysql -u[사용자] -p[암호] [복구될 데이터베이스 이름] < db091130.sql

복구할 때 복구될 데이터베이스는 "create database [데이터베이스이름]"에 의해 미리 생성되어 있어야 한다.
반응형
블로그 이미지

Bryan_

,
반응형
만들어진 테이블들:
mysql> create table DEPARTMENT (
    -> DEPT_CD varchar(10) not null,
    -> NAME varchar(30) not null,
    -> PHONE int(11) not null,
    -> primary key(DEPT_CD)
    -> );

desc RESERVATION;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| RESERVATION_ID | varchar(10) | NO   | PRI | NULL    |       |
| PATIENT        | int(13)     | NO   | MUL | NULL    |       |
| DEPARTMENT     | varchar(10) | NO   | MUL | NULL    |       |
| DOCTOR         | varchar(5)  | NO   | MUL | NULL    |       |
| DATE           | varchar(10) | NO   |     | NULL    |       |
| TIME           | varchar(10) | NO   |     | NULL    |       |
| TYPE           | varchar(20) | NO   |     | NULL    |       |
| GRANTED        | varchar(10) | NO   |     | NO      |       |
+----------------+-------------+------+-----+---------+-------+



발생한 에러:
mysql> alter table RESERVATION drop column DEPARTMENT;
ERROR 1025 (HY000): Error on rename of '.\db_project\#sql-d0_2' to '.\db_project\reservation' (errno: 150)



또다른 시도:
mysql> alter table RESERVATION drop foreign key DEPARTMENT;
ERROR 1025 (HY000): Error on rename of '.\db_project\#sql-d0_2' to '.\db_project\reservation' (errno: 152)


이 두 경우에 대한 문제의 원인분석:
(1) 일단 foreign key constraint부터 지운 후에 drop column을 하는 것이 정상적인 순서이다.
(2) 그런데 foreign key constraint를 내가 테이블 생성할 때에 지정해 주지 않았다.
(3) 따라서 내부적으로 MySQL이 직접 정해준 foreign key constraint의 이름을 알아내야 한다.


마지막으로 foreign key와 관려하여 에러난 상황을 자세히 보고 싶을 때:
mysql> SHOW INNODB STATUS;


그러면 중간쯤에서 아래와 같은 자세한 설명을 볼 수 있고, 거기서 contraint name을 찾을 수 있다.
------------------------
LATEST FOREIGN KEY ERROR
------------------------
091130 21:10:55 Error in foreign key constraint of table db_project/reservation:

there is no index in the table which would contain
the columns as the first columns, or the data types in the
table do not match the ones in the referenced table
or one of the ON ... SET NULL columns is declared NOT NULL. Constraint:
,
  CONSTRAINT "reservation_ibfk_2" FOREIGN KEY ("DEPARTMENT") REFERENCES "departm
ent" ("DEPT_CD") ON DELETE CASCADE


이제 foreign key constraint와 column name을 차례대로 지워주면 된다.
mysql> alter table reservation drop foreign key reservation_ibfk_2;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table reservation drop column DEPARTMENT;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

반응형
블로그 이미지

Bryan_

,
반응형

$ htpasswd -c /etc/apache2/dav_svn.passwd [username]
New password:
Re-type new password:
Adding password for user [username]
$


아파치를 통해 authorization을 할 때, 새로운 사용자 계정을 추가하여 SVN 사용하도록 하려면 위와 같이 추가할 수 있다.
반응형
블로그 이미지

Bryan_

,
반응형
테스트 환경: MS Visual Studio 2005 Professional (다른 버전에서는 작동여부를 알 수 없음)

파이어폭스에서 탭 전환을 하려다가 실수로 비주얼스튜디오에서 단축키를 누르면서 알게 된 몇몇 (왠지 쓸데없어 보이지만ㅋㅋ) 기발한 단축키들을 발견했다.
몇몇 키는 알고 있으면 코드 수정할 때 유용하게 쓰일 수도 있을 듯.. ^^


Ctrl + T:
커서 바로앞의 글자와 바로뒤의 글자 위치를 바꾸고, 커서도 바뀐 곳으로 넘어간다.

예) 1aaaaaaa 라고 입력해 두고, 1 바로 뒤에 커서를 둔 후에
Ctrl + T 를 세 번 누르면, aaa1aaaa 가 된다.


Shift + Ctrl + T:
특수문자(공백 포함)를 사이에 둔 양 옆의 문자열의 위치를 서로 바꾼다.
가장 적절한 용도는 operator를 사이에 두고 양쪽 변수의 위치를 바꾸는 게 아닐까 예상된다.

예) int myVariable = yourVariable ;
위의 구문에서, (맨끝 세미콜론은 제외하고) 밑줄 친 곳의 아무 곳에서나 커서를 두고 Shift + Ctrt + T를 누르면,
int yourVariable = myVariable; 로 바뀐다.

예2) 만약 맨 끝의 세미콜론 뒤에 커서를 두고 단축키를 누르면,
그 아랫줄에 있는 처음 보이는 어떠한 문자열과 위치가 바뀐다.


Ctrl + U:
커서 바로 뒤에 위치한 글자가 대문자인 경우, 소문자로 바꾼다.
커서 바로 뒤의 글자가 영어 대문자가 아닐 경우 아무 변화 없음.


Ctrl + L:
커서가 위치해 있는 라인 전체를 지운다.
이것은 유닉스의 vi에서 입력모드가 아닐 때 "dd"를 누르는 것과 같은 효과.


Ctrl + W:
커서가 위치해 있는 곳에 있는 곳의 '단어'를 선택한다.
기본적으로 공백, 콤마 등으로 구분되는 한 단어를 선택해 준다. 마우스 더블클릭과 같은 기능.
만약 특수문자와 공백의 조합으로만 된 문자열에서 단축키를 누르면, 공백으로 구분되는 특수문자들의 모임을 선택한다.
반응형

'Development' 카테고리의 다른 글

if-else vs. if-return: 코딩 스타일과 가독성의 차이  (1) 2017.03.28
블로그 이미지

Bryan_

,