[Cron] Unix, Linux

 

주기적인 프로그램 수행 : cron 시설  [ 04/05/27 03:18 ]

cron주기적으로 프로그램을 수행할 수 있게 해주는 유닉스 시설이다.

crontab 파일
보통 : /var/spool/cron/crontabs / FreeBSD : /var/cron/tabs, /etc/crontab
리눅스 : /var/spool/cron(레드햇) / /var/spool/cron/tabs(수세)
/etc/crontab(레드햇,수세)


crontab 형식
보통 : 시스템 V (사용자 필드가 없음)
BSD : /etc/crontab(사용자 이름이 6번째 필드여야 함)


cron.allow, cron.deny 파일
보통 : /var/adm/cron / FreeBSD : /var/cron
리눅스 : /etc(레드햇) , /var/spool/cron(수세)
솔라리스 : /etc/cron.d


관련기능
보통 : 없음 / FreeBSD : periodic 유틸리티
리눅스 : /etc/cron.*(houry, daily, weekly, monthly)
레드햇 : anacron 유틸리티


cron 로그 파일
보통 : /var/adm/cron/log / FreeBSD : /var/log/cron
리눅스 : /var/log/cron / 솔라리스 : /var/cron/log


crond의 pid 가 기록되어 있는 파일
보통 : 없음 / FreeBSD : /var/run/cron.pid
리눅스 : /var/run/crond.pid(레드햇), /var/run/cron.pid(수세)


cron을 시작하는 부팅 스크립트
FreeBSD : /etc/rc / HP-UX : /sbin/init.d/cron
리눅스 : /etc/init.d/cron / 솔라리스 :/etc/init.d/cron


부팅 스크립트 설정 파일 cron 관련 엔트리
FreeBSD : /etc/rc.conf / cron_enable="YES",cron_flags="args-to-cron"
HP-UX : /etc/rc.config.d/cron (CRON=1) / 리눅스 : 사용하지 않음
솔라리스 : /etc/default/cron (CRONLOG=yes)


 

crontab 파일

무엇을 실행하고 언제 실행할지 여부를 결정하는 파일, cron 스케줄.

*시스템 V 방식 에서 사용자는 기본적으로 crontab 엔트리는 사용자마다 /var/spool/cron/crontabs/사용자명 디렉토리에 저장된다.
예) /var/spool/cron/crontabs/root

* BSD 방식은 전통적으로 /etc/crontab 파일 하나만 사용한다.
*FreeBSD,리눅스 시스템은 파일도 사용하고 디렉토리도 사용한다.

crontab 파일은 직접적인 편집보다 crontab 명령어를 이용하여 생성 수정한다.

crontab 파일의 엔트리
 
                |-----------------------------------------------|
                | 필드  |   표기되는 대상   |    사용가능한 값       |
                |-----------------------------------------------|
                | 필드1 |             분            |         0 - 59, *         |
                | 필드2 |            시간          |         0 - 23, *         |
                | 필드3 |             일            |         1 - 31, *         |
                | 필드4 |             월            |         1 - 12, *         |
                | 필드5 |            요일          | 0 - 6 (0=sunday), * |
                | 필드6 | 명령(행의 끝까지) |                             |
                |-----------------------------------------------|


minutes hours day-of-month weekday command
  
1.각필드는 공백으로 구분하고 요일후에는 모든것을 명령어로 취급하므로 공백이 포함될수 있다.
2.필드에는 단일 숫자, 숫자-숫자(범위) , 쉼표로 분리한 단일숫자 또는 범위 목록, 애스터리크 사용가능
3. 첫문자가 # 일경우 주석처리
4. 명령어에 퍼센트기호(%)가 있으면 기호 이후에 나타나는 텍스트를 표준 입력으로 사용한다. 이후에 나타나는 퍼센트 기호는 텍스트를 여러행으로 분리하는 데 사용한다.
  예) 30 11 31 12 * /usr/bin/wall%Hppy New Year!%Let's make it treat!
5. 요일과 날짜는 OR 처리된다고 생각할수 있다.
  예) * * 1 1 1 /usr/local/bin/test55 (1월1일 과 매 월요일에 실행된다)
<참고> BSD 시스템에서는 여섯 번째 필드는 명령어를 실행할 사용자 계정이고 요일도 달라서 월요일이 1이고 일요일이 7이다
  예) 0 3 * * 6-7 root /var/adm/weekend.sh


