[etc] ¸®´ª½º - ÀÌ°Ô ½ºÅ©¸³Æ®°¡ ¹«½¼ ¶æÀϱî¿ä?

   Á¶È¸ 3780   Ãßõ 0    

 리눅스 스크립트입니다.

혹시 초보자도 쉽게 이해할 수 있게 

한 구문 구문 상세히 설명해주실분 계실까요?.. 

#제가 알고 있는 히스토리는 이렇습니다. collector 디렉토리에 실시간으로 로그가 쌓여 다른 곳으로 파싱되는데 이 파싱 기능이 제대로 작동하지 않아 실시간 로그들이 빠르게 처리되지 않고 계속 누적되어 쌓여 디렉토리가 거의 꽉차버렸습니다.

그래서 일단은 collector_bak_20210720 이라는 디렉토리로 어느정도 옮겨놓은 상태이고, 제 상사분께서 아래와 같은 스크립트를 만들어 실행시켰습니다. (해석 좀 부탁드립니다..)



# cat test.sh

#! /bin/bash


filename="collector_bak_20210720" // 실시간 로그 수집 디렉토리인 collector에 데이터가 가득차 이 디렉토리로 좀 옮김.

count=0

limit=100

for temp in `ls $filename`

do

         if [ $count -ge $limit ]

         then

                    count=0

                    sleep 7

          fi


          #echo "mv $temp collector/"   // 실시간 로그 수집 = collector 폴더

          mv ${filename}/${temp} collector/

          let 'count+=1'

done

vergence 2021-07
collector_back_20210720¿¡ ÀÖ´Â ÆÄÀϵéÀÇ À̸§À» temp¿¡ Çϳª¾¿ ³Ö°í ó¸®ÇÕ´Ï´Ù (for temp... do ...  done)
do ~ done »çÀÌ°¡ ¹Ýº¹µÇ´Â °Çµ¥,
³»¿ëÀº, temp¿¡ ÆÄÀÏÀ̸§ 1°³°¡ µé¾îÀÖ°í, ÀÌ ÆÄÀÏÀ» collector µð·ºÅ丮·Î ¿Å±â´Â °ÍÀ̳׿ä (mv ...)
ÇѲ¨¹ø¿¡ ¿©·¯ °³¸¦ ¿Å±â´Â °Ô ¾Æ´Ï°í, ÇÑ °³¾¿ ¿Å±é´Ï´Ù.
ÆÄÀÏÀ» 101°³ ¿Å±æ ¶§¸¶´Ù 7Ãʸ¦ ½±´Ï´Ù. -_-;;;;

¼³¸¶ ´«À¸·Î º¸°í ÀÖ´Ù°¡ ¸ØÃß·Á°í... ÇÑ °É±î¿ä?
     
¿Ã´Ð½º 2021-07
¿Å±â°í³ª¼­ 7ÃÊ°£ ´Ù¸¥ ¹º°¡ ó¸®µÇ±æ ±â´Ù¸±¼öµµ ÀÖ°Ú½À´Ï´Ù ^_^
          
vergence 2021-07
±×·² ¼öµµ Àְڳ׿ä. ·Î±× À妽º ¸¸µé°Ô ±â´Ù¸°´Ù°Å³ª...
È­¶õ 2021-07
count°¡ limit º¸´Ù Å©°Å³ª °°À¸¸é count¸¦ 0À¸·Î ÃʱâÈ­ÇÔ.

