[-문구-Compeople-문구-]

+::System::/Linux2013. 5. 3. 11:13

리눅스 파일안에 내용 일괄수정 팁.

* mysql 의 replace 명령어를 이용한 파일내용 일괄 수정
find . -type f -name '*' -exec /usr/local/mysql/bin/replace oldcontent netcontent -- {} \;

 

* MySQL 설치시 함께 설치되는 replace 라는 명령을 이용한 파일 내용 치환.

find . -type f -name '*' -exec replace dotname dothost -- {} \;

*perl 을 이용한 파일 일괄 변경
find . -name *.* -exec perl -p -i -e 's/old/new/g' {} \;

 

Posted by SC-Compeople
++ETC/Study2013. 4. 29. 18:03

1. 다음과같이 출력되는 프로그램을 작성하시오.
==== 다음 ===
출력 문자수 입력 : 13
12345678910123
      *
     ***
    *****
   *******
  *********
 ***********
*************

계속하려면 아무 키나 누르십시오 . . .
 
== Source
#include <stdafx.h>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
 
int main ()
{
 cout << "출력 문자수 입력 : ";
 int num;
 cin >> num;
 int halfnum = num / 2;
 
 for (int i = 0; i < num; i++)
  cout <<  ((i % 10) + 1);

 cout <<  endl;
 
 for (int i = 0; i < (halfnum + 1); i++)
 {
  for (int j = 0; j < num; j++)
  {
   if ((j >= (halfnum - i)) && (j <= (halfnum + i)))
   {
    cout << "*";
   }
  else
  {
   cout << " ";
  }
 
 }
 cout <<  endl;
}
 
cout << endl;
 
//system("pause");
return 0;
}
 
 
 
2. 다음과같이 출력되는 프로그램을 작성하시오.
==== 다음 ===
출력 문자수 입력 : 11
123456789101
***********
 *********
  *******
   *****
    ***
     *
계속하려면 아무 키나 누르십시오 . . .
 
== Source
#include <stdafx.h>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
 
int main ()
{
 cout << "출력 문자수 입력 : ";
 int num;
 cin >> num;
 int halfnum = num / 2;
 
 for (int i = 0; i < num; i++)
  cout <<  ((i % 10) + 1);
 cout <<  endl;
 
 for (int i = 0; i < (halfnum + 1); i++)
 {
  for (int j = 0; j < num; j++)
  {
   if ((j >= (halfnum - (halfnum - i))) && (j <= (halfnum + (halfnum - i))))
   {
    cout << "*";
   }
   else
   {
    cout << " ";
   }
  }
  cout <<  endl;
 }
 //system("pause");
 return 0;
}
 
 
 
3. 2부터 N까지의 소수와 소수의 합을 구하는 프로그램을 작성하시오.
== Source
#include <stdafx.h>
#include <stdio.h>
 
int main()
{
 int i,j,k,sum=0;
 printf("입력: ");
 scanf("%d", &k);
 printf("\n");

 for(i=2;i<=k;i++)  // 2에서 100까지
 {
  for(j=2;j<i;j++) if(i%j==0) break;  // 2부터 자신까지 나누어서 나누어 떨어지면 확인 끝
  if(i==j)  // 자신의 수로만 나누어 떨어지면 소수
  {
   printf("%d ",i);  // 소수를 출력하고
   sum=sum+i;  // 합계에 누적
  }
 }
 printf("\n합계 : %d\n",sum);
 return 0;
}
 
== Result
입력: 200

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107
109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
합계 : 4227
계속하려면 아무 키나 누르십시오 . . .
 
 
4.정수형 배열(jungsu[20])에 srand()함수와 rand()함수를 사용하여 200보다 작은 값을 저장하고, 저장된 배열 값을 오름차순 정렬하는 프로그램을 작성하시오.
== Source
#include <stdafx.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 

#define SWAP(x, y, t) ( (t)=(x), (x)=(y), (y)=(t) )
 
int n=20;          /* 실제 레코드의 수 */
int jungsu[20];
void quick_sort(int, int);  /* 퀵정렬 */
 
void main(void)
{
 int i;
 printf("Before array :\n"); /* 정렬전 레코드 출력 */

 srand(time(NULL));

 for(i=0; i<n; i++) {       /* 난수 생성 및 출력 */
  jungsu[i] = rand() % 200; /*난수 발생 범위 0~199*/
  printf("%d ", jungsu[i]);
 }

 printf("\n");

 quick_sort(0,n-1);        /* 퀵정렬 호출 */

 printf("\nSorted array :\n"); /* 정렬된 레코드 출력 */

 for(i=0; i<n; i++)
  printf("%d ", jungsu[i]);
 printf("\n");
}
 
