솔라리스에서 디스크 슈퍼블럭이 에러났을경우
다음과 같은 작업을 해야한다.

먼저, 싱글모드로 들어간다.
newfs -N /dev/rdsk/c?t?d?s? 를 하게 되면
슈퍼블럭 리스트가 나오게 된다.

거기서 아무거나 하나 슈퍼블럭을 선택한후에
nfs -F ufs -o b=????? /dev/rdsk/c?t?d?s?

해주면 된다.
2005/07/05 14:58 2005/07/05 14:58
fuser라는 명령어는 주로 많이 사용하지는 않지만
아주 유용하다...

fuser은 예를 들어서 설명하겠다...
/var 라는 디렉토리에 현재 어떤 데몬이나 유저가 접근해 있는지
알고 싶을때, 또는 nfs로 마운트 되어 있는 디렉토리를 umount하고
싶은데 umount가 안될때 사용하면 좋다..
사용밥법은 다음과 같다.

fuser -cu /var 하면 현재 /var라는 디렉토리를 사용하고 있는
유저나 데몬의 process가 열거된다... 그 열거된 pid를 보고
어떤 데몬이 사용하고 있고 어떤 유저가 사용하고있는지 알수 있다.

fuser -ck /var 하면 /var라는 디렉토리를 사용하고 있는
유저나 데몬의 process id 를 모두 'kill -9' 와 같은 행동을 하게 된다.
그래서, 솔라리스 2.7이하의 os 에서는 매우 유용하다.
솔라리스 8,9 에서는 umount -f하면 되지만 그이하버전에서는
-f옵션이 없기 때문에 fuser를 이용하면 좋다.
2005/07/05 14:58 2005/07/05 14:58
페도라 - 핑에 응답하지 않기

vi /etc/rc.d/rc.sysinit

맨밑줄에 다음을 추가

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
2005/07/05 14:57 2005/07/05 14:57
레드햇에서 man 페이지의 기본 PAGER 로 "less" 를
사용하고 있는데 레드햇 9에 들어있는 less 에 문제가
있어 모두 && 로 처리됩니다.

다음 링크에 있는 패키지로 교체를 권합니다..
http://redhat.okwecan.com/pds/linux/korean/less/

참고로 /usr/bin/less 파일은 less-378-7 패키지의 파일과
충돌합니다.
설치시 아래의 force옵션을 주어 설치하시면 됩니다.

#rpm --force -ivh less-378-8KR.i686.rpm
2005/07/05 14:56 2005/07/05 14:56
fstab 에 LABEL=/ 이부분이 지워졌거나 실수로
수정 되었을 경우 리부팅시 Refair filesystem>>
이라는 코멘드 라인이 뜹니다.

위와 같은 코멘드 라인이 뜨면서 파일시스템이 마운트
되지 않는 경우 위 코멘드 라인에 다음과 같이 써서
정상적으로 마운트 하실 수 있습니다.

mount / -o remount,rw
2005/07/05 14:55 2005/07/05 14:55
ctime - Many times this is understood as a creation time but that wrong. Ctime is change time
of file stats such as ownership, what permissions it has etc.

mtime - File modification time. Value of mtime is updated when content of file changes.

atime - File access time. Value of atime is modified when file is opened.

풀어서 말하자면
-atime : 파일을 열어본 시간 또는 디렉토리에 cd명령으로 접근한 시간
-mtime :파일의 내용이 변경된 시간 ls -l 에서 나오는 시간
-ctime :파일의 정보가 변경된 시간 chmod, chown과 연관성이 있습니다.
2005/07/05 14:55 2005/07/05 14:55
resize2fs 명령으로 가능합니다.

이 명령은 어떤 device의 ext2 (또는 ext3) 파티션의 크기를 조절하는
명령어 입니다. fdisk와 잘 결합해서 사용하면 내용을 날리지 않고 파
티션 크기 조절이 가능합니다. (ui가 편한 cfdisk 사용 추천)

resize2fs device [size]
이렇게 사용하는데, size를 생략하면 파티션 크기에 맞게 조절됩니다.

늘리는 경우
- 파티션 크기를 늘린다.
- resize2fs 명령으로 filesystem을 파티션 크기에 맞춘다.

