각설하고, 어쨌거나 리눅스라고는 겨우 영문 글자만 알던 넘이 스쿨 왔다갔다 하면서 cron 이라는 자동화(?) 기능을 알게 되었습니다. 백업을 하려고 뒤져봤는데, 대게는 하루단위로 백업을 하시더라구요. 물론 그것이 정석이겠지만, 위에서 말한바와 같이 규모가 작은 곳이라서 일주일에 한번 DB백업만 해도 충분할 것 같아서 cron 에서 시간설정하는 법을 찾아봤는데 없더라구요. 혹 저같은 분이 계실까봐 cron 사용법을 올립니다. 팁 같지 않다는 태클만은 사절합니다(초보에게 용기를~!!).-_-;;
** 지정
쉘 상에서 crontab -e 명령을 합니다.
그러면 vi 편집기의 인터페이스가 열리면서 예약할 작업들을 적어넣을 수 있습니다.
각 항목은 스페이스로 구분되며 시간 단위는 분단위까지 가능합니다.
** 항목 및 사용법
분(minute) 시(hour) 일(day_of_month) 월(month) weekday(요일) command(명령)
필드에서 사용하는 값들의 범위는 다음과 같습니다.
분(minute) : 0-59
시(hour) : 0-23
일(day_of_month) : 1-31
월(month) : 1-12
요일(weekday) : 0-6 (일요일~토요일)
명령(command) : 쉘 명령
예를 들어서 백업하는 명령어를 /home/root 에 backup 이라는 이름으로 스크립트를 만들었다고 하고 매주 일요일에 백업을 하려면
00 00 * * 0 /home/root/backup
과 같은 식으로 해주시면 됩니다.
매주 월요일과 매달 15일에 백업을 하려면
00 00 15 * 1 /home/root/backup
과 같이 해주시고,
매주 월요일과 매달 1일, 15일에 백업을 하려면
00 00 1,15 * 1 /home/root/backup
과 같이 해주시면 됩니다. 스페이스 없이 콤마(,)로 날짜를 구분했음에 유의하세요.
*는 와일드 카드로... "모든"이라는 의미를 가지고 있다는 것은 아실 겁니다.
즉, 위의 세가지 예제들은 모두 0시 0분을 기준으로 백업을 하게 된다는 것입니다.
앞에서 cron의 사용법으로 많이 나왔던
00 06 * * * /home/root/backup
과 같은 경우는 모든 요일, 모든 월, 모든 날, 매주 06시 00분에 백업을 행한다는 의미입니다.
사용자 애플리케이션에서 한글.KR 정보가 영어, 숫자, 하이픈(-)으로 이루어진 퓨니코드(Punycode)로 변환 후 서버에 전달되므로, 한글.KR을 운영하기 위해서는 서버의 환경파일 내에서 “xn--"로 시작하는 퓨니코드 형태로 설정되어야 합니다. 퓨니코드 변환은 아래 코드컨버터를 이용하시길 바라며, 네임서버와 웹서버에서의 설정방법은 각각의 설정방법 페이지를 참고하시기 바랍니다. (한글.KR을 메일주소로 사용하기에는 현재 지원되는 애플리케이션이 없습니다)
▶ 온라인 한글 변환
▶ 윈도우용 코드컨버터
▶ 유닉스/유닉스용 코드컨버터 (C 언어버전 / Java 언어버전)
<예: 한글.kr 설정 방법>
0. < 공인사업자를 통해 한글도메인 등록>
1.
zone "xn--bj0bj06e.kr" { // ← 한글도메인을 Punycode로 변환 후 설정
type master;
file "hangeul.zone";
};
2. $TTL 43200
;
@ IN SOA ns1.nic.or.kr. admin.nic.or.kr. (
2003081901 ; serial
10800 ; refresh
3600 ; retry
3600000 ; expire
43200) ; negative TTL
IN NS ns1.nic.or.kr.
IN NS ns2.nic.or.kr.
;=================================================================
; 한글도메인 한글도메인 한글도메인 한글도메인 한글도메인 한글도메인
;=================================================================
; 한글.kr
xn--bj0bj06e.kr. IN A 123.123.123.100 ; ← 한글도메인을 Punycode로 변환 후 설정
www IN A 123.123.123.100
3. <아파치 웹서버 가상 호스트 설정>
- 만약 기존 영문페이지와 다른 내용을 보여주길 원할 때 사용(Web Server Virtual Host 설정을 사용한다면 설정)
< VirtualHost 123.123.123.100:80>
ServerAdmin admin@nic.or.kr
DocumentRoot /usr/local/www/hangeul/
ServerName xn--bj0bj06e.kr # ← 한글도메인을 Punycode로 변환 후 설정
ServerAlias www.xn--bj0bj06e.kr # ← 한글도메인을 Punycode로 변환 후 설정
CustomLog logs/CustomLog
ErrorLog logs/ErrorLog
< /VirtualHost>
명령어의 경로를 확인하는 명령어이다.
리눅스에서 명령어의 경로와 도움말에 대한 명령어는 which, whereis, whatis, man, find등이 있다. 이중에서 명령어의 경로를 확인하는 가장 일반적인 명령어가 which이다.
흔히 호스팅서버등에서 perl의 경로를 찾는 방법으로 "which perl"과 같은 형태로 사용한다.
사용형식
which [options] [--] programname [...]
사용예 #1
간단히 perl의 경로를 확인하고자 한다면 다음과 같이 한다.
[root@host1 commmand]# which perl
/usr/bin/perl
[root@host1 commmand]#
즉, perl의 경로를 확인코자한다면 "which perl"이라고만 하면 된다.
다음은 netstat이라는 명령어의 명령어 경로를 확인한 것이다.
[root@host1 commmand]# which netstat
/bin/netstat
[root@host1 commmand]#
사용예 #2
이번에는 웹서버나 호스팅서버에서 사용자들이 자주 찾는 명령어 경로를 확인하는 예이다.
[root@host1 commmand]# which sendmail
/usr/sbin/sendmail
[root@host1 commmand]#
[root@host1 commmand]# which find
/usr/bin/find
[root@host1 commmand]#
[root@host1 commmand]# which telnet
/usr/bin/telnet
[root@host1 commmand]#
[root@host1 commmand]# which ssh
/usr/bin/ssh
[root@host1 commmand]#
[root@host1 commmand]# which ftp
/usr/bin/ftp
[root@host1 commmand]#
위의 예는 차례대로 sendmail, find, telnet, ssh, ftp의 명령어 경로를 확인한 예이다.
which 명령어에도 다른 명령어들과 마찬가지로 여러가지 옵션들이 있으나 실무에서는 거의 사용하지 않는 것들이다. 따라서 which 명령어의 설명에서 옵션 사용의 예는 생략하도록 하겠다.
위의 결과를 보면 현재 5명의 사용자가 로그인해 있으며 외부에서 로그인한 사용자는 3명이다.
즉, 192.168.0.2에서 root가 로그인하여 w명령어를 실행하였으며,
192.168.0.202에서 bible1이라는 사용자가 로그인하여 쉘명령어 상태이며,
192.168.0.111에서 bible2라는 사용자가 로그인하여 쉘명령어 상태에 있다.
이렇게 w 명령어는 로컬또는 원격지에서 접속한 사용자정보를 확인할때에 주로 사용한다.
사용예 #2
-h 옵션을 사용하면 head정보를 출력하지 않는 좀 더 간단한 정보를 보여준다.
즉, 앞의 예에서 보았던 head정보(uptime정보와 필드제목정보)를 보여주지 않는다.
–V를 사용하시면 설치되어 있는 ab의 버전을 확인하실 수있습니다. 아래 결과는 현재 필자가 사용하고 있는 ab의 버전이 2.0.40이라는 것을 표시하고 있습니다.
[root@host3 bin]# ab -V
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
[root@host3 bin]#
사용예 #2
수퍼유저코리아(www.superuser.co.kr)의 응답속도를 측정한 것입니다. 참고로 사이트URL의 마지막에는 반드시 "/"가 들어가야함에 주의하시기 바랍니다. 여기서 사용한 옵션 -n은 측정을 위한 웹페이지 요청수를 의미합니다. 즉 "-n 1"이라고 한 것은 지정한 URL을 한번의 요청만으로 결과를 표시한다는 의미입니다.
[root@host3 bin]# ab -n 1 http://www.superuser.co.kr/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Server Software: Apache/2.0
Server Hostname: www.superuser.co.kr
Server Port: 80
Document Path: /
Document Length: 458 bytes
Concurrency Level: 1
Time taken for tests: 1.499567 seconds
Complete requests: 1
Failed requests: 0
Write errors: 0
Total transferred: 700 bytes
HTML transferred: 458 bytes
Requests per second: 0.67 [#/sec] (mean)
Time per request: 1499.567 [ms] (mean)
Time per request: 1499.567 [ms] (mean, across all concurrent requests)
Transfer rate: 0.00 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 17 0.0 17 17
Processing: 1482 1482 0.0 1482 1482
Waiting: 1481 1481 0.0 1481 1481
Total: 1499 1499 0.0 1499 1499
[root@host3 bin]#
사용예 #3
다음과 같이 -c옵션을 사용하면 한번에 수행할 다중 요구수를 지정할 수 있습니다. 지정하지 않는다면 기본값은 1이 됩니다. 테스트시에 –c 30이라고 주었으며, 결과를 보시면 “concurrency Level 30”이라는 것을 보실 수 있을 것입니다. 즉, 동시에 다중세션을 테스트한 것이며 그 결과를 확인 할 수 있습니다. 결과값의 분석은 앞에 설명된 내용과 비교하면서 보시기 바랍니다.
[root@host3 bin]# ab -c 30 http://www.yahoo.com/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.yahoo.com (be patient).....done
Server Software:
Server Hostname: www.yahoo.com
Server Port: 80
Document Path: /
Document Length: 32247 bytes
Concurrency Level: 30
Time taken for tests: 1.75287 seconds
Complete requests: 1
Failed requests: 0
Write errors: 0
Total transferred: 32600 bytes
HTML transferred: 32247 bytes
Requests per second: 0.93 [#/sec] (mean)
Time per request: 32258.610 [ms] (mean)
Time per request: 1075.287 [ms] (mean, across all concurrent requests)
Transfer rate: 28.83 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 208 208 0.0 208 208
Processing: 866 866 0.0 866 866
Waiting: 219 219 0.0 219 219
Total: 1074 1074 0.0 1074 1074
root@host3 bin]#
답변 :
설치시, 랜카드 설정단계에서 PCI 랜카드인 경우는 Autoprobe가 되고,
ISA 방식인 경우에는 irq 와 ioport 를 직접 설정해 주어야 합니다.
ISA 인 경우, 리눅스에서는 PNP 를 사용안하셔야 되고, 랜카드와 같이 들어있는 플로피에 있는 프로그램을 사용하여,
충돌되지 않은 irq 와 ioport 를 선택하시면 됩니다.
아니면, 윈도우 설정을 참고하여 하시면 됩니다.
확인은 /sbin/ifconfig 을 실행하여 eth0 가 나타나는 지를 확인하시면 됩니다.
설치시 랜카드 설정이 잘 안되었을 경우에는, linuxconf 라는 프로그램을 사용하시면 됩니다.
네트워크 관련 셋팅과 랜카드 설정을 같이 할 수 있습니다.
기타, ip 주소, DNS 서버설정, gateway 설정같은 경우는 linuxconf 을 사용하시거나,
netcfg 라는 프로그램을 사용하셔도 됩니다.
시스템 정보를 알아볼 수 있는 방법은 없을까요?
답변 : 다음과 같이 입력하시면 각각의 정보를 보실 수 있습니다.
cpu 정보 : cat /proc/cpuinfo
pci 정보 : cat /proc/pci
사용중인 irq 정보 : cat /proc/interrupts
사용주인 dma 채널 : cat /proc/dma
사용중인 i/o 포트 정보 :cat /proc/ioports
현재 사용가능한 화일 시스템 :cat /proc/filesystems
현재 사용중인 메로리 : cat /proc/meminfo
현재 사용중인 파티션 :cat /proc/partitions
현재 사용중인 스왑 파티션 정보 : cat /proc/swaps
현재 사용중인 커널 버전 : cat /proc/version
현재 사용중인 드라이버 :cat /proc/devices
현재 사용중인 부트 이미지 : cat /proc/cmdline