void quick_sort(int left, int right)
{
 int pivot, i, j, temp;
 if(left<right)
 { /* 리스트에 2개 이상의 레코드가 있을 경우 */
  i = left;
  j = right+1;
  pivot = jungsu[left]; /* 피벗 설정 */
  do {
   do /* 왼쪽 리스트에서 피벗보다 큰 레코드 선택 */
    i++;
   while(jungsu[i]<pivot);

   do /* 오른쪽 리스트에서 피벗보다 작은 레코드 선택 */
    j--;
   while(jungsu[j]>pivot);

   if(i<j) SWAP(jungsu[i], jungsu[j], temp); /* 레코드 i, j 교환 */
  }
  while(i<j); /* 인덱스 i,j가 엇갈리지 않는 한 반복 */
  SWAP(jungsu[left], jungsu[j], temp); /* 레코드 j와 피벗 교환 */
  quick_sort(left, j-1); /* 왼쪽 부분리스트를 퀵정렬 */
  quick_sort(j+1, right); /* 오른쪽 부분리스트를 퀵정렬 */
 }
}

== Result
Before array :
110 120 177 168 4 190 74 155 185 33 39 154 96 141 191 99 25 114 4 19

Sorted array :
4 4 19 25 33 39 74 96 99 110 114 120 141 154 155 168 177 185 190 191
계속하려면 아무 키나 누르십시오 . . .

Posted by SC-Compeople
+::System::/WIndows2013. 3. 26. 10:21

어느날, 잘되던 원격접속(원격데스크탑) 갑자기 접근이 불가능해지면서

" 명령 처리에 사용할 서버 저장 공간이 부족합니다. " 라는 메시지를 띄울때

해결방버::


1. 시작->실행-> regedit 입력후 실행

 

2. 아래 레지스트리로 이동
LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

 

3. IRPStackSize (REG_DWORD 형식으로 새로만들기)

값이 없으면 추가 (Default로 값은 15)

 

4. Default값이 없으면 + 3 하신 값을 입력 후 PC 리부팅

 

5. 공유폴더 접근이 안될때는 해당 값을 +3씩 늘려보면서 시도해 보시면 됩니다.
(최대 IRPStackSize 값: 50)

 

거의 IRPStrackSize만 새로 생성해줘도 해결이 되네요.

 

**참고 : http://blog.naver.com/kimhakjjin?Redirect=Log&logNo=80119706861

 

Posted by SC-Compeople
++ETC/Util2013. 3. 19. 20:26

 

putty.exe

Posted by SC-Compeople
+::SmartPhone::/Android2013. 2. 18. 14:53

** 출처 : http://osnews.kr/909

 

PC에서 플래시를 보려면 플래시 플레이어가 설치되어 있어야 합니다. 윈도를 처음 설치하였을 때에는 플래시가 설치되어 있지 않아 플래시 사이트로 들어가도 플래시가 나오지 않죠. 플래시를 사용하려면 플레이어를 설치해야만 합니다. PC의 경우 플래시를 누르면 플래시 플레이어를 다운로드할 수 있는 페이지로 이동할 수 있게 해 줍니다.


모바일에서도 플래시를 보러면 플래시 플레이어가 설치되어 있어야 합니다. 그런데 Adobe Flash player는 모바일용으로 더 이상 만들지 않는다고 Adobe에서 공지했습니다. 그리고 더 이상 공개도 하지 않고요.


이로 인해 아이스크림 샌드위치(ICS)와 같은 안드로이드 OS 4.0에서는 플래시 플레이어를 다운로드할 수가 있었으나 새로 나온 젤리빈에서는 더 이상 플래시 플레이어를 더 이상 다운로드할 수 없습니다.


갤럭시 노트 2, 갤럭시 S3나 넥서스 G와 같은 젤리빈이 탑재되어 나온 기기에서는 플래시를 사용할 수 없습니다. 옵티머스 G등 다른 기기도 OS를 업데이트하면 사용을 하지 못하게됩니다.



플래시가 들어가 있는 페이지로 들어가면 플래시가 나와야하나 플래시를 보여주지 못합니다.(아래 그림은 이미 플래시를 설치한 상태라 크롬에서 확인한 것입니다. 크롬에서는 플래시 플레이어를 설치하여도 플래시를 보여주지 못합니다.)