FreeBSD, 리눅스 crontab 엔트리 형식 향상점
1. 월과 요일은 처음 세글자로 줄여 지정가능 (예, mon, jan, feb....)
2. 일요일을 0과 7모두 사용 가능
3. 범위 목록을 동시에 사용가는 (예, 2,4,6-7) -> HP-UX에서도 가능함
4. /n 을 통해 주기를 지정할수 있다.
   (예) 시를 8-18/2 -> 8시부터18시까지 2시간마다
      분을 */5 5분마다
5. crontab 파일에서 본 셸 형식으로 환경 변수 정의 가능
   (예) MAILTO=kenauros
6. FreeBSD 시스템에서는 스케쥴 필드 대신 특수 문자열을 사용할수 있다
    @reboot
    @yearly    1월1일 자정
    @monthly 매달 1일 자정
    @weekly 매주 일요일 자정
    @daily 자정
    @hourly 매시간 0분


crontab 엔트리 추가 하기
$crontab mycron
/var/spool/cron/crontabs/유저명 에 mycron 파일 생성

$crontab -l
crontab 엔트리 보기

$crontab -r
crontab 엔트리 제거

$crontab -e
직접 crontab 파일을 변경

#crontab -e adm
루트가 adm 의 crontab 엔트리 변경
FreeBSD,리눅스 에서는 -u 를 통해 사용자를 지정가능
#crontab -e -u adm


cron 보안 문제

cron.allow 파일이 존재할경우 사용자 이름이 있어야만 crontab을 실행할수 있다
cron.allow 파일은 없지만 cron.deny가 있으면 cron.deny 에 없는 사람만 crontab

명령어를 사용할수 있다. cron.deny가 빈파일이면 아누나 cron 기능을 사용할수 있다.
두 파일 모두 없으면 루트만 하용할수 있다.(리눅스 , FreeBSD 에서는 두파일 모두 없으면

아무나 사용할수 있다.)

 

 

[Cron] Solaris, HP, AIX

 

[Solaris]
솔라리스에서는 crondtab -e하면 않되네요..
어떻게 해야 편집되요?

EDITOR=vi
export EDITOR

 

[HP]

$ crontab -e
crontab: you are not authorized to use cron.  Sorry.
$ crontab -l
crontab: you are not authorized to use cron.  Sorry.

 

#vi /var/adm/cron/cron.allow


# ps -ef | grep cron
    root  1132     1  0  Mar 31  ?         0:00 /usr/sbin/cron
    root 10570 10174  0 09:50:09 pts/tc    0:00 grep cron
#cd /sbin/init.d

# ./cron stop
cron stopped
# ps -ef | grep cron
    root 10579 10174  0 09:50:33 pts/tc    0:00 grep cron
# ./cron start
cron started
#

 

[AIX]

# more /etc/inittab

cron:23456789:respawn:/usr/sbin/cron

...

 

http://unix.co.kr/data/irix/?p=11

inittab: script for the init process
형식: id:level:action:process
기능: 
 id : 유일한 두개 또는 하나의 문자.
 level: (0~6, s, S)
level이 빈란이면 action은 모든 level들에대하여 가능.
 action :  어떤 행동을 취해야 하 는지를 알고있는 스크립를 실행.
action의 종류는
sysinit int가 시스템 콘솔을 다루기를 시도하기전에 수행해야할 활동을 해라.
respawn 프로세스를 시작하고, 이것이 죽으면 자동으로 재 시작해라.
wait 프로세스를 시작하고, 이 실행 상태를 위한 다음 에트리로 가기 전에 , 끝날때까지 기다려라.
boot  단지 부팅시에만 에트리를 시작한다.
powerfail init가  power fail 신호를 받았을때 실행 해라.
bootwait 이것은 시스템이 부팅된후 single-user에서 multi-user 상태로 갈때 실행된다.
off 이것은 무시해라.
initdefault 디폴트 실행 단계를 지정해라. 일반적으로 2혹은 3으로 정해라.
once 이미 실행하고 있지않으면 프로세스를 시작한다.
bcheckrc root file system을 준비한다.
brc /etc/fstab을 체크해서 모든 파일 시스템을 마운트 시켜라.
rc0 shutdown level script
rc2 multiuser level script
uadmin 시스템 종료를 초기화하는 명령어.
 process :This is a sh command to be executed. 
