Archive for the '일반 설정'Category

백업 및 복원 (dump & restore)

Posted by : admin at 1 월 29th, 2009

FreeBSD 7.1에서 확인하는 확실한 백업 절차를 제공합니다.
특히 중요시하는 것은 다음과 같은 것입니다.
  • 백업은 짧은 시간에 수 있어야한다 확실한 백업은 신구루유자모도해야 공백 시간을 최대한 단축해야하기 때문입니다.
  • 백업은 쉽게 할 수 있어야한다 귀찮은 작업이 계속되지 않습니다.
  • 복원은 단계별로おこなえ경우, 다른 사람 (몇 달 후 자신도 포함)도 반드시 가능해야한다이 상황이되면 반드시 이해할 수있습니다.
나는 FreeBSD4.8 시대에서 서버를 세우고 있지만, 당시는 테이프 장치에 가고 있었다 백업도 최근 HDD에 끝내고 것이 좋다는 견해입니다.
테이프에 백업은 시간이 걸리는 데다, 경험상의 미디어의 신뢰성도 얇고 무엇보다 용량이 큰 HDD를 매일 백업은 테이프 매체의 수명을 생각하면 엄청난 테이프가 필요하다, 현실주의 는 분실되어 가고있습니다.
과거에 한 번, RAID5 구성 HDD가 2 개 동시에 충돌을했을 때, 백업은 몇 달 전에 무슨 ... 사태를 일으키는 원인이되었다 것도 있고, 매일 백업을 취할 수 있도록하는 최선의 방법을 생각하고있습니다 그러나 현재는이 방법을 침착하게합니다.

백업 (dump)

백업 원본이되는 서버는 다음과 같은 상태입니다.
 ns# df
Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/ad0s1a   1012974  153114  778824    16%    /
devfs               1       1       0   100%    /dev
/dev/ad0s1f   2025860    9122 1854570     0%    /home
/dev/ad0s1d   6090094 2420298 3182590    43%    /usr
/dev/ad0s1e   1012974   34662  897276     4%    /var
 

백업 데이터를 저장하는 장치를 탑재합니다

USB 메모리도 SCSI 하드 디스크도 가능하지만, 이번에는 IDE - HDD를 기본 - slave를 메우고있습니다.
연결하려는 장비의 장치 이름을 dmesg에서 확인합니다.
 ns# dmesg
.....
ad0: 11264MB <VMware Virtual IDE Hard Drive 00000001> at ata0-master UDMA33
ad1: 13312MB <VMware Virtual IDE Hard Drive 00000001> at ata0-slave UDMA33
.....
 
스크롤이 빠르고 보는 것이다! 경우에는
 ns# dmesg|more
 
로, [j] 또는 [↓]에서 아래로 스크롤 'k'또는 '↑'에서 위로 이동합니다.
[q]로 표시가 종료됩니다. (자세한 내용은 man more)

백업 대상을 초기화 탑재합니다

처음 연결하는 장치의 경우에만 필요한 작업입니다.
2 회째 이후는 필요하지 않습니다.
 ns# sysinstall
 
sysinstall을 사용하는 것은 아주 오랜만에 옛 기억을 의지하고
 ns# /stand/sysinstall
 
이라고 했더니, 다음과 같은 오류가되었습니다.
 /stand/sysinstall: Command not found.
 

 ns# which sysinstall
/usr/sbin/sysinstall
 
과 최근의 FreeBSD에서는되고있는 것 같습니다.
보통 / usr / sbin에 경로를 통해서해야하므로 sysinstall뿐만 좋다는 뜻입니다.

[Configure]를 선택하고 [Enter]를 누릅니다.