갤럭시 S3나 갤럭시 노트 2와 같은 젤리빈 환경에서는 플래시 사용이 불가능한가? 아닙니다. 갤럭시 S3, 갤럭시 노트 2와 같은 장비에서도 플래시를 사용할 수 있습니다. Adobe Flash Player만 설치하면 젤리빈 환경에서도 가능합니다. 다행이 아이스크림 샌드위치(ICS)로 나온 플래시 플레이어를 쓸 수 있기 때문이죠. 단 크롬이 아닌 순정 브라우저를 사용해야 합니다.






동일한 페이지에서 플래시 플레이어를 설치한 갤럭시 노트에서 본 화면입니다. 이제 플래시가 제대로 보이죠.



아래 플래시 플레이어를 다운로드 받아 설치하면 갤럭시 노트 2, 갤럭시 S3에서 순정 브라우저를 사용하면 플래시 플레이가 가능합니다.

 

Adobe_Flash_Player_11.1-111115007.apk

아직 플래시 플레이어가 설치되지 않은 아이스크림 환경에서도 위 파일을 설치하면 플래시 재생이 가능합니다. 옵티머스 G나 베가 R3, 옵티머스 뷰 2 와 같은 환경에서도 플래시가 재생 가능하게 되는 것이지요

 

** 출처 : http://osnews.kr/909

 

Posted by SC-Compeople
+::System::/Solaris2013. 2. 1. 13:32

솔라리스 네트웍 설정 Unix Linux System 
2006/02/11 23:17

http://blog.naver.com/dalmagru/70001676448
 

1. 처음에 ifconfig -a 을 쳐본다..

그러면 inet: . . . . netmask . . . . broadcast . . . . 으로 나타나 있다..

 

2. 없으면 추가한다..

# ifconfig elx0 plumb

# ifconfig elx0 192.168.123.33  broadcast 192.168.123.255 netmask 255.255.255.0

# ifconfig elx0 up

 

=> 세 단계를 거치는 이러한 작업은 다음과 같이 하나의 명령으로 수행

# ifconfig elx0 192.168.123.33  broadcast 192.168.123.255 netmask 255.255.255.0 plumb up

 

3. up과 down 인자를 이용하여 사용가능, 불가능 상태

# ifconfig elx0 up   //디바이스를 사용 가능 상태

# ifconfig elx0 down   //불가능한 상태

 

4. 네트워크 정보를 포함하는 파일

  - ls /etc/inet

  - cat /etc/inet/hosts | grep -v ^#

  - cat /etc/hostname.elx0

  - cat /etc/nodename

  - cat /etc/inet/netmasks | grep -v ^#

 

5. 라우팅 경로 정보

# netstat -rn

# netstat -r

 

6. 게이트웨이

- 게이트웨이와 라우터는 보통 같은 의미로 사용되지만 게이트웨이는 라우터의 역할과 함께 다양한 기능들을 추가로 수행하는 경우가 많다.

- 패킷 변환 , 프로토콜 프레임 조정, 패킷 필터링 등

- /etc/defaultrouter

# cat > /etc/defaultrouter

 166.104.7.1

 ^D

 

7. 정적 라우팅 조정

# route add - host 192.168.123.33  192.168,.123.33  1  add host 192.168.123.33: gateway 192.168.123.33

 - 작업명령어: add와 delete를 사용하여 특정한 경로를 추가하거나 삭제

 - 대상 지정: -host, -net을 이용하여 라우팅 경로를 조정

 - 경로지정

 - 플래그: 이 값은 보통 1또는 0을 사용한다.

 - 재부팅 하지 않고 사용하려면 다음과 같이 콘솔 프롬프트에서 기본 게이트웨이를 추가

   # route add default 192.168.123.22

 

 

====================================================================

 

 

게이트 웨이 추가

#route add default 192.168.123.1

 

게이트 웨이 확인

#netstat -rn

 

 

x86 솔라리스9 에서 DHCP 클라이어트로 설정시 호스트 이름 설정하기(확실하지 않음)

 

1. /etc/nodename

호스트이름을 넣어준다

 

2. /etc/init.d/network 파일의 다음 부분을 아래와 같이 고치 십시요.

 

[변경전]

"dhcp") hostname=`/sbin/dhcpinfo Hostname` ;;

 

[변경후]

# "dhcp") hostname=`/sbin/dhcpinfo Hostname` ;;

"dhcp") hostname=`shcat /etc/nodename` ;;

 

3. /etc/init.d/inetsvc 파일의 다음 부분도 아래와 같이 바꾸십시요.

 

[변경전]

