phpÀ¥¼­¹ö¿¡¼­ apacheÀÇ ½©½ºÅ©¸³Æ® ½ÇÇà°ú °ü·ÃÇÏ¿© ¹®ÀÇ µå¸³´Ï´Ù.

TripleXI   
   Á¶È¸ 7450   Ãßõ 0    

안녕하세요,

현재 제가 php로 구성된 웹서버를 사용 중인데요, apache가 쉘스크립트를 실행시키는 부분에 대해서 문의 드리고자 합니다.

우선 제가 사용하는 웹서버는 php에서 ssh2를 이용해서 로컬서버에 접속을 한 후 로컬 계정의 권한으로 쉘스크립트를 실행하게끔 되어있습니다.

OS는 CentOS 7.4를 사용하고 있습니다.

명령어는 ssh2_exec를 사용하였구요, 간략하게 코드를 적어드리면


$cmd[] = "cd {폴더경로} && /bin/bash 쉘스크립트파일명.sh & ";

$ssh_cmd = implode(" ", $cmd);

$connection = ssh2_connect("도메인주소 혹은 IP", 22);

ssh2_auth_password($connection, "계정 ID", "계정 Password");

ssh2_exec($connection, $ssh_cmd);


이렇게 ssh2_exec를 통해 $ssh_cmd를 실행하고, $ssh_cmd에서 $cmd를 읽어서 쉘스크립트를 실행하게 되어있는 구조입니다. 

이때 쉘스크립트가 일부 리눅스 패키지를 실행하게 됩니다. 

이 패키지는 새로이 몇몇 파일들을 생성하는 작업을 수행하는데 파일사이즈가 0으로 나와서 문제가 되고 있습니다.


우선 해당 폴더에는 777의 권한을 부여하였고 setfact를 통해 새로 생성되는 파일에 대해서 777의 권한을 부여했습니다.

또한 해당 폴더의 소유권도 ssh2를 통해 접속하는 로컬 계정으로 변경하였습니다만 계속 에러가 발생하네요.

ssh2_exec가 아닌 exec 명령어를 통해 쉘스크립트를 실행하는 경우에는 문제 없이 실행되는데 이렇게 되면 웹 리소스를 계속 점유하게 되서 여간 불편한게 아닙니다.


쉘스크립트에서 패키지 명령어 실행하기 전에 폴더 생성명령을 내려보니 아무 문제 없이 잘 생성되는 것을 보면 apache자체가 쉘 스크립트를 실행하는 데에 있어서 권한 문제는 아닌것으로 보이네요.

보통 이런 경우에는 apache가 쉘스크립트를 실행하는데는 문제가 없으나 패키지를 실행하는 권한이 없어서 그런건지, 아니면 리눅스 패키지 중에 혹시 원격접속을 통해 실행하는 것이 불가능한 패키지들이 있는지 궁금합니다.

어떠한 의견이라도 주시면 감사하겠습니다.

ªÀº±Û Àϼö·Ï ½ÅÁßÇϰÔ.
     
TripleXI 2018-04
¾È³çÇϼ¼¿ä,

´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ Àá½Ã ³ëÆ®ºÏ ¼ö¸®¸¦ ÇØ¾ßµÇ¼­ ´äº¯ÀÌ ´Ê¾ú½À´Ï´Ù.

¾Ë·ÁÁֽŠµÎ°¡Áö ¹æ¹ý ¸ðµÎ ½ÃµµÇغ¸¾ÒÀ¸³ª ¿©ÀüÈ÷ ½ÇÇàÀÌ ¾ÈµÇ³×¿ä.
shÆÄÀÏ ¸»°í Á¦°¡ ¸»¾¸µå¸° ÆÐŰÁöÀÇ °æ¿ì ½ÇÇà¸í·É¾î¸¦ ÀÌ¹Ì /usr/bin¿¡ º¹»çÇØ³õÀº »óŶó ¾î´À°÷¿¡¼­µç ½ÇÇàÀÌ °¡´ÉÇÑ »óÅÂÀÔ´Ï´Ù.

º¸Åë Á¦°¡ °³ÀÎ ³ëÆ®ºÏ¿¡¼­ ssh¸¦ ÅëÇØ ¿ø°ÝÀ¸·Î Á¢¼ÓÇØ¼­ Ä¿¸Çµå »ó¿¡¼­ Á÷Á¢ ¸í·ÉÀ» ½ÇÇàÀ» ÇÒ¶§´Â ¾Æ¹« ¹®Á¦¾øÀÌ Àß µÇ´Âµ¥ apache°¡ ssh2¸¦ ÅëÇØ ¿ø°ÝÁ¢¼ÓÇØ¼­ ½©½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÄ×À»¶§ ÆÐŰÁö ½ÇÇàÀÌ ¾ÈµÇ´Â°ÍÀº