[Fdisk를 선택하고 [Enter]를 누릅니다.


대상 장치를 선택하고 [Enter]를 누릅니다. (이번에는 ad1)


[c]를 눌러 [Enter]를 누릅니다.


[165] 상태에서 [Enter]를 누릅니다.


[w]를 누릅니다.
확인 대화 상자가 나타나면 Yes를 선택하고 [Enter]를 누릅니다.


[None]을 선택하고 [Enter]를 누릅니다.


[q]를 누릅니다.


[Cancel]을 선택하고 [Enter]를 누릅니다.


[Label]을 선택하고 [Enter]를 누릅니다.


[c]를 눌러 [Enter]를 누릅니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력합니다. (이번에는 / backup)
자동으로 디렉토리를 만들어 마운트됩니다.


[w]를 누릅니다.


Yes를 선택하고 [Enter]를 누릅니다.


[q]를 눌러 메뉴로 돌아간 다음 Cancel을 누릅니다.


[Exit] 또는 [Cancel을 누릅니다.


[Exit Install을 선택하고 [Enter]를 누릅니다.

dump 실행

다음 파티션을 각각 지원합니다.
 Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/ad0s1a   1012974  153114  778824    16%    /           <=== /backup/root.dump
devfs               1       1       0   100%    /dev        <=== バックアップ不要
/dev/ad0s1f   2025860    9122 1854570     0%    /home       <=== /backup/home.dump
/dev/ad0s1d   6090094 2420298 3182590    43%    /usr        <=== /backup/usr.dump
/dev/ad0s1e   1012974   34662  897276     4%    /var        <=== /backup/var.dump
 

 ns# dump -0uaLC 32 -f /backup/root.dump / 
 

옵션 설명

0 단뿌레베루 0 (전체 백업)
u 덤프가 성공하면, / etc / dumpdates 파일을 업데이 트합니다.
a 미디어 종료를 감지합니다. (테이프 잖아 때문에 불필요 할지도 ...)
L FreeBSD5.0에서 탑재된 스냅샷 기능을 사용합니다.
이 기능을 사용하면 신구루유자모도에 떨어뜨릴 필요가없습니다.
C 캐시 크기를 8 ~ 32 (단위 : MB) 사이에서 지정하여 성능을 극적으로 향상됩니다.
그러나 L 옵션을 지정한 경우에는, C 옵션을 해제하는 것이 좋을 것입니다.
(상세 내용보기)
f 백업 대상 파일을 지정합니다.
마찬가지로 다른 3 개나합니다. (용량이 많은 /usr 등 다소 시간이 걸립니다)
 ns# dump -0uaLC 32 -f /backup/var.dump /var 
 
 ns# dump -0uaLC 32 -f /backup/usr.dump /usr 
 
 ns# dump -0uaLC 32 -f /backup/home.dump /home 
 
이상으로 지원이 완료됩니다.

 ns# ls -al /backup
total 2662822
drwxr-xr-x   3 root  wheel            512 Jan 27 17:26 .
drwxr-xr-x  23 root  wheel            512 Jan 27 17:02 ..
drwxrwxr-x   2 root  operator         512 Jan 27 17:02 .snap
-rw-r--r--   1 root  wheel        9646080 Jan 27 17:26 home.dump
-rw-r--r--   1 root  wheel      155197440 Jan 27 17:16 root.dump
-rw-r--r--   1 root  wheel     2524764160 Jan 27 17:36 usr.dump
-rw-r--r--   1 root  wheel       35655680 Jan 27 17:26 var.dump
 
또한 보안을 강화하려면, 만든 dump 파일은 임시 저장 파일 대우로, 다른 미디어에 복사하면 좋습니다.

정작! 는 순간을 위해, 지금 중에 ftp 사이트에서 같은 버전의 livefs.iso를 다운로드하여 LiveFS CD를 만들어 둡시다.
그리고 "FreeBSD XX 긴급 부트 디스크"라고 적어 서버 가까이 (눈에 띄는 위치)에 두는 것이 좋습니다.

복원 (restore)

다음과 같은 구성으로 확인했습니다.
  • 새로운 서버 (요체 부팅 디스크에 OS가 설치되지 않은 상태 서버)
  • 위 서버의 기본 - slave에 백업 데이터가 들어있는 IDE - HDD를 연결
시작 HDD ad0
백업 데이터를 저장하는 HDD ad1
그밖에 필요한 LiveFS CD

LiveFS CD로 부팅

먼저 LiveFS CD를 넣고 서버를 시작합니다.
(CD로 부팅하지 않는 경우에는 침착하게 BIOS를 검토 해보자)

일본어를 잘하는 [110 Japan] 선택하고 [Enter]를 누릅니다.
[PageUp] 7 회, [↓] 4 회하면 이르)

[Japanese 106 keymap] 선택되어있을 것입니다 때문에 그대로 [Enter]를 누릅니다.


시작 HDD 초기화 (슬라이스 파티션)

[Configure]를 선택하고 [Enter]를 누릅니다.


[Fdisk를 선택하고 [Enter]를 누릅니다.


부팅 장치를 선택하고 [Enter]를 누릅니다. (여기서는 AD0)
결코 백업 데이터를 저장하는 장치를 지정하지 마십시오.


[c]를 눌러 표시된 숫자 그대로 [Enter]를 누릅니다.


[165] 상태에서 [Enter]를 누릅니다.


[q]를 누릅니다.


[Standard]을 선택하고 [Enter]를 누릅니다.


Cancel을 눌러 메뉴로 돌아갑니다.


[Label]을 선택하고 [Enter]를 누릅니다.


[c]를 누릅니다.


루트 (/) 파티션에 할당할 용량을 지정합니다. (여기에서는 1GB)
이전 서버 (백업 원)보다 적은 경우 문제가 발생할 수있습니다. dd과는 다른 많은 분에는 문제가없습니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 (/) [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 스왑 파티션을 설정합니다.
이것은 새로운 서버에 탑재되는 메모리 용량을 2 배 정도가 좋다. (여기에서는 1GB)


[Swap을 선택하고 [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 /var 할당할 용량을 지정합니다. (여기에서는 1GB)
이전 서버 (백업 원)보다 적은 경우 문제가 발생할 수있습니다. dd과는 다른 많은 분에는 문제가없습니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 /var [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 /usr 할당할 용량을 지정합니다. (여기서는 4GB)
이전 서버 (백업 원)보다 적은 경우 문제가 발생할 수있습니다. dd과는 다른 많은 분에는 문제가없습니다.
/ home 파티션들을 작성하지 구성 / usr에 나머지 모든 공간을 할당하려는 경우에는 용량을 지정하지 않고 표시된 숫자 그대로 [Enter]를 누릅니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 /usr [Enter]를 누릅니다.


마찬가지로, [c]를 눌러 나머지 용량을 모두 /home 할당합니다.
표시된 숫자를 변경없이 [Enter]를 누릅니다.
/ home 파티션이 필요하지 않은 경우에는이 작업이 필요하지 않습니다.


[FS]가 선택된 상태로 [Enter]를 누릅니다.


마운트 이름을 입력하고 /home [Enter]를 누릅니다.


이런 느낌입니다.
마음에 들지 않으면, 파티션을 선택하고 [d]를 누르면 삭제 할 수 있기 때문에, 설정하고 다시하세요.
낫 [w]를 누릅니다.


확인 대화 상자가 나타나면 Yes를 선택하고 [Enter]를 누릅니다.


[q]를 눌러 메뉴로 돌아간 다음 Cancel]을 선택하고 [Enter]를 누릅니다.


Fixt를 시작

[Fixit를 선택하고 [Enter]를 누릅니다.


[CDROM / DVD를 선택하고 [Enter]를 누릅니다.


Fixit가 시작됩니다.


장치에 방금 만든 파티션 (ad0s1a ~ ad0s1f)가 등록되어 있는지 확인합니다.
Fixit# ls /dev


방금 만든 파티션은 /mnt 아래에 배치됩니다.
 Fixit# ls /mnt
.snap/  dev/   home/   usr/   var/
 

백업 데이터가 들어있는 HDD를 탑재

백업 데이터가 들어있는 HDD를 탑재하기 위해 /mntbk 디렉터리를 만듭니다.
 Fixit# mkdir /mntbk
Fixit# _
 
이번에는 IDE - HDD를 Master - Slave 연결하고있어 "ad1s1"라는 장치 이름입니다.
ad1s1 c의 c 내용은 여기를 참조하십시오.
 Fixit# mount /dev/ad1s1c /mntbk
Fixit# _
 

restore 시작

ルート( / )をrestore
 Fixit# cd /mnt
Fixit# restore -rf /mntbk/root.dump
 

/varをrestore
 Fixit# cd /mnt/var
Fixit# restore -rf /mntbk/var.dump
 

/usrをrestore
 Fixit# cd /mnt/usr
Fixit# restore -rf /mntbk/usr.dump
 

/homeをrestore
 Fixit# cd /mnt/home
Fixit# restore -rf /mntbk/home.dump
 

대부분의 경우 대용량 usr 등을 restore 동안 다음과 같은 오류가 나타납니다.
 Fixit# cd /mnt/usr
Fixit# restore -rf /mntbk/usr.dump

/: write failed, filesystem is full
restore: /tmp//rstdir1233044785: cannot write directory database: No space left on device
Try making space in /tmp/, or set environment variable TMPDIR
to an alternate location with more disk space.
Fixit# _
 
이것은 restore 작업에 필요한 임시 파일을 용량 부족 때문에 발생합니다.
이러한 경우에는 다음과 같은 방법으로 TMP 디렉토리를 변경하고 다시 restore하십시오.
 Fixit# mkdir /mntbk/tmp
Fixit# TMPDIR=/mntbk/tmp
Fixit# export TMPDIR
 
/ mntbk는 백업 데이터가 들어있는 HDD 것입니다.
여기에서 TMP 디렉토리를 만들어 그곳을 이용한다는 뜻입니다.
이 작업 후 어떤 필요에せまら하고 / mntbk / tmp 디렉토리를 제거하면 거의 모든 명령을 수행할 수 없게됩니다.
이러한 경우에는 다음과 같이하여 TMP 디렉터리를 복원합니다.
 Fixit# TMPDIR=/tmp
Fixit# export TMPDIR
 

fstab 갱신

다시 작성 작업이 필요없는 경우에도 반드시 확인합시다.
파티션의 순서의 차이에 의해 시작되지 않는 사태에 빠져 2 일 동안 빠져 버렸습니다 ...

현재 탑재 상태를 확인합니다.
 Fixit# df
Filesystem      1K-blocks    Used   Avail Capacity  Mounted on
/dev/md0             4175    2449    1726    59%    /
devfs                   1       1       0   100%    /dev
/dev/ad0s1a       1012974  153114  778524    16%    /mnt
devfs                   1       1       0   100%    /mnt/dev
/mnt/dev/ad0s1f   8122034    9426 7462846     0%    /mnt/home
 /mnt/dev/ad0s1e   4058062 2434140 1299278    65%    /mnt/usr 
 /mnt/dev/ad0s1d   1012974   34750  897180     4%    /mnt/var 
/dev/acd0          226150  226150       0   100%    /dist
/dev/ad1s1c      13198878 2662822 9480146    22%    /mntbk
 

이어 fstab를 엽니다.
Fixit# vi /mnt/etc/fstab
 # Device          Mountpoint         FStype   Options         Dump     Pass#
/dev/ad0s1b       none               swap     sw              0        0
/dev/ad0s1a       /                  ufs      rw              1        1
/dev/ad0s1f       /home              ufs      rw              2        2
 /dev/ad0s1d       /usr                ufs      rw              2        2
 /dev/ad0s1e       /var                ufs      rw              2        2
/dev/acd0         /cdrom             cd9660   ro,noauto       0        0 

밑줄 부분의 차이에お気갖는 것일까요?
장치 이름 "ad0s1e"와 "ad0s1d"마운트 이름이 반전이 필요하다.
이러한 경우에는 "/ mnt / etc / fstab"을 편집하여 수정 저장합니다.

이상이 끝났습니다.
LiveFS CD를 빼고 다시 시작하면 상승합니다.

후처리

restore를 실행하면 각 파티션의 현재 디렉토리에 restoresymtable 파일이 만들어집니다.
이것은 증분 백업을 복원할 때해야 할 것입니다 때문에, restore 작업이 완료되면 삭제 해 둡시다.
 ns# ls /
.cshrc        boot          entropy          mnt             sys
.profile      cdrom         etc              proc            tmp
.snap         compat        home             rescue          usr
COPYRIGHT     dev           lib               restoresymtable  var
backup        disk2         libexec          root
bin           dist          media            sbin
 

 ns# rm /restoresymtable 
 ns# rm /var/restoresymtable 
 ns# rm /usr/restoresymtable 
 ns# rm /home/restoresymtable 

이럴 때는

복원된 서버를 시작하려고하면 다음 메시지에서 많은 시간 멈춘다.
 Configuring syscons: keymap blanktime
 
"Configuring syscons : keymap blanktime"라는 표시가 시간 초과 대기를 참조하십시오.

다음과 같은 메시지가 나오고 파티션 수 없다
 Unable to find device node for /dev/ad0s1b in /dev!
The creation of filesystems will be aborted.
 
Fdisk가 슬라이스 만든 후 [w]를 눌러 있지 않습니까?
Fdisk 메뉴에서 [w] 누르지 않고, [q]를 눌러 Label 설정이 끝난 뒤 마지막으로 Label 메뉴에서 [w]를 누릅니다.

sysinstall에서 Fdisk Label이 실패할
나도 검증 과정에서 여러 번 경험했습니다.
sysinstall에서 Fdisk Label이 실패할를 참조하십시오.

네트워크에 연결된 다른 서버로 원격 백업을 할
옛날 쓴 기사입니다. "테이프 드라이브에 백업 및 복원"여기를 참고하십시오.

"Configuring syscons : keymap blanktime"전시에 타임아웃 대기

Posted by : admin at 1 월 27th, 2009

 Configuring syscons: keymap blanktime 
라는 표시가 나오고, 장시간 멈춘다는 다음에 시작되는 sendmail이 제대로 시작하지 못하고 시간 제한을 기다리고있는 것이 원인입니다.
DNS 등 네트워크 주변을 검토합시다.

나의 경우, dump & restore 테스트를 VMware에 가고있는 동안이 문제가 발생하고 네트워크 어댑터 설정을 실수하고 있던 것이 원인 이었지만 ...

Filed under 일반 설정 |

1 Comment»

sshd 설정 (DSA 인증)

Posted by : admin at 11 월 8th, 2008

FreeBSD는 기본적으로 sshd를 시작하도록되어있습니다.
 # which sshd
/usr/sbin/sshd 
그래서 이제는 /etc/ssh/sshd_config AllowUsers USERNAME 부루토호스아쿳쿠 (억지 공격) 대책으로 DSA 인증을해야합니다.
액세스 로그를 보면 알 수있습니다,どこぞ나라 크래커 or 봇 또는 발견 않지만 매우 많은 침입 흔적을 발견할 수있습니다.

설정 파일의 수정

/etc/ssh/sshd_config
 Protocol 2 
SSH2 프로토콜 사용
 PermitRootLogin no 
root로 로그인 불가
 PubkeyAuthentication yes 
DSA 인증 사용
 PasswordAuthentication no
PermitEmptyPasswords no 
암호 인증 불가와 비밀 번호없이 불가
 ChallengeResponseAuthentication no 
이것을 no 않으면 암호 인증 것이다.

수정 후 sshd 다시 시작합니다.
 # /etc/rc.d/sshd restart 
또는 이전 버전에서는 오류가 될 수 있기 때문에, 이러한 경우에는 다음과 같은 방법이 확실합니다.
 # ps aux | grep sshd
# kill -HUP  PID 

비밀 id_dsa 공개 키 id_dsa.pub 생성

ssh 액세스를 활성화하려는 사용자로 로그인합니다. root 아닌)
다음 명령을 입력합니다.
 $ ssh-keygen -d 
 Generating public/private dsa key pair.
Enter file in which to save the key (/home/ USERNAME /.ssh/id_dsa):    [Enter] 
Created directory '/home/ USERNAME /.ssh'.
Enter passphrase (empty for no passphrase):                      [PASSWORD] [Enter] 
Enter same passphrase again:                                     [Re PASSWORD] [Enter] 
Your identification has been saved in /home/ USERNAME /.ssh/id_dsa.
Your public key has been saved in /home/ USERNAME /.ssh/id_dsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx  USERNAME @ HOST . DOMAIN . NAME 

공개 키 id_dsa.pub 이름 바꾸기한다

 $ cd /home/ USERNAME /.ssh
$ mv id_dsa.pub authorized_keys
$ chmod 0600 authorized_keys 

비밀 id_dsa 클라이언트 컴퓨터로 이동

ssh 연결을 원하는 클라이언트 시스템에 /home/ USERNAME /.ssh/id_dsa 이동합니다. 보안을 고려하는 경우, FTP 등에서는없고 USB 메모리 또는 플로피 디스크에서 수행할에 좋다지만, 사용하는 미디어 처리에는주의를.
id_dsa 파일의 위치는 클라이언트 컴퓨터의 터미널 소프트웨어에 따라 다르므로 그곳의 설명서를 참조하십시오.
개인적으로 오픈 소스 Tera Term을 추천합니다.

특정 사용자에 root 권한을주는

Posted by : admin at 11 월 3rd, 2008

일반 사용자가 커맨드 라인에서 su 입력하면 루트 권한을 얻을 수 있도록하는 설정입니다.
/etc/group
 wheel:*:0:root, USERNAME 

특정 서비스를 중지 다시 시작

Posted by : admin at 11 월 3rd, 2008

멈추다
 # kill -KILL `cat /var/run/ PROCESS .pid` 

다시 시작
 # kill -HUP `cat /var/run/ PROCESS .pid` 

또는 프로세스 ID를 확인하고 해당 프로세스 ID로 지정한다.
멈추다
 # ps -aux | grep named
# kill -KILL  PID 
다시 시작
 # ps -aux | grep named
# kill -HUP  PID 

프로세스 ID를 알아낼

Posted by : admin at 11 월 3rd, 2008

 # ps -aux | grep  PROCESS_NAME