예;
is:2:initdefault:
fs::sysinit:/etc/bcheckrc </dev/console >/dev/console 2>&1 
mt::sysinit:/etc/brc </dev/console >/dev/console 2>&1 
link::wait:/etc/lnsyscon > /dev/console 2>&1 < /dev/null 
s0:06s:wait:/etc/rc0 >/dev/console 2>&1 </dev/console 
s1:1:wait:/etc/shutdown -y -iS -g0 >/dev/console 2>&1 </dev/console 
s2:23:wait:/etc/rc2 >/dev/console 2>&1 </dev/console 
s3:3:wait:/etc/rc3 >/dev/console 2>&1 </dev/console 
s4:06:wait:/etc/umountfs > /dev/console 2>&1 
of:0:wait:/etc/uadmin 2 0 >/dev/console 2>&1 </dev/console 
RB:6:wait:/etc/init.d/announce restart 
rb:6:wait:/etc/uadmin 2 1 >/dev/console 2>&1 </dev/console 


# on-board ports or on Challenge/Onyx MP machines, first IO4 board ports 
t1:23:respawn:/sbin/getty ttyd1 co_9600         # alt console 
t2:23:off:/sbin/getty -N ttyd2 co_9600          # port 2 
t3:23:off:/sbin/getty -N ttyd3 co_9600          # port 3 
t4:23:off:/sbin/getty -N ttyd4 co_9600          # port 4 
 

option:
 
 SEE ALSO 
     getty(1M), init(1M), sh(1), who(1), exec(2), open(2), signal(2). 
 

 

변경 ..

cron:23456789:wait:/usr/sbin/cron

 

재부팅 후..

#ps -ef | grep cron

#kill -9 ??

#/usr/sbin/cron start &

 

 

stopsrc [-h host] [-f | -c] -s subsystem_name

startsrc [-h host] [-e environment] [-a argument] -s subsystem_name

#stopsrc -s sendmail


 

 

[Cron][Log] SecureOS & Cron_Shellscript

 

SecureOS & Shellscript
#vi shellscript.pl

#/bin/bash
chmod 777 /root/testdir/testfile
cat /root/testdir/testfile

#./shellscript.pl
번호 서버 시간 접속IP목적IP 사용자 프로세스 대상 접근형태 대응방법 롤 인증서비스 터미널 시스템콜 
1 WOW7.3 08-11 01:18 192.168.22.1   (102 : root : 0) chmod (3610,47421) /root/testdir ACTL : W DENY Test_shellscript    chmod 
2 WOW7.3 08-11 01:18 192.168.22.1   (102 : root : 0) cat (3611,47459) /root/testdir ACTL : R DENY Test_shellscript  pts/1 open 
----------------------------------------------------------------------------------------

SecureOS & Cron

crontab -e 명령어를 통해서 예약작업을 설정하면..
/var/spool/cron/사용자명 파일로 저장됩니다.

$ crontab -l
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59 * * * * cat /root/testdir/procfile
# crontab -l
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59 * * * * cat /root/testdir/testfile

번호 서버 시간 접속IP목적IP 사용자 프로세스 대상 접근형태 대응방법 롤 인증서비스 터미널 시스템콜 
1 WOW7.3  08-11 01:41 0.0.0.0   (-1 : a : 102)         cat (1382,47459) /root/testdir ACTL : R ACPT Test_shellscript  notty open 
2 WOW7.3  08-11 01:41 0.0.0.0   (-1 : root : 0) cat (1381,47459) /root/testdir ACTL : R ACPT Test_shellscript  notty open 
----------------------------------------------------------------------------------------

SecureOS & Cron+Shellscript

# crontab -l
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59 * * * * /root/HZ_Test/shellscript.pl

번호 서버 시간 접속IP목적IP 사용자 프로세스 대상 접근형태 대응방법 롤 인증서비스 터미널 시스템콜 
1 WOW7.3  08-11 01:53 0.0.0.0   (-1 : root : 0) chmod (1309,47421) /root/testdir ACTL : W ACPT Test_shellscript  notty chmod 
2 WOW7.3  08-11 01:53 0.0.0.0   (-1 : root : 0) cat (1310,47459) /root/testdir ACTL : R ACPT Test_shellscript  notty open 

 

 

목적 :

Cron을 사용하면서 luid=-1값을 가지고 cp, sh 등의 프로세스를 가지고 /var/adm에 접근하는 문제를 해결하도록 모색해 본다.

 

테스트 환경 :

Linux, Solaris, HP, AIX에 대해 테스트 하였습니다.

 

테스트 내용 :

시스템이 부팅된 후 Cron을 설정하면 다음과 같이 luid=-1 이 나옵니다.

