블로그 이미지
Rootrator
1개를 알면 모르는 10개가 튀어나온다..!

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2014. 6. 24. 16:49 Linux


소유자가 userA인 파일들만 userB로 변경하고 싶을경우


find /경로 -user "userA" | xargs chown "userB"."groupB"


위와 같은 명령어 조합으로 가능하지만


파일 경로에 공백이 있을경우나, 파일수가 많은 경우 오류가 발생한다.


위 명령어보다 더 간단한게 chown 의 from옵션이 있다.


chown -R userB.groupB /경로 --from=userA.groupA





반응형
posted by Rootrator
2014. 5. 27. 15:34 Linux

php 컴파일시에 


Note that the MySQL client library is not bundled anymore!


위와 같은 에러가 뜨는 경우가 있는데,


apache를 컴파일 할때 --with-mpm-worker로 옵션을 줄 경우 


아파치는 Thread로 처리를 하지만 mysql은 컴파일 할 때 Thread-safe 옵션을 주지 않아서


libmysqlclient_r이 생성되지 않았기 때문이다.


prefork방식으로 처리시에는 에러가 뜨지 않는다.


mysql 컴파일시에 --enable-thread-safe-client 옵션을 추가한다.



또는 mysql을 설치하지 않았거나, rpm으로 설치 했을때


[root@localhost ~]# yum install -y mysql-devel


명령어로도 생성이 된다.

반응형
posted by Rootrator
2014. 5. 21. 15:36 Linux

mdadm를 이용한 Soft RAID 1 구성



아래 2개의 디스크를 미러링

/dev/sdb

/dev/sdc


기본적으로 2개의 디스크 모두 fdisk를 통해 파티셔닝을 진행하고


시스템 타입을 fd  (Linux raid auto)로 잡아준다.


[root@localhost ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x2a950de1.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.


Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)


The device presents a logical sector size that is smaller than

the physical sector size. Aligning to a physical sector (or optimal

I/O) size boundary is recommended, or performance may be impacted.


WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').


Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4):

Value out of range.

Partition number (1-4): 1

First cylinder (1-243201, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-243201, default 243201):

Using default value 243201


Command (m for help): t

Selected partition 1

Hex code (type L to list codes): fd

Changed system type of partition 1 to fd (Linux raid autodetect)


Command (m for help): l


 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris

 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-

 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-

 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-

 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx

 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data

 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .

 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility

 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt

 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access

 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O

 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor

 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs

 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT

 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/

10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b

11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor

12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor

14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary

16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS

17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE

18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto

1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep

1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT

1e  Hidden W95 FAT1


Command (m for help): p


Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes

255 heads, 63 sectors/track, 243201 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk identifier: 0x2a950de1


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1      243201  1953512001   fd  Linux raid autodetect

Partition 1 does not start on physical sector boundary.


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.


위와 똑같이 /dev/sdc도 파티셔닝을 끝나면 현재 시스템에 레이드노드를 확인한다.


[root@localhost ~]# ls -al /dev/md*

ls: cannot access /dev/md*: 그런 파일이나 디렉터리가 없습니다


레이드 노드가 없기 때문에 새로이 생성해 주며, 있을 경우 삭제후 재생성해 준다.


[root@localhost ~]# mknod /dev/md1 b 3 10


mknod의 옵션은 mknod (장치명) (옵션) [major] [minor]


옵션은 

b : 블록 디바이스 타입

c : 문자 디바이스 타입

u : c와 동일함

p : FIFO 타입


블록이나 디바이스 명은 파일의 주번호와 부번호를 지정해 줘야 하는데


0-256사이의 숫자로 지정이 가능하다. 주번호만 존재하면 장치 한계를 256개 이므로 부번호와 함께 사용한다.



이제 mdadm으로 레이드를 구성하자.


[root@localhost ~]# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

mdadm: Note: this array has metadata at the start and

    may not be suitable as a boot device.  If you plan to

    store '/boot' on this device please ensure that

    your boot-loader understands md/v1.x metadata, or use

    --metadata=0.90

Continue creating array? y

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md1 started.


아래 명령어로 레이드 구성을 확인할 수 있다.

[root@localhost ~]# mdadm --detail /dev/md1


이제 파티션을 포멧후 파일시스템을 생성하고 마운트해서 사용하면 된다.


/etc/fstab에 기록하거나 마운트 후에 재부팅 하면 /dev/md1이 임의의 숫자로 변경이 될 경우가 있는데


이 경우는 /etc/mdadm.conf가 없어서 그러니


[root@localhost ~]# mdadm --detail --scan > /etc/mdadm.conf 


위 명령어로 설정 파일을 생성해 주면 재부팅 해도 정상적으로 잡혀있다.



레이드가 정상적으로 잡혀있으면 아래 명령어로 디스크 상태를 볼수 있는데

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]

md127 : active raid1 sdb1[1] sdc1[0]

      1953380736 blocks super 1.2 [2/2] [UU]


