RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Scripts'에 해당되는 글 3
안타깝게도 CPU 타잎 확인 하는 부분은 제대로 계산이 안된다.
이유는 쿼드코어, 코어2듀오, 듀얼코어, 하이퍼스레딩 등 때문에...
사실 좀 더 세밀하게 짜면 정상적으로 할 수있는데 귀찮아서..........

#!/bin/bash
LANG=C
unset GREP_OPTIONS GREP_COLOR

echo "
################################ SYSTEM CHECK uzoogom edition. ################################

1) Network Information-------------------------------------------------------------------------
1-1) HOSTNAME: `hostname`

1-2) Ethernet Information
`ifconfig | grep -v "127.0.0.1" | grep "addr"`

1-3) Route(gateway) Information
`route | egrep '(default|Gateway)'`


2) SYSTEM Information-------------------------------------------------------------------------
2-1)CPU Information
CPU : `cat /proc/cpuinfo | grep "processor" | wc -l` EA
`cat /proc/cpuinfo | grep "model name" | uniq`
`cat /proc/cpuinfo | grep "MHz" | uniq`

2-2) Memory Information
`free -m`

2-3) Partition Information
`fdisk -l | grep dev`

2-4) Disk Information
`df -h`


3) PROCESS Information-------------------------------------------------------------------------
`pstree`


4) Open Port Scanning-------------------------------------------------------------------------
`netstat -antp | egrep '(LISTEN|Address)'`


5) Auto start processor-------------------------------------------------------------------------
5-1) Crontab
`crontab -l`

5-2) chkconfig list
`chkconfig --list | grep "3:on"`

5-3) rc.local
`egrep -v "(#|touch)" /etc/rc.local`
"
후리켓  | 2009.10.08 16:06 신고
테스트 패치ㅋ

--- test.sh.ori 2009-10-08 06:55:51.000000000 +0900
+++ test.sh 2009-10-08 06:55:27.000000000 +0900
@@ -2,6 +2,10 @@
LANG=C
unset GREP_OPTIONS GREP_COLOR

+if [ ! $LOGNAME = root ] && [ ! $UID = 0 ];then
+ exit
+fi
+
echo "
################################ SYSTEM CHECK uzoogom edition. ################################
요즘에 회사에서 써먹을려고 다시 짠 백업 스크립트
행여나 이 블로그에 흘러들어와서 그걸 그대로 쓴다면 무궁무진한 오류가 뜨니 주의하시요!

#!/bin/bash
#edit by uzoogom 090723
#
# backup configure
host=$(hostname)
day=$(date +%Y-%m-%d)
check=$(mount | grep -c "backup")

# Backup Storage Mounting Check
if [ $check == 1 ]
        then
                echo "Backup Storage Mounting Check .... OK!!"
        else
                echo "Backup Storage Mounting Check .... FAIL!!"
                echo "Exit backup scripts"
                exit 0
fi

# Make a backup Directory
mkdir -p /backup/${host}/{webdata,data,config} 2>/dev/null
mkdir /root/backup/reference 2>/dev/null

# 백업 할 디렉토리를 적을 파일 생성

touch /root/backup/reference/{webdir,datadir,configfile}

# Lists to Backup 백업 할 디렉토리를 적을 파일 생성
WEBDATA=$(grep -v "^#" /root/backup/reference/webdir)
DATA=$(grep -v "^#" /root/backup/reference/datadir)
CONFIG=$(grep -v "^#" /root/backup/reference/configfile)

# TMP Directory
LIST="/tmp/backuplist_$$.txt"

# Target Backup Locations
WEBDATABACKUP="/backup/${host}/webdata"
DATABACKUP="/backup/${host}/data"
CONFIGBACKUP="/backup/${host}/config"
DATABASEBACKUP="/backup/${host}/database"

#
echo "
========================================================================
Starting backup at `date +%Y-%m-%d\ %H:%M:%S`
========================================================================
"

# date to nubmer 증분 백업을 위해서 날자 지정
# 1-Mon, 2-Tue, 3-Wed, 4-Thu, 5-Fri, 6-Sat, 7-Sun
set $(date '+%u')

# backup Time stamp
rm -f /backup/${host}/backupTime*.txt
echo Starting at `date +%Y-%m-%d\ %H:%M:%S` > "/backup/${host}/backupTime($day).txt"