17 03-22 09:35 155 0.0.0.0   (-1 : root : 0) abc.sh (8606,313631) /opt/XXXXX ACTL : X DENY .XXXXX tty/255   
18 03-22 09:35 155 0.0.0.0   (-1 : jhlee : 100) user.sh (8612,313631) /opt/XXXXX ACTL : X DENY .XXXXX tty/255 

 

root의 사용자로 로긴한 후 root 사용자가 Cron을 재시작하면 다음과 같이 luid=0 이 나옵니다.

19 03-22 09:38 155 0.0.0.0   (0 : root : 0) abc.sh (8652,313631) /opt/XXXXX ACTL : X DENY .XXXXX tty/255   
20 03-22 09:38 155 0.0.0.0   (0 : jhlee : 100) user.sh (8657,313631) /opt/XXXXX ACTL : X DENY .XXXXX tty/255 

 

(단 AIX만이 프로세스 명이 abc.sh이라고 나오지 않고 sh로 나왔습니다.)

 

결론 :

Cron을 사용하게 되면서 /var/adm 의 디렉토리에 cp, sh .. 등의 프로세스를 설정해 주어야 했는데..

Cron을 root가 재시작하고 정책에 관리자로서 root를 포함하여 위의 문제를 우회할 수 있을것 같습니다.

[출처] Cron|작성자 maniacat


'LinuX' 카테고리의 다른 글

klogin과 rlogin  (0) 2009.06.08
linux 파티션 나누기  (0) 2009.05.08
USB 휴대용 저장 장치 마운트  (0) 2008.09.08
linux make law device(리눅스 raw device 생성)  (0) 2008.09.04
dpkg와 apt 사용하기  (0) 2008.01.08
linux make law device(리눅스 raw device 생성) Linux(redhat계열)
rawdevice 사용하기
rawdevice 는 DB등의 애플리케이션에서 성능을 위하여 OS를 거치지 않고 직접 해당 디스크를 이용하는 방식입니다.

ㅇ fdisk 이용 파티션 생성
예) /dev/sdb1 100M
&nbsp;&nbsp;&nbsp;&nbsp; /dev/sdb2 500M

ㅇ raw device 매핑하기
RHEL 2.1/3.0 의 경우 raw device는 /dev/raw/ 디렉토리에 있습니다.

&nbsp;&nbsp;raw /dev/raw/rawN &lt;major&gt; &lt;minor&gt;
&nbsp;&nbsp;raw /dev/raw/rawN /dev/&lt;blockdev&gt;

앞에서 fdisk를 이용하여 만든 파티션(블락디바이스)와 raw 명령을 이용하여 매핑작업을 합니다.

raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw1 /dev/sdb2

raw 디바이스 세팅 상황을 보려면 -q 옵션을 이용하면 됩니다.

&nbsp;&nbsp;raw -q /dev/raw/rawN
&nbsp;&nbsp;raw -qa

raw 매핑하는 것은 재부팅시 자동으로 실행하도록 해야 합니다. 그러기 위해서 /etc/rc.d/rc.local 에 명령을 넣어둘수 있습니다.

RHEL 에서는 위 과정을 편하게 할 수 있도록 /etc/sysconfig/rawdevices 파일에 설정내용을 넣어둘 수 있습니다.
이 경우에는 /etc/init.d/rawdevices 프로그램을 부팅시 자동으로 시작할 수 있도록 해야 합니다.
chkconfig --level 345 rawdevices on -&gt; runlevel 3,4,5 에서 rawdevices 를 자동으로 시작하도록 함

참고로 raw 디바이스 매핑을 할 수 있지만 이것을 해제하는 것은 없는 것으로 보여집니다.
일반적으로 초기 세팅시 이 과정을 진행하기 때문에 이때문에 문제가 있을것이란 생각은 들지 않습니다.

ㅇ raw device 에 대한 소유권 조정
해당 raw device 에 대해 필요한 사용자 및 그룹으로 소유권을 조정합니다.

chown oracle9i.dba&nbsp;&nbsp;device 명
chmod 660 device 명

ㅇ 해당 프로그램에서 사용시
해당 프로그램에서 사용시에는 위에서 만든 raw device 명을 지정하여 사용하면 됩니다.

'LinuX' 카테고리의 다른 글