hostname=`/sbin/dhcpinfo Hostname`

 

[변경후]

# hostname=`/sbin/dhcpinfo Hostname`

hostname=`/usr/bin/cat /etc/nodename`

 

 

4. # cp /etc/nsswitch.dns /etc/nsswitch.conf

 

netstat -rn 에서 default 항목이 있으면 기본게이트웨이는 설정된 것이다.

 

 

고정 IP 일 경우 설정하기

1. /etc/nodename

파일에 호스트 이름을 저장한다.

 

2. /etc/hostname.interface

솔라리스 설치시 자동으로 만들어지는 파일이지만 구성을 변경할때 IP 주소나 인터페이스, 호스트 이름을 저장한다.

 

3. /etc/inet/hosts

파일을 편집해서 추가한 네트웍 인터페이스에 할당한 IP 주소와 호스트 이름을 입력하고 서버의 IP 주소를 저장한다.

라우터의 이름과 주소를 입력한다.

 

4. /etc/defaultdomain

도메인 이름을 저장한다.

 

5. /etc/defaultrouter

라우터의 이름을 입력한다.(주소는 /etc/inet/hosts 파일에 있어야 한다.)

 

6. /etc/inet/netmasks

network-number    netmask

의 형식으로 입력한다.

 

7. 다음을 실행하거나 /etc/nsswitch.conf 파일을 수정한다

# cp /etc/nsswitch.dns /etc/nsswitch.conf

 

8. 시스템을 재시작한다.

 

 

 

 

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

솔라리스 설정 방법

 

1. 네트워크 관련 설정 파일

/etc/hosts

예) [kts032]/etc> more hosts

210.222.20.29   kts032  loghost

 

/etc/netmasks

예) [kts032]/etc> more netmasks

210.222.20.0    255.255.255.128

 

/etc/defaultrouter

예) [kts032]/etc> more defaultrouter

    210.222.20.1

 

DNS Client 설정

/etc/resolv.conf

예) [kts032]/etc> more resolv.conf

    nameserver 128.134.130.101

    nameserver 128.134.130.102

 

/etc/nsswitch.conf

예) [kts032]/etc> more nsswitch.conf

    group:      files

    hosts:      files       dns  -----> 이부분

 

2. 인터페이스 확인

[ktn001]/staff/kth> etherstat

=========================================

devices  status  speed  mode  transceiver

=========================================

hme0     UP      100Mb  Full  Internal

hme1     DOWN    100Mb  Full  Internal

=======================================

 

2-1. 수동 설정

-기본값으로 UP / DOWN

#ifconfig eth0 plumb (사용)

#ifconfig eth0 up

#ifconfig eth0 down

#ifconfig eth0 unplumb(사용안함)

 

-값을 지정하여 올리기

#ifconfig hem0 inet 200.200.200.200 netmask 255.255.255.0 broadcast 100.100.100.255 up

#/usr/sbin/route add net 10.0.0.0/8 172.24.65.1 1

#/usr/sbin/route add net 172.16.0.0/12 172.24.65.1 1

#/usr/sbin/route add net 192.168.0.0/16 172.24.65.1 1

 

3. ndd 사용

hme: (ifconfig 로 정보확인)

# ndd -set /dev/hme instance 0

# ndd -set /dev/hme adv_100fdx_cap 1

# ndd -set /dev/hme adv_autoneg_cap 0

 

 

=========================================================================

 

재부팅후 수정해야할 파일들은 아래와 같습니다.

/etc/hostname.[interface_name]

/etc/hosts

/etc/defaultrouter

/etc/nodename

/etc/nsswitch.conf

/etc/resolv.conf

 

vi /etc/hostname.rtls0

이 파일에는 호스트의 이름정보만 들어있으면 됩니다.

ex) www01

 

vi /etc/hosts

이 파일에는 시스템의 IP와 loop back, 호스트네임이 들어있어야 됩니다.

ex) 127.0.0.1        localhost

      192.168.1.3    www01      loghost

 

vi /etc/defaultrouter

이 파일에는 Gate Way만 들어있으면 됩니다.

ex) 192.168.1.254

 

vi /etc/nodename

이 파일 역시 호스트의 이름정보만 들어있으면 됩니다.

ex) www01

 

vi /etc/nsswitch.conf

nslookup, 도메인정보를 찾기위해 시스템이 참조하는 파일인데요.

/etc/nsswitch.dns라는 파일을 카피하여 nsswitch.conf라고 하면됩니다.

그럼 원본 nsswitch.conf를 적당한 이름으로 바꿔주면 되겠죠?