줄이는 경우
- resize2fs 명령으로 원하는 크기보다 더 작게 filesystem 크기를 줄인다.
- 파티션 크기를 원하는 크기로 줄인다.
- resize2fs 명령으로 filesystem을 파티션 크기에 맞춘다.

늘리는 경우와 줄이는 경우를 잘 조합해서 하면 원하는 파티션 크기를 조절할
수 있을 것입니다.

하지만 파티션의 용량을 수정하는것 자체가 위험 부담이 있고
데이타 상실의 우려가 있으므로 부득이 하게 조정해야 하는 경우라면
데이타를 백업하신 후 하는것이 좋습니다.

그 외에 파티션매직과 비슷한 parted라는 프로그램을 사용하여 수정할
수도 있습니다. parted는 gnu 홈에 있고 메뉴얼을 보시면 쉽게 이해할
수 있습니다.
2005/07/05 14:54 2005/07/05 14:54
redhat 8.0에서 웹프로그램으로 만든 게시판이나
이미지 갤러리를 만들어서 이미지 파일을 업로드
할때에 실제 이미지보다 두배 이상 사이즈가 커져서
업로드가 됩니다.

위 경우는 redhat 8.0 배포판으로 깔리는 php-4.2.2
에 버그가 있어서 생기는 현상이라고 합니다.
php-4.2.2 이상 최신의 버젼을 설치하면 해결됩니다.
2005/07/05 14:53 2005/07/05 14:53
경우에 따라서 다릅니다.

예를 들어서 커널 컴파일할 때에 칩셋과 CPU 를 고르게 되어 있는데,
인텔 펜티엄 4와 845 칩셋쪽만 체크를 해서 컴파일을 했다면 AMD 에
kt266 이라든가, 이런 칩셋으로 바꾸면 부팅을 하지 못하게 됩니다.
하지만, 커널 컴파일할 때에 다른 칩셋과 CPU 도 선택을 해줬다면
바꿔도 상관없습니다.

대개의 경우 배포판을 그대로 깔았다 (씨디롬에 있는 걸)면 메인보드를
바꾸고 CPU 를 바꿔도 큰 문제는 없습니다만, 배포판에 따라서는 깔리면서
커널을 여러개 가지고 있다가 칩셋과 CPU 를 체크해서 최적의 것을 까는
경우도 있습니다. 이럴 경우에는 메인 보드를 바꾸거나 하면 부팅이 되지
않습니다.

또한 커널 뿐만이 아니라... glibc 라든가 이런 것들도 gentoo 등의 배포판
에서는 인스톨 하면서 각 칩셋에 맞게 컴파일 되기 때문에 메인보드를 바꾸면
먹통이 되는 경우가 많습니다.
2005/07/05 14:51 2005/07/05 14:51
< 분할압축(650메가단위)예 >

#tar -cvzf filename.tar.gz
#split -b 650m filename.tar.gz filename.tar.gz_

< 압축해제 >

#cat filename.tar.gz_* | tar -xvzf -
2005/07/05 14:50 2005/07/05 14:50
솔라리스 2.x에서 network interface 를 추가하는 방법은
간단하다.
보통 많이 사용하는 네트웍 인터페이스는 다음과 같다.
10M : le
100M : hme
1000M : ge

그 외에 qfe, elx 등도 있다.
예를 들어 100M짜리 네트웍 인터페이스를 추가해 보겠다.

host> ifconfig hme1 plumb
host> ifconfig hme1 10.107.0.1 netmask 255.255.255.0 broadcast 10.107.0.255 up
작업후에 ifconfig -a를 해보면 잡혀있는것이 보일것이다.
이 인터페이스를 리부팅이나 부팅시 os에서 인식을 시킬려면
우선, 다음과 같은 파일을 만들거나 수정해 줘야한다.
host> vi /etc/hosts
10.107.0.1 private_interface

host> vi /etc/hostname.hme1
private_interface