linux 파티션 나누기  (0) 2009.05.08
Cron  (0) 2008.11.24
USB 휴대용 저장 장치 마운트  (0) 2008.09.08
dpkg와 apt 사용하기  (0) 2008.01.08
apt-get 명령어  (0) 2008.01.08
rpm 다음으로 리눅스 배포판에서 가장 널리 쓰이는 패키지 관리자는 dpkg 로  .deb 패키지를 관리할때 사용한다. 이름이 얘기해주듯 .deb 포맷은 데비안 배포판에서 나온 것이다. 물론 다른 배포판에서도 사용한다. rpm 포맷처럼 .deb 포맷도 시스템이 일관성을 유지할 수 있도록 돕기 위해 의존성과 파일정보를 유지한다.

dpkg 는 데비안 패키지 관리자의 저수준 인터페이스로 대부분의 기능은 apt 통합 프로그램 또는 dselect, aptitude, gnome-apt, synaptic, kpackage 와 같은 프론트엔드를 통해 처리한다.

데비안 시스템에 .deb 패키지는 다음과 같이 설치한다. 예를 들어 superfrob_4-1_i386.deb 라는 이름의 패키지가 있다면 다음과 같이 설치한다.

dpkg -i superfrob_4-1_i386.deb

rpm 과 달리 dpkg 는 새로운 패키지를 설치하는 것과 기존의 패키지를 업그레이드 하는 것을 구분하지 않는다. 둘다 -i 옵션을  사용한다.


패 키지를 언인스톨하려면 -r(--remove) 또는 -P(--purge) 옵션을 사용한다. -r 옵션은 패키지를 제가하긴 하지만 설정 파일은 남겨둔다. 반면에 -P 는 시스템 전반의 설정 파일도 함께 제거한다. 예를 들어 superfrob 을 완전히 제거하려면 다음과 같이 한다.

dpkg -P superfrob


dpkg 에서 -l(--list) 옵션을 사용하여 시스템에 어떤 패키지가 설치되어 있는지 알 수 있다.

yoda@yoda-desktop:~$dpkg -l

희망상태=알수없음(u)/설치(i)/지우기(r)/깨끗이(p)/고정(h)
| 상태=설치안됨(n)/설치됨(i)/설정(c)/풀림(u)/설정실패(f)/일부설치(h)
|/ 오류?=(없음)/고정(h)/다시설치필요(r)/둘-다(x) (상태, 오류가 대문자=불량)
||/ 이름                                 버전                                설

+++-======================================-=====================================-============================================
ii  acpi                                   0.09-1
 displays information on ACPI devices
ii  acpi-support                           0.85
 a collection of useful events for acpi
ii  acpid                                  1.0.4-1ubuntu11
 Utilities for using ACPI power management
ii  adduser                                3.80ubuntu2
 Add and remove users and groups
ii  alacarte                               0.8-0ubuntu12
 easy menu editing
ii  alien                                  8.64
 install non-native packages with dpkg
ii  alsa-base                              1.0.10-4ubuntu4
 ALSA driver configuration files
ii  alsa-utils                             1.0.10-1ubuntu14
 ALSA utilities
...

출력내용의 처음 3줄은 각 패키지 이름 앞에 3개의 열이 어떤 의미를 갖는지 알려준다. 대부분 ii 로
패키지가 알맞게 설치되었다는 뜻이다.

특정 패키지가 어떤 버전인지 궁금 할 경우엔 -l 옵션에 패키지 이름을 붙인다.

yoda@yoda-desktop:~$ dpkg -l gcc
희망상태=알수없음(u)/설치(i)/지우기(r)/깨끗이(p)/고정(h)
| 상태=설치안됨(n)/설치됨(i)/설정(c)/풀림(u)/설정실패(f)/일부설치(h)
|/ 오류?=(없음)/고정(h)/다시설치필요(r)/둘-다(x) (상태, 오류가 대문자=불량)
||/ 이름         버전         설명
+++-==============-==============-============================================
ii  gcc            4.0.3-1        The GNU C compiler


특정 파일이 어디에 속하는지도 알 수 있다.

yoda@yoda-desktop:~$ dpkg --search /bin/false
coreutils: /bin/false

설치되어 있는  패키지 대한 정보를 출력할 수도 있다.(-s 옵션을 써도 됨)

yoda@yoda-desktop:~$ dpkg --status dpkg
Package: dpkg
Essential: yes
Status: install ok installed
Priority: required
Section: base
Installed-Size: 5424
Origin: debian
Maintainer: Scott James Remnant <scott@netsplit.com>
Bugs: debbugs://bugs.debian.org
Architecture: i386
Version: 1.13.11ubuntu6
Replaces: dpkg-doc-ja, dpkg-static, manpages-de (<= 0.4-3)
Pre-Depends: libc6 (>= 2.3.4-1), coreutils (>= 5.93-1)
Suggests: apt
Conflicts: sysvinit (<< 2.82-1), dpkg-iasearch (<< 0.11), dpkg-static, dpkg-dev (<< 1.10)
Conffiles:
 /etc/dpkg/dpkg.cfg a56f60fb9ab2a5cfe8ea3b30ea6fa35c
 /etc/dpkg/origins/debian 731423fa8ba067262f8ef37882d1e742
 /etc/alternatives/README 69c4ba7f08363e998e0f2e244a04f881
 /etc/logrotate.d/dpkg 501f8c90b83c7ea180868ca82e1e82d1