1) ½©½ºÅ©¸³Æ®¿¡¼­ ÆÐŰÁö ¸í·ÉÀ» ½ÇÇàÇϴµ¥ ¹®Á¦°¡ ÀÖ´Ù (bash°¡ ¾Æ´Ñ ´Ù¸¥ ½©½ºÅ©¸³Æ®ÀÇ »ç¿ëÀÌ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù)
2) ssh¿Í ssh2ÀÇ Â÷À̰¡ ¹®Á¦°¡ ÀÖ´Ù

ÀÌ µÎ°¡Áö Áß¿¡ ÇϳªÀÏ ¼ö ÀÖÀ»±î¿ä? 1¹øÀÇ °æ¿ì¶ó¸é bash¿Í ´Ù¸¥ ½©½ºÅ©¸³Æ®(sh, ksh, csh µî)°£ÀÇ Â÷À̸¦ ¾Ë¾ÆºÁ¾ß ÇÒ °Í °°Àºµ¥, 2¹øÀÇ °æ¿ì´Â Ưº°È÷ ssh¿Í ssh2ÀÇ Â÷À̰¡ ¾ó¸¶³ª ¿µÇâÀ» ¹ÌÄ¥Áö °¡´ÆÇϱⰡ ¾î·Æ³×¿ä.
ȸ¿øK 2018-04
¸ðµç ¸í·É¿¡´Â Àý´ë°æ·Î¸¦ Àû¾îµÎ½Ã´Â °ÍÀÌ ÁÁÀ¸¸ç
¸í·É¾î ½ÇÇà stepÀ» log Âï¾î µÎ¼Å¾ß ÇÕ´Ï´Ù.
     
TripleXI 2018-04
¾È³çÇϼ¼¿ä,

´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ Àá½Ã ³ëÆ®ºÏ ¼ö¸®¸¦ ÇØ¾ßµÇ¼­ ´äº¯ÀÌ ´Ê¾ú½À´Ï´Ù.

Àú À§¿¡ Á¦°¡ ÀûÀº $cmd[] = "cd {Æú´õ°æ·Î} && /bin/bash ½©½ºÅ©¸³Æ®ÆÄÀϸí.sh & "; ÀÇ ºÎºÐ¿¡¼­ {Æú´õ°æ·Î}´Â ÀÌ¹Ì Àý´ë°æ·Î·Î Àû¾îµÎ¾ú½À´Ï´Ù.

±×¸®°í ½ÇÇà·Î±×¸¦ Âï´Â°ÍÀº 2>&1 ¸¦ Àû¾îÁÖ¸é ¿¡·¯·Î±×¸¦ ±â·ÏÇÒ¼ö ÀÖÁö¸¸ ÇØ´ç ÆÐŰÁöÀÇ °æ¿ì´Â ÆÄÀÏ »ý¼º¿¡ ´ëÇÑ ¿¡·¯·Î±×°¡ ±â·ÏÀÌ ¾ÈµÇ´õ±º¿ä.

Ȥ½Ã 2>&1 À̿ܿ¡¼­ ´Ù¸¥ ¹æ½ÄÀ¸·Î ·Î±×¸¦ ±â·ÏÇÏ´Â ¹æ¹ýÀ» ¾Æ½Ã¸é ¾Ë·ÁÁÖ½Ã¸é °¨»çÇϰڽÀ´Ï´Ù.
          
ȸ¿øK 2018-04
shell¿¡ µé¾î°¡¸é ¸ðµç ȯ°æº¯¼ö°¡ ¼³Á¤µÇÁö ¾Ê±â ¶§¹®¿¡
·Î±× ÆÄÀÏÀÇ °æ¿ì¿¡µµ Àý´ë °æ·Î¸¦ Àû¾îµÖ¾ß ÇÕ´Ï´Ù.

½©½ºÅ©¸³Æ® ÆÄÀϸí = Àý´ë°æ·Î.
               
TripleXI 2018-04
¸»½¿ÇϽн©½ºÅ©¸³Æ® ÆÄÀÏ¸í ¶ÇÇÑ Àý´ë°æ·Î·Î ÁöÁ¤À» ÇØµÎ¾ú½À´Ï´Ù. Á¦°¡ °£·«ÇÏ°Ô Àû´Ùº¸´Ï ¼³¸íÀÌ ºÎÁ·Ç߳׿ä.

Á¦°¡ php¿¡ Àû¾î³õÀº $cmd¸¦ ÀüºÎ ´Ù Àû¾îµå¸®¸é

$cmd[] = "(cd {$SaveDir}($sample} && /bin/bash /tool/analysis.sh 2>&1 > {$SaveDir}{$sample}/log &)"

ÀÌ·¸°Ô Àû¿ëÀÌ µË´Ï´Ù.

¸»¾¸µå¸°¹Ù¿Í °°ÀÌ toolÆú´õ ³»ÀÇ analysis.sh¶ó´Â ½©½ºÅ©¸³Æ®¸¦ Àý´ë°æ·Î·Î ÁöÁ¤ÇØÁ༭ ½ÇÇàÇϰԲû ÇØ³ù½À´Ï´Ù.
±×¸®°í 2>&1À» Àû¾î¼­ log¶ó´Â ÆÄÀÏÀ» »ý¼ºÇؼ­ ¿¡·¯·Î±×¸¦ È®ÀÎÇϰԲû ÇÏ¿´±¸¿ä.