host> vi /etc/netmasks
10.107.0.0 255.255.255.0
2005/07/05 14:48 2005/07/05 14:48
Redhat 8 에서 스마트 릴레이 설정하기 방법은 간단하다.
기존 7.x에서는 /etc/mail/sendmail.cf에서
------------
# 'Smart' relay host (may be null)
DSmail.inet.co.kr
------------
위와 같이 설정해주고
/etc/mail/trusted-users 메일을 보내고자 하는 유저를 추가해 주면
되는데, 8.0에서는 sendmail 버젼이 올라가면서 /etc/mail/sendmail.cf
파일 대신에 /etc/mail/submit.cf라는 파일에서 스마트 릴레이를 설정해 주면 된다.
설정하는 방법은 7.x 하고 같다.
2005/07/05 14:43 2005/07/05 14:43
솔라리스에서는 논리적 디바이스 이름(logical device name)으로 물리적 디바이스 이름(physical device name)에 링크를 걸어 사용을 한다. 아마도 리눅스의 hda1, sda1 등에 익숙한 사람들은 약간 어색할 것이며, freebsd 사용자의 경우는 그래도 조금 친근할 것이다.

1. Logical device names

Logical device name 은 우리가 알아보기 쉽도록 표시한 것을 말하며, 디스크의 경우 대부분 “c0t0d0s7”처럼 영문과 숫자의 조합으로 표시된다. 그럼 그 영문과 숫자의 의미를 알아보자.

- c0 : controller number가 0번임을 의미한다. 숫자는 OS에서 할당하기 때문에 우리는 그냥 쓰기만 하면 된다.
- t0 : target number가 0번임을 의미한다. IDE 에는 존재하지 않으며, SCSI의 경우는 id 번호가 된다.
- d0 : disk number가 0번이다.
- s7 : slice number가 7번이다. 슬라이스란 일반적으로 우리가 일컫는 파티션을 말하며, 이 숫자까지 와서야 비로소 우리가 정할 수 있다. Format 명령으로 파티션을 조직할 때 1부터 7번까지의 슬라이스 번호를 매길 수 있는데 그 중에 우리가 7번을 사용하고 있는 것이다.

Logical name 은 /dev/dsk(block device names) 와 /dev/rdsk(raw device names) 디렉토리에 존재하며, 실제로는 /devices 디렉토리의 복잡한 디바이스 이름에 링크되어 있다.

2. Physical device names

우리가 부팅을 할 때, kernel은 시스템에 부착된 디스크를 인식하고, /devices 디렉토리에 여러 문자로 이루어진 노드로 표현된다. 노드라 불리는 이 full device pathname 은 속성, 데이터 종류, 디스크 연결 방식에 관한 여러가지 정보를 담고 있다. 그 full device pathname 의 형식은 다음과 같이 이루어진다.


driver-name@unit-address:device arguments
driver-name 은 device name 을 나타낸다.
@unit-address는 device 의 physical address를 나타내는데, 부모 주소 공간 안에서 부여가 된다.
:device arguments 에는 각 device 에 해당하는 소프트웨어를 위한 추가적인 정보가 정의된다.

예를 들어 다음의 device 명을 살펴 보면 SPARC 시스템의 스카시 드라이버의 한 슬라이스를 나타낸다는 것을 알 수 있다.


/sbus@1f,0/esp@0,4000/sd@3,0:a
위의 내용을 보면, 1f,0 의 메인 시스템 버스 주소를 가지고 sbus 에 연결되어 있다. 그리고 esp 장치(scsi bus)에 0번 슬롯, 4000번 옵셋에 부착되어 있으며, SCSI target 번호가 3, 논리적 유닛 번호가 0인 sd 장치(scsi disk)라는 것을 알 수 있다.
2005/07/05 14:38 2005/07/05 14:38
/etc/my.cnf 에
[safe_mysqld]
err-log=/var/log/mysqld.log

해주시면 됩니다.
2005/07/05 14:37 2005/07/05 14:37
Q. /home 에 core 라는 파일이 있는데...
용량이 무지 크네요. 열어봐도 이상한 글자들만 있구요..
이게 뭔지 궁금합니다. 권한은 root로 되 있더군요


A. 프로그램이 비정상적으로 종료됐을때 디버깅을 위해 남겨놓는 덤프파일입니다.
삭제해도 무방하고요. 파일을 생성하지 않으려면 /etc/profile 파일에
ulimit -c 0
라고 추가해주시면 됩니다.
2005/07/05 14:35 2005/07/05 14:35
아파치의 pid를 찾을 수 없어 종료가 되지 않는
경우에는 아래 몇가지 방법으로 종료하는 법과
pid경로를 체크 하셔야 합니다.