if test "$1" = "6" ;
then
        # weekly a full backup of all data and config. settings:
        #
        echo "Step1. Performing Full Data Backup--------------------------------------"
        tar zcf "$DATABACKUP/data_full_$day.tgz" $DATA 2>/dev/null

        echo "Removing incremental data backups..."
        rm -f $DATABACKUP/data_diff*

        echo "Removing four week old full Data backup..."
        find $DATABACKUP -depth -type f \( -ctime +20 -o -mtime +20 \) -print > $LIST
        rm -f `cat $LIST`
        echo "------------------------------------------------------------------Done +"
        echo ""

        #
        echo "Step2. Performing Full WebData Backup-----------------------------------"
        tar zcf "$WEBDATABACKUP/webdata_full_$day.tgz" --exclude-from=./reference/exclude  $WEBDATA 2>/dev/null

        echo "Removing incremental data backups..."
        rm -f $WEBDATABACKUP/webdata_diff*

        echo "Removing four week old full WebData backup..."
        find $WEBDATABACKUP -depth -type f \( -ctime +20 -o -mtime +20 \) -print > $LIST
        rm -f `cat $LIST`
        echo "------------------------------------------------------------------Done +"
        echo ""

        #
        echo ""
        echo "Step3. Performing Full Config Backup------------------------------------"
        tar zcf "$CONFIGBACKUP/config_full_$day.tgz" $CONFIG 2>/dev/null

        echo "Removing incremental config backups..."
        rm -f $CONFIGBACKUP/config_diff*

        echo "Removing four week old full config backup..."
        find $CONFIGBACKUP -depth -type f \( -ctime +20 -o -mtime +20 \) -print > $LIST
        rm -f `cat $LIST`
        echo "------------------------------------------------------------------Done +"
else
        # incremental data backup:
        #
        echo "Step1. Performing Incremental Data Backup-------------------------------"
        find $DATA -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST
        tar zcfT "$DATABACKUP/data_diff_$day.tgz" "$LIST" 2>/dev/null
        rm -f "$LIST"
        echo "------------------------------------------------------------------Done +"
        echo ""

        # incremental webdata backup:
        #
    echo "Step2. Performing Incremental WebData Backup----------------------------"
        find $WEBDATA -depth -type f \( -ctime -1 -o -mtime -1 \) -print > $LIST
        tar zcfT "$WEBDATABACKUP/webdata_diff_$day.tgz" --exclude-from=./reference/exclude "$LIST" 2>/dev/null
        rm -f "$LIST"
        echo "------------------------------------------------------------------Done +"
        echo ""

        # incremental config backup:
        #
        echo "Step3. Performing Incremental Config Backup-----------------------------"
        find $CONFIG -depth -type f  \( -ctime -1 -o -mtime -1 \) -print > $LIST
        tar zcfT "$CONFIGBACKUP/config_diff_$day.tgz" "$LIST" 2>/dev/null
        rm -f "$LIST"
        echo "------------------------------------------------------------------Done +"
fi

# MySql 용 백업 설정이나, MySql을 마땅히 백업할 서버가 없어서 주석처리
# Database Backup
#
#mkdir -p /backup/${host}/database 2>/dev/null
#DB_DIR="/usr/local/mysql/data"
#
# Create SQL dump of databases and compress:
#echo "
#Archiving Databases...
#"
# Find current databases
# DB=( $(find ${DB_DIR}/ -maxdepth 1 -type d ! -name ".*" | sort | sed -e 's/\/usr\/local\/mysql\/data\///g') )
# Set for loop max counter based on number of databases
# j=${#DB[@]}
# for (( i=0; i<j; i++ )); do
#         mysqldump -u user --password=passwd --opt ${DB[i]} | gzip >"$DATABASEBACKUP/${DB[i]}_$day.sql.gz"
# done
#
#echo "
#Removing two week old database backups...
#"
#find $DATABASEBACKUP -depth -type f \( -ctime +13 -o -mtime +13 \) -print > $LIST
#rm -f `cat $LIST`
#rm -f "$LIST"
#

# backup Time stamp
echo Finished at `date +%Y-%m-%d\ %H:%M:%S` >> "/backup/${host}/backupTime($day).txt"
echo "
========================================================================
Finished: `date +%Y-%m-%d\ %H:%M:%S`
========================================================================
"
exit 0
모든 스크립트의 기본은 정말이지 단순하다.
얼마나 그 명령어에 대해 이해를 하고 있느냐.
단지 그것 뿐이다.

여기에서는 가장 기본적으로 그 해당 명령어를 사용하는 방법은 알고 있으리라 생각하고 적는다.
괜시리 명령어 사용법도 모르면서 스크립트에 덤벼들지 마라. 잘못하면 시원하게 파일을 날릴 수 있으니까!

어찌보면 가장 단순하지만, 가공할만한 잠재력을 가진 명령어 중 하나인 find!
find만 잘 응용해도 열 스크립트 안 부럽다!


1. 특정 파일 속 특정 단어 찾기
ex) html 파일에서 mms:// 찾기
find . -type f -name "*.html" -exec grep "mms://" {} /dev/null \;
(뒤에 /dev/null을 붙이는 이유는 해당 파일명을 보기 위함이다.)

2. 특정 파일 속 특정 단어 바꾸기
ex) html 파일에서 mms://를 http://로 바꾸기
find . -type f -name "*.html" -exec perl -pi -e 's/mms/http/g' {} \;
(유의 할 점은 특수기호[가령 / 같은..]는 인식을 못하기 때문에 문자로 쓰기 위해선 꼭 \를 붙여줘야한다)

3. 특정 파일만 압축하기
ex) html 파일만 찾아서 압축하기
for i in $(find . -name '*.html'); do tar -zrvf html.tgz $i; done

4. 5일 지난 파일 삭제하기
rm -f 'find . -mtime +5'

뭐 기본적으로 이정도만 응용해도 꽤나 훌륭한 결과를 얻을 수 있다.



우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/06   »
          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. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)