logÆÄÀÏÀº »ý¼ºÀÌ µÇ´Âµ¥ ÆÐŰÁö ÇÁ·Î±×·¥ÀÇ Á¤»ó ½ÇÇà ¿©ºÎ (¿©±â¼± ÆÄÀÏ»ý¼º ¿©ºÎ°¡ µÇ°ÚÁÒ)¿¡ ´ëÇØ¼± ±â·ÏÀÌ ¾ÈµÇ³×¿ä.
                    
ȸ¿øK 2018-04
Àüü¸¦ ÇϳªÀÇ shell script¿¡ ³Ö°í, ±× schell script¸¸ ½ÇÇàÇϵµ·Ï ÇÏ¼Å¾ß ÇÒ °Í °°½À´Ï´Ù.
https://stackoverflow.com/questions/255414/why-doesnt-cd-work-in-a-bash-shell-script

¸¶Áö¸·¿¡ &·Î bg ¶³¾î ¶ß¸®´Â °Íµµ ¹®Á¦°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
&´Â back ground¿¡ ³ÖÀ¸¶ó´Â ¸í·ÉÀÌÁö, bg¿¡¼­ ½ÇÇàÇ϶ó´Â ¸í·ÉÀº ¾Æ´Ï¹Ç·Î
nohubÀ» ¾²¼Å¾ß ÇÕ´Ï´Ù.
https://stackoverflow.com/questions/9190151/how-to-run-a-shell-script-in-the-background-and-get-no-output

½ÇÁ¦·Î À§ÀÇ cmd´Â ±×³É bg¿¡¸¸ ¹Ð¾î ³Ö°í ³¡ ÀÔ´Ï´Ù.
¾Æ¹« °Íµµ ¾ÈÇÕ´Ï´Ù.
´äÀº ¾Æ´Ï°ÚÀ¸³ª, »ç¿ëÀÚ¿¡°Ô ÇÒ´çµÈ ¿ë·®ÀÌ °¡µæÃ¡À» °æ¿ì¿¡ ±×·± Çö»óÀÌ »ý±é´Ï´Ù.
     
TripleXI 2018-04
¾È³çÇϼ¼¿ä,

´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ Àá½Ã ³ëÆ®ºÏ ¼ö¸®¸¦ ÇØ¾ßµÇ¼­ ´äº¯ÀÌ ´Ê¾ú½À´Ï´Ù.

»ç¿ëÀÚ¿¡°Ô ÇÒ´çµÈ ¿ë·®ÀÌ °¡µæÃ¡À» °æ¿ì¶ó¸é ÀϹÝÀûÀ¸·Î »ý°¢ÇÏ´Â µð½ºÅ©¿ë·®ÀÌ ´Ù ãÀ» °æ¿ì¸¦ ¸»¾¸ÇϽôÂÁö ÆÄÀϽýºÅÛ »ç¿ë·®À» ¸»¾¸ÇϽôÂÁö¿ä.

du¿Í dfÀÇ ¸í·É¾î¸¦ ÀÌ¿ëÇØ¼­ È®ÀÎÇØº¸´Ï ÀüÀÚ³ª ÈÄÀÚ ¸ðµÎ ¿ë·®Àº ÃæºÐÈ÷ ³²¾ÆÀ־ ÇØ´çµÇ´Â ºÎºÐÀÌ ¾Æ´Ñ °Í °°½À´Ï´Ù.

Ȥ½Ã Á¦°¡ ¸»¾¸µå¸° °Í À̿ܿ¡ ´Ù¸¥ ºÎºÐÀ» ¸»¾¸ÇϽô °ÇÁö ±Ã±ÝÇϳ׿ä.


QnA
Á¦¸ñPage 1702/5732
2014-05   5269175   Á¤ÀºÁØ1
2015-12   1794266   ¹é¸Þ°¡
2020-01   4196   µÎ¸®¾È
2019-03   4196   ±èÁØ¿¬
2016-09   4196   ÀÌÁöÆ÷Åä
2017-05   4196   µÎcpu
2017-01   4196   ½Öcpu
2015-03   4196   Àλý¿©Àü
2016-06   4196   ±èÀ±¼ú
2019-01   4196   pcÄÉÀ̽ºÀÚ¡¦
2017-12   4196   µþ±â´ëÀå
2018-01   4196   ¹«¾Æ
2017-09   4196   ½Ã°ñÁý³ë¾È
2019-02   4196   ÇູÇϼ¼
2015-04   4196   Á¤¿µÃ¶
2021-06   4196   Ȧ¸¯0o0
2017-06   4196   ǪÇÏÈ÷
2018-10   4197   ¼ÇÇѸÆÁÖ
2016-01   4197   2CPUÃÖÁÖÈñ
2019-12   4197   ´ëÀü±èÇü¿î
2016-12   4197   ¾ËÆÄ°í
2018-09   4197   ±Ç¿ÀÁØ