Description: package maintenance system for Debian
 This package contains the low-level commands for handling the installation
 and removal of packages on your system.
 .
 In order to unpack and build Debian source packages you will need to
 install the developers' package `dpkg-dev' as well as this one

--info 옵션을 사용하면 가지고 있는 아카이브에 대해서 정보를 추력할 수 있다. 또한 -c(--contents)옵션을 사용하면 .deb 아카이브에 있는 파일과 디렉토리 목록을 나열할 수 있다.



dpkg 외에도 데비안과 기타 다른 데비안 기반의 배포판은 apt 프로그램을 제공한다. apt 는 'Advanced Package Tool'을 뜻하는 것으로, 다양한 패키지의 형식을 처리할 수 있는 아카이브(독립적인) 시스템으로 설계되었다.
아마도 apt 의 가장 중요한 기능은 자동으로 의존성 문제를 해결해 준는 능력일 것이다. 만약 어떤 패키지를 설치하려는데 다른 패키지가 필요하다면 apt 는 스스로 그 필요한 패키지를 다양한 출처(cd -rom, 로컬 미러 사이트, 인터넷등) 에서 찾으려고 시도 할 것이다.

apt 의 가장 유용한 인터페이스는 apt-get 명령이다. apt-get 은 사용 가능한 패키지 목록(페키지 캐시) 을 관리와 의존성 문제를 해결하고 패키질르 설치하는 데 사용한다. 보통 apt 캐시를 갱신하는데서 부터 시작한다.

yoda@yoda-desktop:~$apt-get update

받기:1 http://kr.archive.ubuntu.com dapper Release.gpg [189B]
받기:2 http://kr.archive.ubuntu.com dapper-updates Release.gpg [189B]
기존 http://kr.archive.ubuntu.com dapper Release
기존 http://kr.archive.ubuntu.com dapper-updates Release
기존 http://kr.archive.ubuntu.com dapper/main Packages
기존 http://kr.archive.ubuntu.com dapper/restricted Packages
기존 http://kr.archive.ubuntu.com dapper/main Sources
기존 http://kr.archive.ubuntu.com dapper/restricted Sources
기존 http://kr.archive.ubuntu.com dapper-updates/main Packages
기존 http://kr.archive.ubuntu.com dapper-updates/restricted Packages
기존 http://kr.archive.ubuntu.com dapper-updates/main Sources
기존 http://kr.archive.ubuntu.com dapper-updates/restricted Sources
받기:3 http://security.ubuntu.com dapper-security Release.gpg [189B]
기존 http://security.ubuntu.com dapper-security Release
기존 http://security.ubuntu.com dapper-security/main Packages
기존 http://security.ubuntu.com dapper-security/restricted Packages
기존 http://security.ubuntu.com dapper-security/main Sources
기존 http://security.ubuntu.com dapper-security/restricted Sources
내려받기 3바이트, 소요시간 2s (1바이트/초)
꾸러미 목록을 읽는 중입니다... 완료

출력 내용을 보면 배포판에 갱신 내용이 있으며, 시스템에 설치되어 있는 패키지를 업그레이드해야 할 것이라는 사실을 아려준다. 자동으로 하기 위해서는 apt-get 의  upgrade 옵션을 사용한다.