만약 디스크 2개의 디스크중 하나가 이상이 생겨 제기능을 하지 못할경우


[_U] 혹은 [U_] 로 표시가 된다.

반응형
posted by Rootrator
2014. 4. 29. 13:14 Windows

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=파일경로; Extended Properties=Excel 8.0;"

Microsoft JET Database Engine 오류 '80004005'

지정되지 않은 오류입니다.


ASP에서 업로드한 Excel파일의 값을 읽어 낸 후 DB에 insert하는 페이지에서 위와 같은 에러가 났다.


이같은 경우엔 Excel Driver ODBC를 설정해 줘야한다.


에러 내용중에 Extended Properties가 Execl 8.0일 경우 Office 97-2003 이며


Excel 12.0 일 경우 2010이상이다.



2007 Driver 다운로드센터 (Excel 8.0)

http://www.microsoft.com/ko-kr/download/confirmation.aspx?id=23734


2010 Driver 다운로드센터 (Excel 12.0)

http://www.microsoft.com/ko-kr/download/details.aspx?id=13255


설치후에 ODBC에서 추가해 주면 된다.

반응형
posted by Rootrator
2014. 3. 24. 16:55 Linux



Setting up Group Process

Setting up repositories

not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet


위와 같은 에러가 뜨거나


Cannot find a valid baseurl for repo: update

Error: Cannot find a valid baseurl for repo: update



위와 같은 에러가 뜰 경우 repo수정을 통해서 사용가능케 해보자.


첫번째 방법은

[root@localhost ~]# vi  /etc/yum.repos.d/CentOS-Base.repo

 

파일을 열어서


mirrorlist를 주석처리 하고

baseurl을 아래와 같이 변경해준다.


32비트

baseurl=http://vault.centos.org/4.3/os/i386/


64비트

baseurl=http://vault.centos.org/4.3/os/x86_64/


[base], [update], [addons], [extras], [centosplus], [contrib] 모두 수정


두번째 방법은

/etc/yum.repo.d/CentOS-Base.repo 파일의 이름을 변경해 준 후에 CentOS에서 제공하는 repo파일을 받는것


[root@localhost ~]# mv /etc/yum.repo.d/CentOS-Base.repo /etc/yum.repo.d/CentOS-Base.repo.bak

[root@localhost ~]# wget http://vault.centos.org/4.9/CentOS-Base.repo -O /etc/yum.repo.d/CentOS-Base.repo


후에 혹시나 모르니 캐시 파일을 삭제

[root@localhost ~]# rm -rf /var/cache/yum/*




반응형
posted by Rootrator
2014. 3. 13. 17:04 Linux


카드결제 모듈을 홈페이지에 추가하려고 하면


3가지 컴파일 옵션이 들어가야 한다.

--with-openssl

--with-mcrypt

--enable-sockets


php -m 명령어로 올라와 있는 모듈을 확인할 수 있고


소스컴파일 경우 php설치 디렉토리에서 config.status 파일안에 컴파일 옵션으로도 확인이 가능하다.


/usr/bin/ld: cannot find -lltdl 에러는 openssl을 컴파일 할때 간혹 생기는데 


이 오류는 아래 패키지를 설치하여 해결할 수 있다.


[root@localhost ~]# yum -y install libtool-ltdl-devel

반응형
posted by Rootrator
2014. 3. 10. 11:15 Linux

Warning: session_start(): Cannot send session cache limiter - headers already sent

위 에러는 PHP 세션 관련해서 생기는 오류인데 해결법에 대해 써보도록 하겠다.

첫번째는 session_start() 구문을 주석처리 해버리는것..

오류는 뜨지 않겠지만 일부 기능이 제대로 작동하지 않을수 있다.


두번째는 session_start() 구문을 PHP코드의 제일 상단에 위치할것.
 
구문 앞에 공백이 존재하면 안된다.


세번째는 소스파일을 저장시 UTF-8 BOM 없음 선택하고 저장해야 한다.

UTF-8 헤더가 추가되어 있을 경우에 위 에러가 뜨기 때문


네번째는 php.ini에서 output_buffering=On으로 변경하고 아파치 재시작한다.


반응형

'Linux' 카테고리의 다른 글

CentOS 4.x yum 실행시 에러  (0) 2014.03.24
php 컴파일 에러 /usr/bin/ld: cannot find -lltdl  (0) 2014.03.13
압축된 백업파일에서 특정 디렉토리만 풀기  (0) 2014.02.25
Linux 시간 설정하기  (0) 2014.02.06
PHP 5.3 사용  (0) 2013.10.01
posted by Rootrator
2014. 2. 25. 15:34 Linux


디스크 문제로 백업파일을 압축하여 보관하는건 굉장히 흔한 일이다.



하지만 간혹가다가 일부 디렉토리만 복원을 해야 하는경우에


압축파일 용량을 보니 기가 단위로 넘어가면 굉장한 시간이 소요된다.