±×¸®°í´Â collector_bak_20210720/* ÆÄÀÏÀ» collector·Î ¿Å±è. <--- ÀÌ°Í ÇϱâÀü¿¡ collector µð·ºÅ丮´Â ¹Ì¸® ¸¸µé¾î¾ßÇÔ.

±×¸®°í´Â count¸¦ 1 Áõ°¡½ÃÅ´.


½ºÅ©¸³Æ®°¡ ¹º°¡ Á» ¹Ì¿Ï¼ºÀÛ °°±âµµ ÇÕ´Ï´Ù^^
epowergate 2021-07
1. $filenameÇÏ°í collector°¡ ¹Ù²ï°Å °°½À´Ï´Ù.
    MV¸¦ ²¨²Ù·Î ÇÏ°í Àֳ׿ä "mv ${filename}/${temp} collector/"
2. logrotage¸¦ »ç¿ëÇÏ¸é µÉÅÙµ¥ ¿Ö ±»ÀÌ ÀÌ·±°É
3. ´ëÃâ 1¹ø¸¸ µ¹°³ÇÏ°í cron¿¡ ³ÖÀ¸¸é µÉÅÙµ¥¿ä
# cat test.sh

#! /bin/bash
: ½© ½ºÅ©¸³Æ®·Î ¹è½Ã ½©À» »ç¿ëÇÔ


filename="collector_bak_20210720" // ½Ç½Ã°£ ·Î±× ¼öÁý µð·ºÅ丮ÀÎ collector¿¡ µ¥ÀÌÅÍ°¡ °¡µæÂ÷ ÀÌ µð·ºÅ丮·Î Á» ¿Å±è.
: µð·ºÅ丮¸¦ ½è±â ¶§¹®¿¡ filenameÀº µð·ºÅ丮¸¦ ÀǹÌ

count=0
: º¯¼öÁ¤ÀÇ(Ä«¿îÆ®) ¹× ÃʱⰪ 0

limit=100
: º¯¼öÁ¤ÀÇ(Ä«¿îÆ®ÀÇ ÃÖ´ë Á¦ÇÑ°ª) ¹× ÃʱⰪ 100

for temp in `ls $filename`
: `´Â ¸í·ÉÀ» ½ÇÇàÇÑ´Ù´Â ÀǹÌ. Áï 'ls µð·ºÅ丮' ½ÇÇàÀ» ÅëÇØ Ãâ·ÂµÇ´Â ÆÄÀÏµé ¸ñ·ÏÀ» ÇϳªÇϳª temp ·Î ¹Þ¾Æ¿Í ·çÇÁ¸¦ µ¹¸²

do
: for¹® ½ÃÀÛÁ¡

        if [ $count -ge $limit ]
        : Á¶°ÇÀý. countº¯¼ö°¡ limit º¯¼öº¸´Ù Å©°Å³ª °°À»¶§ µ¿ÀÛÇÔ. Áï count(0ºÎÅÍ Çϳª¾¿ Áõ°¡) >= limit(ÃÖ´ë 100) À϶§¸¦ È®ÀÎ.
          óÀ½¿¡´Â 0ºÎÅÍ ½ÃÀÛÇϹǷΠ99±îÁö µ¹°í 100ÀÌ µÇ¸é ¾Æ·¡ then ¹®À¸·Î µé¾î°¨

        then
        : ifÀýÀÇ ½ÃÀÛÁ¡
                    count=0
                    : countº¯¼ö¸¦ 0À¸·Î ÃʱâÈ­

                    sleep 7
                    : ½© ½ºÅ©¸³Æ® ¼öÇàÀ» 7ÃÊ°£ ¸ØÃã.

          fi
          : ifÀýÀÇ ³¡



          #echo "mv $temp collector/"  // ½Ç½Ã°£ ·Î±× ¼öÁý = collector Æú´õ
          : ¼¥Àº ÁÖ¼®Ã³¸®ÇÑ°Í. ½ÇÇà¾ÈµÊ

          mv ${filename}/${temp} collector/
          : mv´Â ÆÄÀÏÀ̵¿. mv µð·ºÅ丮/ÆÄÀϸí collector/ À̹ǷΠÀǹ̴ µð·ºÅ丮(collector_bak_20210720) ¾ÈÀÇ ÆÄÀÏÀ» ÇϳªÇϳª ·çÇÁµ¹·Á collector/ Æú´õ ¹ØÀ¸·Î ¿Å°Ü³ÖÀ½

          let 'count+=1'
          : Ä«¿îÅÍ º¯¼ö 1¾¿ Áõ°¡.

done
: for¹® ³¡³ª´ÂÁ¡

µ¿ÀÛÀ» Çѹ®ÀåÀ¸·Î ¿ä¾àÇϸé, collector_bak_20210720 µð·ºÅ丮³» ÆÄÀÏÀ» 7ÃÊ¿¡ 100°³¾¿ ²÷¾î collector µð·ºÅ丮·Î ¿Å±è..


Á¦¸ñPage 2/10
2023-06   14525   ȸ»ó2
2023-05   15575   È£¾ß¸®1
2023-05   13206   È£¾ß¸®1
2023-04   9947   pmnxis
2023-01   9937   ȸ»ó2
2023-01   7841   °õ»ïÃÌ
2022-09   10220   1z2z
2022-08   10246   tuco
2022-08   16604   ÄíÀö
2022-07   9403   ³ª¶ó»ç¶û
2022-06   9427   Jjun
2022-05   6586   MOONL
2022-05   5791   Elusive4245
2022-04   8576   ³ª¶ó»ç¶û
2022-04   8041   ³ª¶ó»ç¶û
2021-09   6394   Dosh
2021-08   5484   À̺Ò
2021-07   4116   ¹Î¼·79
2021-07   3781   °¡»óÈ­¸°ÀÌ
2021-05   3596   i³Ñ¹ö¿ø