yoda@yoda-desktop:~$ sudo apt-get upgrade
꾸러미 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다... 완료
다음 꾸러미를 업그레이드할 것입니다:
  app-install-data-commercial base-files cupsys cupsys-bsd cupsys-client eog
  file-roller firefox firefox-gnome-support gdm gedit gedit-common gnome-about
  gnome-accessibility-themes gnome-applets gnome-applets-data
  gnome-desktop-data gnome-games gnome-games-data gnome-menus gnome-panel
  gnome-panel-data gnome-screensaver gnome-session gnome-themes gnupg
  gstreamer0.10-alsa gstreamer0.10-gnomevfs gstreamer0.10-plugins-base
  gstreamer0.10-plugins-base-apps gstreamer0.10-x gtk2-engines-clearlooks
  gtk2-engines-crux gtk2-engines-highcontrast gtk2-engines-industrial
  gtk2-engines-lighthouseblue gtk2-engines-mist gtk2-engines-pixbuf
  gtk2-engines-redmond95 gtk2-engines-smooth gtk2-engines-thinice gtkhtml3.8
  imagemagick language-pack-en language-pack-en-base language-pack-gnome-en
  language-pack-gnome-en-base language-pack-gnome-ko
  language-pack-gnome-ko-base language-pack-ko language-pack-ko-base
  language-selector language-selector-common libcupsimage2 libcupsys2
  libeel2-2 libeel2-data libgnome-desktop-2 libgnome-menu2 libgnomeui-0
  libgnomeui-common libgstreamer-plugins-base0.10-0 libgtk2.0-0 libgtk2.0-bin
  libgtk2.0-common libgtkhtml3.8-15 libgtksourceview-common
  libgtksourceview1.0-0 libkrb53 libmagick9 libnautilus-burn3
  libnautilus-extension1 libnspr4 libnss3 libpanel-applet2-0 libpango1.0-0
  libpango1.0-common libtiff4 libtotem-plparser1 libwmf0.2-7
  linux-image-2.6.15-26-386 nautilus nautilus-cd-burner nautilus-data
  python-gmenu totem totem-gstreamer ubuntu-base ubuntu-minimal
  ubuntu-standard yelp zenity
92개 업그레이드, 0개 새로 설치, 0개 지우기 및 0개 업그레이드 안 함.
74.2M바이트 아카이브를 받아야 합니다.
압축을 풀면 1430k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까 [Y/n]? y
...

만약 업그레이드 하려는 패키지가 의존성 문제에 걸린다면 그것은 업그레이드 하지 않고 대신 hold(잠금) 상태로 바꾼다. apt-get upgrade는 hold 상태인 패키지를 판올림하지 않을 것이다.(이것이 hold(잠금)의 의미이기도 하다.)
만약 이 패키지를 업그레이드 하고 싶다면 apt-get install 명령을 사용한다. apt 는 자동으로 홀드 상태를 해지하고 지정된 패키지와 더불어 의존적인 패키지들까지 다운로드해서 설치하거나 업그레이드 한다.

apt 의 또다른 유용한 기능으로는 저장 공간에 들어 있는 패키지 정보를 찾을 수 있게 해주는 기능이 있다. apt-cache 명령은 설치할 수 있는 패키지에 대한 정보를 찾는데 사용한다. 일반적으로 apt-cache 명령은 단어 또는 완전한 문구 (따옴표를 사용함) 또는 정규 표현식을 사용하여 패키지의 설명에서 키워드를 찾아 해당 패키지를 찾는다. 예를 들어 ogg vorbis 로 인코딩된 음악 파일을 재생 시켜주는 패키지를 찾는다면 다음과 같이 search 옵션을 사용하여 해당 패키지를 찾을 수 있다.

yoda@yoda-desktop:~$ apt-cache search ''ogg vorbis''
juk - music organizer and player for KDE
k3b - A sophisticated KDE CD burning application
kaudiocreator - CD ripper and audio encoder frontend for KDE
libakode-dev - development files for akode
libakode2 - akode plugin for aRts
libmpcdec-dev - Musepack (MPC) format library [development files]
libmpcdec3 - Musepack (MPC) format library
libshout3 - MP3/Ogg Vorbis broadcast streaming library
libshout3-dev - MP3/Ogg Vorbis broadcast streaming library (development)
libspeex-dev - The Speex Speech Codec
libspeex1 - The Speex Speech Codec
libtag1-dev - TagLib Audio Meta-Data Library [development]
libtag1c2a - TagLib Audio Meta-Data Library
libtagc0 - TagLib Audio Meta-Data Library (C bindings)
libtagc0-dev - TagLib Audio Meta-Data Library (C bindings) [development]
libvorbis-dev - The Vorbis General Audio Compression Codec (development files)
libvorbis0a - The Vorbis General Audio Compression Codec
libvorbisenc2 - The Vorbis General Audio Compression Codec
libvorbisfile3 - The Vorbis General Audio Compression Codec
python-pyvorbis - A Python interface to the Ogg Vorbis library
speex-doc - Documentation for speex
vorbis-tools - several Ogg Vorbis tools
vorbisgain - add suggested volume level for .ogg files as .ogg comment
xmms - Versatile X audio player

