¸®´ª½º - ½Ã°£º° ½© ½ºÅ©¸³Æ® Â¥±â.. µµ¿ÍÁÖ¼¼¿è..

   Á¶È¸ 4193   Ãßõ 0    

 안녕하세요. 

거두절미하고 본론만 말씀드릴게요.

리눅스 쉘 스크립트를 한번도 짜본적이 없는데 혼자 이것저것 찾다보니 시간도 오래 걸리고 시행착오가 좀 있어서요.

※. 참고. crontab에서 이미 시간, 요일별 특정 유저로 특정 명령어 수행하는 작업 설정하여 테스트까지 완료했습니다.

허나, 최종 목적은 스크립트 하나에 이 모든 내용이 다 들어가고, crontab에서는 딱 한줄로 해당 쉘만 실행시켜주고 싶습니다.


조건

1. test 라는 계정을 사용해야 한다.


2. 월~토 자정 0시에는 original이라는 파일을 incr 이라는 파일 내용으로 덮어씌운다. (incr >> original)

3. 월~토 자정 0시 5분에는 test 라는 계정으로 XXX 명령어를 실행하며, incr.log 파일에 로그를 추가한다. 


4. 일요일 자정 0시에는 original이라는 파일을 full 이라는 파일 내용으로 덮어씌운다. (full >> original)

5. 일요일 자정 0시 5분에는 test 라는 계정으로 XXX 명령어를 실행하며, full.log 파일에 로그를 추가한다.


아직 스크립트 구문에 대해 잘 몰라서 동종업계 고수님들께 여쭙습니다.

비록 많이 부족할지라도 너그러운 마음으로 도와주시면 감사하겠습니다. (좀 더 성장하도록 저도 노력할게용 ㅎ)

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
¹«¾Æ 2021-07
https://mentha2.tistory.com/87
¸µÅ© ³»¿ëÀ» Âü°íÇغ¸¼¼¿ä.
ÁÖ±âÀûÀÎ ÀÛ¾÷ ¹× user ÁöÁ¤ ÀÛ¾÷ÀÌ ¼³¸íµÇ¾î Àֳ׿ä.
     
¾Æ Âü°í·Î ¤¾¤¾
crontab¿¡¼­´Â Àß È°¿ëÇÏ°í ÀÖ½À´Ï´Ù.
µµ¿ò ¸¹ÀÌ ¹Þ¾Ò¾î¿ä. (¹«¾Æ´Ôµµ ´äº¯ ³Ñ °¨»çÇÕ´Ï´Ù ^^)

µû·Î ½ºÅ©¸³Æ®¸¦ Â¥°í
crontab¿¡´Â ½ºÅ©¸³Æ® ½ÇÇà¸í·É¾î¸¸ ³¯·Áº¼·Á°í ÇÕ´Ï´Ù.¤Ð¤Ð
          