1. netstat -ap 명령어로 80포트를 사용하고 있는
프로그램을 kill 시킵니다.

2. 아파치가 실행 중에 pid 파일, 보통 /var/run/httpd.pid에 놓습니다.
이 파일이 지워졌거나. 아니면 apachectl이나 apache init script에서
pid 파일 경로가 잘못 지정된 경우일 수도 있습니다.
여러번 다시 실행시켜서 pid 파일의 정확한 경로를 지정해주면 됩니다.

3. 드문 경우지만 예전 inetd를 사용하는 경우 inetd에 apache가
물려서 올라오는 경우 위와 같이 종료가 되지 않는 경우도 있습니다.
2005/07/05 14:26 2005/07/05 14:26
#cat /proc/loadavg
0.00 0.02 0.00 1/58 15870

위의 숫자가 의미하는 것은 실행할 수 있는 프로세스가
등록되어 있는 running queue 가 있는데, 이 값의
1분/5분/15분 평균치를 말하고, 이값은 timer interrupt
발생시 갱신됩니다.

x86 리눅스는 timer interrupt 가 10ms 마다 일어납니다.
뒤의 두 값은 loadavg_read_proc() 함수를 보면 다음과
같이 나타나 있습니다..

1/58 15870
nr_running()/nr_threads last_pid
2005/07/05 14:24 2005/07/05 14:24
익스플로어에서 ftp 접속할 때는 주소창에
ftp://id:pass@address 적어주는데, pass에 @, . 등이 들어가 있으면
바로 오류가 납니다.

이럴때는 아래와 같이 특수문자를 인코딩 해주면 됩니다.

~ => %7E
! => %21
@ => %40
# => %23
$ => %24
% => %25
^ => %5E
& => %26
* => %2A
( => %28
) => %29
+ => %2B
| => %7C
{ => %7B
} => %7D
: => %3A
" => %22
< => %3C
> => %3E
? => %3F
` => %60
= => %3D
\ => %5C
[ => %5B
] => %5D
; => %3B
' => %27
, => %2C
/ => %2F
2005/07/05 14:23 2005/07/05 14:23
말그대로 삼바와 웹은 독립적인 프로세서입니다.
삼바서버가 보안에 취약하든 그렇지 않든 그것은 MS-Windows의 파일 전송규약에
따라 작동을 하니까 웹서버와 상관이 없습니다.
그걸 굳이 끌어다 맞추다보면 현재 사용하는 모든 응용프로그램이 보안에 취약한게
되어버립니다.
어느 프로그램이든 전부 보안에 완벽한 것은 없다고 생각합니다.
다만 어느정도 잘 운영하느냐가 중요하겠죠.
삼바를 사용한다면 일단 Workgroup의 이름을 유추하기 쉽지 않는것으로 바꾸는
것이 중요합니다. 그리고 각 사용자가 암호없이 접근을 하지 못하도록 바꾸는것도
보안에 중요한 관건이 될겁니다.

단, 보안에 취약한 samba 버전을 사용하시면 비정상적인 SMB패킷을 보내서 원격으로
root 쉘이 떨어지는 exploit이 있습니다. 삼바의 버전 정도만 확인 해보신다면 크게
문제가 되지 않을겁니다. (최신의 버전을 사용하시는 것을 권장합니다.)
2005/07/05 14:22 2005/07/05 14:22
마스터 네임서버가 문제가 없는한은 슬레이브 네임서버에는 로드가
걸리지 않아 비효율적으로 생각될 수 있습니다.
하지만 안정성과 효율성은 함께 하기 어려운 문제입니다.
만약의 문제가 생겼을 경우를 위해 backup을 두는 것입니다.
name server의 경우 문제가 생겼을 때 복구가 쉽지 않기 때문입니다.

만약 자체 네임서버를 구축후 효율성이 문제라면 slave name server를
외부의 ISP에 서로 신뢰할 수 있는 곳끼리 slave name server를 돌려주는
것도 방법중에 하나 입니다.
2005/07/05 14:21 2005/07/05 14:21