여기서 관심 대상의 패키지에 apt-cache 의 show  옵션을 사용하면 자세히 알아볼 수 있다.

yoda@yoda-desktop:~$ apt-cache show xmms
Package: xmms
Priority: optional
Section: sound
Installed-Size: 7256
Maintainer: Josip Rodin <joy-packages@debian.org>
Architecture: i386
Version: 1.2.10+cvs20050809-4ubuntu5
Replaces: x11ampg, x11amp, xmms-vorbis, alsa-xmms
Provides: mp3-decoder, x11ampg, x11amp, xmms-vorbis, alsa-xmms
Depends: libc6 (>= 2.3.4-1), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.10-4), libice6, libsm6, libssl0.9.8 (>= 0.9.8a-1), libx11-6, libxext6, libxi6, libxxf86vm1Recommends: libasound2 (>> 1.0.10), libaudiofile0 (>= 0.2.3-4), libesd-alsa0 (>= 0.2.35) | libesd0 (>= 0.2.35), libgl1-mesa | libgl1, libmikmod2 (>= 3.1.10), libogg0 (>= 1.1.3), libvorbis0a (>= 1.1.2), libvorbisfile3 (>= 1.1.2), zlib1g (>= 1:1.2.1), unzip
Conflicts: x11ampg, x11amp, xmms-vorbis, alsa-xmms
Filename: pool/main/x/xmms/xmms_1.2.10+cvs20050809-4ubuntu5_i386.deb
Size: 1053870
MD5sum: 41129fd7158e7992bf611becc7dafd1f
Description: Versatile X audio player
 X MultiMedia System is a player for various audio formats,
 with a customizable interface based on X/GTK+.
 .
 It's able to read and play:
  * Audio MPEG layer 1, 2, and 3 (with mpg123 plug-in),
  * Ogg Vorbis files (with the Ogg Vorbis plug-in),
  * CD Audio (with CDAudio plug-in), with CDDB support,
  * WAV, RAW, AU (with internal wav plug-in and MikMod plug-in),
  * MOD, XM, S3M, and other module formats (with MikMod plug-in),
  * .cin files, id Software.
 It has eSound, OSS, and disk writer support for outputting sound.
 .
 It looks almost the same as famous Winamp, and includes those neat
 features like general purpose, visualization and effect plug-ins,
 several of which come bundled, then spectrum analyzer, oscilloscope,
 skins support, and of course, a playlist window.
Bugs: mailto:ubuntu-users@lists.ubuntu.com
Origin: Ubuntu



더 자세한 내용은 맨패이지나 하우투 등을 찾아보면 된다.

아래는 관련 내용 링크

http://debianusers.org/DebianWiki/wiki.php/APT%20&%20Dpkg%20%C8%C4%B5%FC%20%BA%B8%B1%E2

출처 : http://blog.naver.com/khsrdc/110007559215

'LinuX' 카테고리의 다른 글

linux 파티션 나누기  (0) 2009.05.08
Cron  (0) 2008.11.24
USB 휴대용 저장 장치 마운트  (0) 2008.09.08
linux make law device(리눅스 raw device 생성)  (0) 2008.09.04
apt-get 명령어  (0) 2008.01.08
1. 패키지 캐쉬 갱신 및 자동 업그레이드

 # apt-get update ; apt-get upgrade


2. 원하는 패키지 찾기

# apt-cache  serach 파일명


3. 패키지 삭제
# apt-get remove 패키지명
또는 # dpkg -P 패키지명


4.CD-ROM 목록 추가

# apt-cdrom add


5. 개별 패키지 설치

# apt-get install 파일명


6. 원하는 패키지 찾은 다음 정보 출력

# apt-cache show 파일명


7. 의존성 검사 수행후 패키지 업그레이드

# apt-get dist-upgrade


8. dselect에서 선택한 패키지의 설치 및 삭제


# apt-get dselect-upgrade


9. 설치된 패키지를 볼때

# dpkg -l



10. apt-get install 명령어로 받은 deb 파일의 저장 위치


/var/cache/apt/archive/

위 폴더에 .deb 패키지파일로 저장됨.

출처 : http://blog.naver.com/hjt1761/60046124440

'LinuX' 카테고리의 다른 글

linux 파티션 나누기  (0) 2009.05.08
Cron  (0) 2008.11.24
USB 휴대용 저장 장치 마운트  (0) 2008.09.08
linux make law device(리눅스 raw device 생성)  (0) 2008.09.04
dpkg와 apt 사용하기  (0) 2008.01.08

+ Recent posts