이럴경우 디렉토리 경로만 알면 특정 디렉토리만 빼올수 있다.


[root@localhost ~]# tar -xvzfpC 백업파일.tar.gz "압축해제 파일이 위치할 경로" "압축을 해제하고 싶은 경로"


C옵션으로 특정 디렉토리만 푸는게 가능하다.



반응형

'Linux' 카테고리의 다른 글

php 컴파일 에러 /usr/bin/ld: cannot find -lltdl  (0) 2014.03.13
Cannot send session cache limiter - headers already sent  (0) 2014.03.10
Linux 시간 설정하기  (0) 2014.02.06
PHP 5.3 사용  (0) 2013.10.01
soap사용하기  (0) 2013.08.27
posted by Rootrator
2014. 2. 6. 11:33 Linux


리눅스 설치후 초기에 시간을 잡아준 후에 며칠 후 시간에 오차가 있는 경우가 종종 발생한다.


간단한 방법은 cron에 rdate 명령어와 hwclock(clock) 명령어를 주기적으로 걸어주는 것..


하지만 시스템의 timezone이 잘못 잡혀 있다면 엉뚱한 시간으로 표기된다.



[root@localhost ~]# date

2014. 02. 06. (목) 02:14:53 GMT

위는 GMT로 설정되어 있는 경우다. 


기준이 대한민국/서울로 잡혀 있어야 하므로 KST로 맞춰줄 필요가 있다.


timezone설정은 우선/etc/localtime을 ls 명령어로 확인해 보자.

[root@localhost ~]# ls -al /etc/localtime

lrwxrwxrwx 1 root root 23  2월  6 02:04 /etc/localtime -> /usr/share/zoneinfo/GMT


GMT로 심볼릭 링크가 걸려있는데 이것을 변경해 주자.


[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

[root@localhost ~]# ls -al /etc/localtime

lrwxrwxrwx 1 root root 30  2월  6 11:16 /etc/localtime -> /usr/share/zoneinfo/Asia/Seoul


timezone 설정이 끝나면 다시 한번 시간동기화를 해본후 확인.


[root@localhost ~]# rdate -s time.bora.net

[root@localhost ~]# date

2014. 02. 06. (목) 11:17:07 KST




반응형
posted by Rootrator
2013. 11. 13. 14:05 Windows

일전에 한번 Windows 2003에서 "원일을 알 수 없는 문제 때문에 Windows에서 Windows방화벽 설정을 열 수 없습니다" 라는 오류를 다룬적이 있었는데,


이 해결책으로 1.타 Windows 2003서버에서 SharedAccess.reg을 가져와서 등록 2. MS 서포트 사이트에 있는 레지스트리 파일을 생성하여 등록 을 올린적이 있었다.(1번 추천)


하지만 레지스트리 "등록시에 레지스트리를 액세스하는 동안 오류가 발생했습니다." 라는 에러가 뜨기고 하고


로컬 보안정책(secpol.msc) 파일 자체가 사라졌다거나 "IPsec 정책 저장소 컨테이너를 열지 못했습니다. 다음 오류가 발생했습니다." 라는 오류가 뜨는 경우가 있다.


위 경우 백이면 백.. 서버가 뚫린게 맞고 좀더 악질적으로 서버를 들쑤신게 되겠다.


먼저 방화벽부터 살려보자.


레지스트리 편집기를 띄우고 아래 경로로 이동해 보자.


경로 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess


하위 목록이 싹다 지워져 있거나 할 것이다.


먼저 이곳에 레지스트리를 가져오지 못한다는 것은 "권한"이 문제가 된다.



레지스트리 편집기 메뉴 중에서 편집 - 사용 권한으로 들어가 보자.


사용권한이 텅 비어있을것이다.


최상단의 HKEY_LOCAL_MACHINE으로 가서 권한을 수정해 주자.


Administrators(그룹) - 모든권한

CREATOR OWNER(그룹)

Power Users(그룹) - 읽기

SYSTEM(그룹) - 모든권한

Users(그룹) - 읽기


권한이 상속되고 난후엔 SharedAccess.reg파일을 등록시키면 오류없이 등록이 된다.



로컬보안정책은 secpol.msc 자체가 사라진 경우 마찬가지로 2003서버에서 가져오자.(%WINDOWS\system32\에 위치시킴)


다름으로 레지스트리 편집기를 열어 아래 경로로 이동하자.


경로 : HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\IPSec\Policy\Local


위키를 모두 지우려고 하면 에러가 난다. 마찬가지로 권한을 살펴본후에 administrators그룹에 모든 권한을 주고 삭제를 진행하자.


삭제가 완료되면 아래 명령어로 새 로컬 정책 저장소를 재구성한다.


cmd창에서 regsvr32 polstore.dll (파일은 %WINDOWS\systme32에 위치)


등록후에 secpol.msc 실행하면 정상적으로 실행이 된다.

반응형
posted by Rootrator
prev 1 2 3 4 5 6 7 ··· 14 next