RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
Linux  2006/09/08 14:15
출처 블로그 > 패킷 탄 풍경
원본 http://blog.naver.com/jabusunin/20012727371
신의 PC에 현재 설치된 RPM 리스트를 추출하고 이것을 기준으로 rpm 패키지 리스트에서 설치된 패키지 들을 선별해 내는 기능을 가진 스크립트이다.(패키지 버전 무시)

이 스크립트는 sed 와 awk 가 어떻게 사용되는지 보여주기 위한 것이다.

#!/bin/sh
########################################################
clear
echo -en "Make installed rpm list... \n"
rpm -qa > $1

# 시스템에 설치된 패키지 리스트 추출

echo -en "Abstracting Package Names except Version information...\n"
echo -en "SED...\n"
sed 's/-[0-9]/ /' $1 > list.rpm.sed-temp
echo -en "SED... done\n"

# 패키지 리스트에서 버전 정보를 구분하기 위해 공백 생성(단 패키지 이름과 버전은 “-”으로 구분

echo -en "Abstracting Package Names except Version information...\n"
echo -en "SED...\n"
sed 's/-[0-9]/ /' $1 > list.rpm.sed-temp
echo -en "SED... done\n"

# 패키지 리스트에서 패키지 이름만을 추출하여 저장

echo -en "TEMP files delete...\n"
cp list.rpm.awk-temp $1.new
rm -rf list.rpm.sed-temp list.rpm.awk-temp
echo -en "TEMP file delete... done\n"
echo -en "Check this file : $1.new\n"
a=`cat $1.new | wc -l`
echo -en "Total LIST-NUM : $a\n"

# 작업 진행중에 생성된 temp 파일을 삭제하고 추출된 패키지의 개수를 보여준다.

# 아래는 모든 패키지를 모아놓은 디렉토리에서 전 단계에서 추출된 패키지 리스트를 기준으로 패키지를
# 복사해오는 것이다. 각 과정에서 성공인지 실패인지 카운트 하여 결과값을 보여준다.

echo -en "Make dir [pkglist] & copy packagelist...\n"
if [ ! -f pkglist ]; then
mkdir pkglist
fi



# 패키지를 복사해 놓을 디렉토리 생성
b=0
c=0

#패키지 복사 진행 성공과 실패시 카운트

or i in `cat list.rpm.new`
do
cp /경로/RPMS/$i* pkglist/ > /dev/null 2>&1
if [ $? -eq 0 ]; then
b=`expr $b + 1`
echo -en "OK-NUM: $b, COPY : $i\n"
echo "$i" >> OK-LIST
else
c=`expr $c + 1`
echo -en "ERROR-NUM: $c, COPY : $i\n"
echo "$i" >> ERROR-LIST
fi
done
echo -en "...... done\n"
rm -rf list.rpm.new


# 진행 결과 출력

echo -en "Total LIST-NUM:$a, OK-NUM:$b, ERROR-NUM:$c\n"

위 스크립트에서 쓰인 여러 가지 방법들을 응용하면 프로세서의 정보 캐취 라던지, 특정 파일의 검사. 생성, 삭제 등 다양한 스크립트 작성에 도우이 될것이다.


출처 : 리눅스원(주) OS개발팀 (http://www.linuxone.co.kr/bbs/bbsAcademyView.php?id=BBSCAFACATRM&idx=877&perPage=15&pageNum=1&searchOption=&searchText=)

2006/09/08 14:15 2006/09/08 14:15
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2024/11   »
          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
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)