¹«¾Æ 2021-07
½© ½ºÅ©¸³Æ®´Â ±×³É ÅؽºÆ® ¿¡µðÅͷΠ¥¸é µÇ°í
ù ÁÙ¿¡ ¾î¶² ½©À» ¾µ°ÇÁö ÁöÁ¤ÇÏ°í ( ¿¹. #!/bin/bash )
µÎ¹ø° ÁÙ ºÎÅÍ ¸í·ÉÀ» ³ÖÀ¸¸é µË´Ï´Ù.
ÆÄÀÏ ³»¿ëÀ» µ¤¾î ¾²´Â °Å´Â ±×³É cp ¸í·É¾î¸¦ ½á¼­ ÆÄÀÏÀ» Ä«ÇÇÇÏ¸é µÉ °Å °°°í
¸í·É½ÇÇà ³»¿ëÀ» ·Î±×¿¡ Ãß°¡ÇÏ·Á¸é
¸í·É >> inc.log
¸¸µé¾î ÁÖ°í
¸¶Áö¸·À¸·Î ÇØ´ç ½©½ºÅ©¸³Æ® ÆÄÀÏÀÌ ½ÇÇà °¡´ÉÇϵµ·Ï chmod ¸í·ÉÀ» »ç¿ëÇÏ¿© ½ÇÇà ÆÄÀÏÀ̶ó°í ÁöÁ¤ÇØÁÖ¸é µË´Ï´Ù.
°¢ ¸í·ÉÀ̳ª ÆÄÀÏÀ§Ä¡ µîÀº °æ·Î Àß È®ÀÎÇϽðí..
0½Ã 5ºÐÀº »ý°¢º¸´Ù ¸ÂÃ߱Ⱑ ¾î·Á¿ì´Ï 0½Ã0ºÐ¿¡ ÇÏ´Â ÀÛ¾÷ÀÌ Á¾·áµÇ°í sleep 300À¸·Î 5ºÐÀ» ±â´Ù¸®¸é µÇÁö ¾ÊÀ»±î¿ä?

date +%a·Î ÇÏ¸é ¿äÀÏÀÌ Ãâ·ÂµÇ´Ï ÀÌ°É ±â¹ÝÀ¸·Î Á¶°Ç¹® ¼³Á¤Çؼ­ ÇÁ·Î±×·¥ÀÌ º¯°æµÇµµ·Ï ÇÏ¸é µÉ °Í °°½À´Ï´Ù.
     
¹«¾Æ 2021-07
crontab ¾²¸é ½±°Ô µË´Ï´Ù
¹«½¼¿äÀÏ ¸î½Ã ¸îºÐ¿¡ ÁÖ±âÀûÀ¸·Î ½ÇÇàÇϱâ

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EB%B0%98%EB%B3%B5_%EC%98%88%EC%95%BD%EC%9E%91%EC%97%85_cron,_crond,_crontab#.EC.98.88.EC.8B.9C
dateno1 2021-07
crontab¿¡ Á÷Á¢ ¹º°¡ ³ÖÀ»·Á°íÇϸé ÇÇ·ÎÇØ¿ä

±×³É ½ºÅ©¸³Æ®·Î ´Ù Â¥°í, ±×°Å ½ÇÇàÇÏ°Ô¸¸ ÇØÁÖ¼¼¿ä
     
³× ±×·¡¼­ ½ºÅ©¸³Æ® Â¥´Â °É ¹°¾îº»°Ì´Ï´Ù ^^
crontab¿¡´Â ½©¸¸ ½ÇÇàÇÏ°Ô²û 1ÁÙ¸¸ ³Ö°í¿ä.

Á¦°¡ ÇÏ´Â »ý°¢°ú ´ÔÀÌ ÇÏ´Â »ý°¢ÀÌ °°Àº°Í°°Àºµ¥?
          
dateno1 2021-07
1. ¸í·É ½ÇÇàÀ» Á¦¿ÜÇÏ¸é µüÈ÷ ƯÁ¤ °èÁ¤À¸·Î ¼öÇàÇÒ ÇÊ¿ä´Â ¾ø´Ù°í º¾´Ï´Ù

¾îÂ÷ÇÇ ÆÄÀÏÀ» »ý¼ºÇعö¸®¸é ³»¿ë¹° ¼öÁ¤Çصµ ¼ÒÀ¯±ÇÀÌ ¹Ù²îÁö ¾Ê°í, ·Î±×¿¡ Ãß°¡Çϰųª ÇÏ´Â°Ç ±ÇÇѸ¸ ÀÖÀ¸¸é ¾Æ¹« °èÁ¤À̳ª ´Ù ¶È°°À¸´Ï±î¿ä

2. º°·Î ¾î·Á¿ï°Í ¾øÀÌ echo·Î > Çؼ­ ÆÄÀÏ À̸§ ÁöÁ¤ÇÏ¸é ³¡ (¾Æ´Ï¸é ¹Ì¸® ¸¸µé¾îµÐ ÆÄÀÏ·Î µ¤¾î¾²±â Çصµ µË´Ï´Ù)

3. runas°°Àº°É ¾²¼¼¿ä (·Î±× ½ÇÇàÀº ÀÚü ·Î±× ÁöÁ¤ ±â´ÉÀÌ ÀÖ´Ù¸é ·Î±×ÆÄÀÏ °æ·Î ÁöÁ¤Çϸé Ãß°¡µÇ´Â °æ¿ì°¡ ´ëºÎºÐÀÌ°í, Ȥ½Ã µ¤¾î¾²±â·Î ÀÛµ¿ÇÑ´Ù¸é Àӽà °æ·Î¿¡ ÀúÀåÈÄ ¸í·É Á¾·á½Ã ÆÄÀÌÇÁ¶óÀÎÀ¸·Î ´øÁ®¼­ Ãß°¡ÇؾßÇÒ ÆÄÀÏ ³¡¿¡ µé¾î°¡°Ô Çϼ¼¿ä)

4. ÆÄÀÌÇÁ¶óÀκ¸´Ù´Â ±×³É cp -f¸¦ ÃßõÇÕ´Ï´Ù (ÀÌÈÄ ±ÇÇÑµî ¾È ¸ÂÀ¸¸é ¼öÁ¤)

5. 3À̶û µ¿ÀÏ

±×¸®°í crontab ¼öµ¿À¸·Î Â¥¸é ±ÍÂúÀ¸´Ï±î ±¸±Û¸µÇϸé À¥À¸·Î ½±°Ô Â¥°ÔÇØÁÖ´Â ÆäÀÌÁö ÀÖÀ¸´Ï °Å±â¼­ §´ÙÀ½ ³»¿ë¹° ±×´ë·Î ºÙÀ̼¼¿ä

¿©ÀüÈ÷ ÇãÁ¢ÇÏÁö¸¸, 20³âÂë ¸®´ª½º ¾²°í ÀÖÀ¸´Ï ´ëÃæ ¾î¶»°Ôµç ¶§¿ï ¼ö ÀÖÀ»Á¤µµ´Â µÇ´õ±º¿ä
¼º±â»ç 2021-07
±»ÀÌ ¾î·Æ°Ô °¡½Ã·Á°í Çϴ±º¿ä. À§¿¡ ¼±¹è´ÔµéÀÌ ¾ê±âÇϽŴë·Î crontab¿¡ ³ÖÀ¸½Ã´Â °ÍÀÌ ÁÁÀ» °Í °°½À´Ï´Ù.
     
½ºÅ©¸³Æ® Â¥´Â°Ô ¾î·Á¿î°Å°í
Å©·ÐÅÇ¿¡ ½Ã°£º°·Î ´Ù µî·ÏÇÏ´Â°Ô ½¬¿î°Ç°¡¿ä?

?????

Àü ½ºÅ©¸³Æ®¸¦ Â¥°í
Å©·ÐÅÇ¿¡´Â ½© ½ÇÇà ¸í·É¾î ÇÑÁÙ¸¸ ³Ö°í½Í¾î¼­¿ä.
          
ÀÌ·± ¶æÀÌ ¾Æ´Ò±î ½Í½À´Ï´Ù.

±¸Çö ÇÏ°íÀÚ ÇÏ´Â ±â´ÉÀ» Q&A¸¦ ÀÌ¿ëÇØ¾ß ÇÏ´Â ½Ç·Â¿¡¼­´Â crontab¿¡ ÀÏÀÏÀÌ µî·ÏÇÏ´Â°Ô ÆíÇÕ´Ï´Ù.

½ºÅ©¸³Æ® ¿ä·ÉÀÌ »ý±â¸é ½ºÅ©¸³Æ® Çϳª¸¸ µî·ÏÇصµ °¡´ÉÇÏÁÒ.
±¸ÇöÇÏ°íÀÚ ÇÏ´Â ±â´É¿¡ ¿äÀÏÀÌ Æ÷ÇԵǾî Àִµ¥ LOCALEÀ» °í·ÁÇϰųª LOCALEÀ» °í·ÁÇÏÁö ¾Êµµ·Ï º¯°æÇؼ­ Â¥°Å³ª ÇؾßÇÏ´Â º¹ÀâÇÔÀÌ ÀÖÁÒ.
          
extra 2021-07
Á÷Á¢ ½ºÅ©¸³Æ®¸¦ Â¥¼­ °í»ýÇÏ´Â °Íº¸´Ü ½±ÁÒ.
¾ÖÃÊ¿¡ Å©·ÐÅÇ¿¡¼­ ¿äÀϸ¶´Ù ¼öÇàÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇϴµ¥ ±»ÀÌ ½ºÅ©¸³Æ®¿¡¼­ ¿äÀÏ ÆĽÌÇϴ°ͺ¸´Ü ½±ÁÒ.
ƯÈ÷ Á÷Á¢°³¹ßÇÒ ¼öÁØÀÌ ¾ÈµÇ°í Áú¹®À» ¿Ã¸®½Ã´Â°É °í·ÁÇϸé ÃæºÐÇÑ Áö½ÄÀÌ ¾øÀ¸¸é ±»ÀÌ ¹«¸®Çؼ­ ±×°É ÇÒ ÇÊ¿æ ¾ø½À´Ï´Ù.
¹«¾ß´ÔÀÌ ¾Ë·ÁÁֽŠ¸µÅ© Âü°í¸¸ ÇÏ´õ¶óµµ ²Ï Å« µµ¿òÀÌ µÉ °Í °°³×¿ä.
Å©·ÐÅÇÀ» ±»ÀÌ ÇÑÁÙ·Î ÇÒ·Á´Â Àǵµ´Â ¸ð¸£°Ú½À´Ï´Ù¸¸ ±×·¸°Ô ÇÑ´Ù°í Çؼ­ ±»ÀÌ ÀåÁ¡Àº ¾ø¾î¼­¿ä.
Å©·ÐÅÇÀ» ÆíÁýÇÏ´Â °úÁ¤¿¡¼­´Â ¿©·¯ ÁÙÀÌ¿©¼­ º¸±â ºÒÆíÇÏ´Ù¶ó°í »ý°¢ÇÒ ¼ö ÀÖÁö¸¸, ¿ªÀ¸·Î À¯Áöº¸¼ö°üÁ¡¿¡¼­´Â ÀÌ°Ô ¾ðÁ¦ ¾ðÁ¦ ¼öÇàµÇ´ÂÁö ÀÌÇصDZâ ÆíÇÕ´Ï´Ù.
¿¹¸¦ µé¾î ¼­¼úÇÑ´ë·Î 0½Ã¿¡ ¼öÇàÈÄ 0½Ã 5ºÐ¿¡ ¼öÇàÇϱâ À§ÇØ
startTime=$(date +%s);

#work
endTime=$(date +%s);
 
totalTime=$(($endTime-$startTime));
sleepTime= 300 - $(totalTime);
sleep $sleepTime;
ÀÌ·± ½ÄÀ¸·Î ó¸®ÇØÁÖ¾î¾ß Çϴµ¥ À¯Áöº¸¼ö °üÁ¡¿¡¼± ÁÁÀº ÄÚµå´Â ¾Æ´Õ´Ï´Ù.(¾ÖÃÊ¿¡ Á¤È®ÇÏ°Ô 5ºÐ ´ë±â´Â Èûµé±¸¿ä. 1ÃÊ À̳»ÀÇ ¿ÀÂ÷´Â °¨¾ÈÇÏ¼Å¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¾ÖÃÊ¿¡ ±×°Ô Áß¿äÇÏÁø ¾ÊÀ» °Í °°Áö¸¸¿ä.)
±×¸®°í ÇÁ·Î¼¼½º°¡ ±×¶§±îÁö ¼öÇàÁßÀ̹ǷΠ¸®¼Ò½º ÇØÁ¦°¡ ¾ÈµÇ¹Ç·Î ÁÁÀº ÄÚµå´Â ¾Æ´Õ´Ï´Ù.
½ºÅ©¸³Æ® ÀÛ¼ºÇϴµ¥ Á¤´äÀÌ ¾îµð ÀÖ°Ú½À´Ï±î. ´Ù¸¸ È¿À²ÀûÀΰ¡ ÇÏ´Â °Í¿¡´Â Àǹ®ÀÌ ÀÖ½À´Ï´Ù.
crontatab¿¡ 1°³ÀÇ ÅëÇÕ script¸¦ ½ÇÇàÇßÀ»¶§, ÇØ´ç script´Â ¸¶Áö¸· ¸í·É¾î ±îÁö Áö¼ÓÀûÀ¸·Î ¼öÇàµÇ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.
(crontab µî·Ï½Ã ºÐ´ÜÀ§ ¼³Á¤ °¡´ÉÇϱä ÇÕ´Ï´Ù)

¿¹½Ã·Î 5ºÐÀ» ÀûÀ¸¼Ì´Âµ¥ »óȲ¿¡ µû¶ó 10½Ã°£ÀÇ °£°ÝÀÌ ÀÖ´Ù¸é ±×¸¸Å­À» script °¡ µ¹°í Àִ°̴ϴÙ.
¼­¹ö ¸®¼Ò½ºµµ Á¡À¯ÇÏ°í... ¿äÀϺ° ½Ã°£º° Á¶°Ç¹® »ç¿ëµµ º¹Àâ?ÇÏ°í.

±¸ÇöÀÌ ÇÊ¿äÇϽøé,
shell script if, ¶Ç´Â shell script case ·Î °Ë»öÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù.
GodokNam 2021-07
#!/bin/sh

IS_SUNDAY=`date +%u`
IS_HOUR_0=`date +%H`
IS_MIN_5=`date +%M`

if [ "$IS_SUNDAY" = "7" ]
then
        echo "IS_SUNDAY : $IS_SUNDAY"
        echo "Today is Sunday"
        # TODO
        if [ "$IS_HOUR_0" = "13" -a "$IS_MIN_5" = "05" ];
        then
                echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
                echo "--------------"
                # TODO
        else
                echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
        fi
else
        echo "IS_SUNDAY : $IS_SUNDAY"
        echo "Today is not Sunday"
        if [ "$IS_HOUR_0" = "13" -a "$IS_MIN_5" = "05" ]
        then
                echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
                echo "==============="
                # TODO
        else
                echo "IS_HOUR_0 : $IS_HOUR_0, IS_MIN_5 : $IS_MIN_5"
        fi
fi


QnA
Á¦¸ñPage 699/5696
2015-12   1566631   ¹é¸Þ°¡
2014-05   5030082   Á¤ÀºÁØ1
2019-09   2560   ÇåÅÍD
2021-01   2560   Ç㿵Áø
2019-12   2560   ÇãÀα¸¸¶Æ¾
2019-12   2560   Ǫ¸¥³ª¹«¾Æ¡¦
2021-08   2560   DOSS
2020-08   2561   DDDIE
2019-04   2561   Stiff
2019-04   2561   ¾ÈÇö»ó
2021-01   2561   Lucyed
2021-04   2561   Á¶¾Æ
2019-11   2561   ±ÝÄáÄ¿ÇÇ
2023-07   2561   ¶Ñ¶Ñ±è´ë¿ø
2020-04   2561   dogbull
2021-05   2561   yenkara
2019-03   2562   Áö¿Á¼º³àÀººñ
2019-06   2562   ±ô¹Ú±ô¹Ú°¡
2020-07   2562   ½º¹«ÇÁ
2020-01   2562   µð¼À¹ö
2019-04   2562   »õ·Î¿îÂ÷¿ø
2021-10   2562   ¹Ú¹®Çü