저는 nsswitch.conf.orig 라고 바꿨습니다.

ex) mv nsswitch.conf nsswitch.conf.orig

     cp nsswitch.dns nsswitch.conf

 

vi /etc/resolv.conf

이 파일에는 DNS정보만 들어있으면 됩니다.

ex) search kns.kornet.net

      nameserver 168.126.63.1

      nameserver 168.126.63.2

 

이제 재 부팅하는 일만 남았습니다.

재부팅때 꼭 이 명령어를 사용하여 재부팅 해주세요.

shutdown -i5 -g0

 

그럼 재부팅 되면서 자동으로 네트웍 정보를 Load합니다.

재부팅되면 콘솔에 nslookup을 쳐보세요.

 

Posted by SC-Compeople
+::System::/Linux2013. 2. 1. 13:26

서버를 다운시키지 않고 서비스를 재시작

 

예를 들어 dns 같은 경우에는

in.named(named) 라는 daemon에 의해서 수행되므로 다음과 같은 명령을 주신후에
process id에 kill을 사용하여 HUP signal을 보내면 다시 data를 읽어들여
셋팅을 하게 됩니다.

 

** ps명령어로 named 프로세스번호(PID) 확인
%ps -ef : grep named(또는 in.named)
root 2123 1 0 Sep 03 ? 03:17 named(또는 in.named)
- PID 2123번으로 확인됨.

 

%whoami
root

 

%kill -HUP 2123
- 위에서 확인된 PID 2123을 kill명령어로 재시작.

 

%ps -ef : grep named(또는 in.named)
root 2123 1 0 Sep 03 ? 03:17 in.named
- ps명령어오 확인결과, 정상적으로 구동되는것을 확인

Posted by SC-Compeople
+::DataBase::/Oracle2012. 11. 6. 23:31
+::DataBase::/Mysql2012. 10. 22. 21:06

1. 특정 데이터베이스의 특정 테이블 복구

root@localhost # myisamchk -r /MYSQL설치경로/데이터베이스명/테이블명.MYI

ex) test 데이터베이스의 test 테이블 복구시

myisamchk -r /usr/local/mysql/data/test/test.MYI

※ mysql 서버가 구동되지 않고 있어도 사용 가능.

 

2. 전체 데이터베이스 체크 및 복구

root@localhost # mysqlcheck -Aao --auto-repair -u root -p

※ mysql 서버가 구동되고 있어야 사용 가능

 

3. 쿼리를 이용한 테이블 복구

root@localhost # mysql -u root -p

> use 데이터베이스명;

> lock tables 테이블명 read;
> repair table 테이블명;
> unlock tables;
> check table 테이블명;

※ 깨진 테이블을 lock 걸고 복구 한다.

 

[출처] http://blog.naver.com/sihal7?Redirect=Log&logNo=110130817281

Posted by SC-Compeople
+::System::/Linux2012. 10. 18. 19:01

* 언어셋 관련. 파일 수정

[root@localhost install]# vi /etc/sysconfig/i18n

 

* i18n파일이.. OS설치시 언어부분 설정사항과, O/S버젼이나 종료에 따라 다르게 나온느듯 하다.

 

* centos 5.2 / 64bit 경우. 아래 한줄이 있었다.

LANG="ko_KR.UTF-8"

* 일단. 주석처리하고..

#LANG="ko_KR.UTF-8"
#아래 4줄 추가.

LANG="ko_KR.eucKR"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

 

* 수정한 파일 시스템 적용 / source명령어로 위에서 수정한 i18n 파일을 적용.

[root@localhost install]# source /etc/sysconfig/i18n

 

* 정상적으로 리눅스 시스템 콘솔에서 한글부분 사용 및 출력 가능합니다.

 

* 위 사항의 경우 다양한 환경이나. 상황에 따라.. 달라지는듯 합니다. 어떤데는 위와같이 적용해도 한글이 안먹는 경우가 있습니다. 좀더 정확한 부분은.. 더 찾아봐야 할듯 합니다.

 

** 참고 i18n파일

* i18n 파일내용

\#LANG="ko_KR.eucKR"
#SUPPORTED="en_US.UTF-8;en_US:en:ko_KR.eucKR:kor_KR:ko"
#SYSFONT="latarcyrheb-sun16"
#LANG="en_US.UTF-8"
#SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"
#SYSFONT="latarcyrheb-sun16"
LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"

 

* OS정보 : CentOS release 5.2 (Final) / 32bit

Posted by SC-Compeople