Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÔÚ PHP ÖÐʹÓÃÃüÁîÐй¤¾ß
 
×÷Õß Thomas Myer£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-14
  2927  次浏览      28
 

ÔÚ Web Ó¦ÓóÌÐòÖÐÔËÐÐ shell ÃüÁî

ѧϰÈçºÎ¸üºÃµØ¼¯³É½Å±¾ºÍÃüÁîÐй¤¾ß¡£±¾ÎÄ¿¼²ìÈçºÎʹÓà shell_exec()¡¢exec()¡¢passthru() ºÍ system()£»°²È«µØ½«ÐÅÏ¢´«µÝµ½ÃüÁîÐУ»ÒÔ¼°°²È«µØ´ÓÃüÁîÐлñÈ¡ÐÅÏ¢¡£

Èç¹ûÄúʹÓùý PHP£¬Äú¾Í»á·¢ÏÖËüÊÇ´´½¨ÌØÐԷḻµÄ Web Ò³ÃæµÄ³öÉ«¹¤¾ß¡£×÷Ϊһ´ó½Å±¾ÓïÑÔ£¬PHP£º

1.ÈÝÒ×ѧϰ¡£

2.ÓÐÐí¶àÇ¿´óµÄ¿ò¼Ü£¨±ÈÈç CakePHP ºÍ CodeIgniter£©£¬ÈÃÄúÄܹ»Ïñ Rails ³ÌÐòÔ±Ò»Ñù¸ßЧ¡£

3.Äܹ»Óë MySQL¡¢PostgreSQL¡¢Microsoft? SQL Server£¬ÉõÖÁ Oracle ͨÐÅ¡£

4.Äܹ»ÇáËɵØÓë JavaScript ¿ò¼Ü¼¯³É£¬±ÈÈç script.aculo.us ºÍ jQuery¡£

µ«ÓÐʱºò£¬ÄúÏë×ö¸ü¶àµÄÊÂÇ飬»ò±ØÐë×ö¸ü¶àµÄÊÂÇé¡£ÎÒµÄÒâ˼ÊÇÄú±ØÐëÖ±½ÓÓë PHP ÔËÐеķþÎñÆ÷µÄÎļþϵͳ´ò½»µÀ¡£Äú×îÖÕÐèÒª´¦ÀíÎļþϵͳÉϵÄÎļþ£¬Á˽âÔËÐеĽø³Ì»òÖ´ÐÐÆäËûÈÎÎñ¡£

Ê×ÏÈ£¬Äú¶ÔÔÚ PHP ʹÓà file() ÃüÁî´ò¿ªÎļþºÜÂúÒâ¡£µ«ÊÇÔÚijÖ̶ֳÈÉÏ£¬Íê³ÉijЩÊÂÇéµÄΨһ;¾¶ÊÇÔÚ·þÎñÆ÷ÉÏÔËÐÐ shell ÃüÁî²¢»ñµÃÌØ¶¨µÄÊä³ö¡£ÀýÈ磬Äú¿ÉÄÜÏëÖªµÀÌØ¶¨Ä¿Â¼°üº¬¶àÉÙ¸öÎļþ¡£»òÕßÄúÏëÖªµÀÏòij×éÈÕÖ¾ÎļþдÁ˶àÉÙÐÐÄÚÈÝ¡£»òÕßÄúÏë²Ù×÷ÕâЩÎļþ£¬½«ËüÃǸ´ÖƵ½ÁíÒ»¸öĿ¼£¬»òʹÓà rsync ½«ËüÃÇ·¢Ë͵½ÁíÒ»¸öλÖá£

ÔÚ ¡°PHP ÃüÁîÐУ¿Êǵģ¬Äú¿ÉÒÔ£¡¡± ÕâÆªÎÄÕÂÖУ¬Roger McCoy ÑÝʾÁËÈçºÎ´ÓÃüÁîÐÐÖ±½ÓʹÓà PHP ¡ª¡ª ²»ÐèÈκΠWeb ä¯ÀÀÆ÷¡£ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒ´ÓÁíÒ»¸ö½Ç¶È¿´´ýÏàͬµÄÖ÷Ì⣬ÏòÄúչʾÈçºÎ½ôÃܵØÓëµ×²ã shell ÃüÁ³É£¬ÒÔ¼°½«·µ»ØÖµ°üº¬µ½ÄúµÄ½çÃæºÍ½ø³ÌÖС£

½öµ±ÄúÔËÐÐÔÚ Linux?¡¢Berkeley Software Distribution (BSD) »òһЩÆäËû UNIX? °æ±¾ÉÏʱ£¬ÕâЩ²Ù×÷²ÅÓÐЧ¡£ÎÒ¼ÙÉèÄúÔËÐÐÔÚ Linux-Apache-MySQL-PHP (LAMP) ¶ÑÕ»ÉÏ¡£Èç¹ûÄúÔËÐÐÆäËû°æ±¾µÄ UNIX£¬¾ßÌåϸ½Ú¿ÉÄܲ»Í¬£¬ÒòΪÔÚÿ¸ö°æ±¾ÖÐÃüÁîÐеĿÉÓÃÐÔ¶¼²»Í¬¡£ÎÒÖªµÀºÜ¶àÈË»¹ÔÚ Mac OS X£¨ÔËÐÐij¸ö°æ±¾µÄ BSD£©´ÓÊ¿ª·¢£¬Òò´ËÎÒ¾¡Á¿±£³ÖʾÀýÃüÁîµÄͨÓÃÐÔ£¬È·±£ÒÆÖ²·½±ã¡£

ÃüÁîÐиÅÊö

PHP Command Line Interface (CLI) Server Application Programming Interface (SAPI) ÔÚ PHP V4.2.0 ¿ªÊ¼·¢²¼£¬ÓÃÓÚÊÔÑéÄ¿µÄ¡£µ½ V4.3.0 ʱ£¬ÒѾ­Êܵ½ÍêÕûÖ§³Ö²¢ÇÒĬÈÏÆôÓá£PHP CLI SAPI ÔÊÐíÄú¿ª·¢ PHP Ö§³ÖµÄ shell ½Å±¾£¬ÉõÖÁÊÇ»ùÓÚ×ÀÃæµÄ½Å±¾¡£ÊÂʵÉÏ£¬¿ÉÒÔÓà PHP ´´½¨¿ÉÖ±½Ó´ÓÃüÁîÐÐÔËÐеŤ¾ß¡£²ÉÓÃÕâÖÖ·½Ê½£¬PHP ¿ª·¢ÈËÔ±¿ÉÒÔÏñ Perl¡¢AWK¡¢Ruby »ò shell ³ÌÐòÔ±Ò»Ñù¸ßЧ¡£

±¾ÎÄ̽¾¿¹¹½¨µ½ PHP ÖеŤ¾ß£¬ÈÃÄúÁ˽â PHP ÔËÐеĵײã shell »·¾³ºÍÎļþϵͳ¡£PHP ΪִÐÐÍⲿÃüÁîÌṩ´óÁ¿º¯Êý£¬ÆäÖаüÀ¨ shell_exec()¡¢exec()¡¢passthru() ºÍ system()¡£ÕâЩÃüÁîÊÇÏàËÆµÄ£¬µ«ÎªÄúÔËÐеÄÍⲿ³ÌÐòÌṩ²»Í¬µÄ½çÃæ¡£ËùÓÐÕâЩÃüÁî¶¼ÑÜÉúÒ»¸ö×Ó½ø³Ì£¬ÓÃÓÚÔËÐÐÄúÖ¸¶¨µÄÃüÁî»ò½Å±¾£¬²¢ÇÒÿ¸ö×Ó½ø³Ì»áÔÚÃüÁîÊä³öдµ½±ê×¼Êä³ö (stdout) ʱ²¶×½ËüÃÇ¡£

shell_exec()

shell_exec() ÃüÁîÐÐʵ¼ÊÉϽöÊÇ·´Æ²ºÅ (`) ²Ù×÷·ûµÄ±äÌå¡£Èç¹ûÄú±àд¹ý shell »ò Perl ½Å±¾£¬Äú¾ÍÖªµÀ¿ÉÒÔÔÚ·´Æ²ºÅ²Ù×÷·ûÄÚ²¿²¶×½ÆäËûÃüÁîµÄÊä³ö¡£ÀýÈ磬Çåµ¥ 1 ÏÔʾÁËÈçºÎʹÓ÷´Æ²ºÅÔÚµ±Ç°Ä¿Â¼Öлñȡÿ¸öÎı¾£¨.txt£©µÄµ¥´Ê¼ÆÊý¡£

Çåµ¥ 1. ʹÓ÷´Æ²ºÅ¼ÆËãµ¥´ÊÊýÁ¿

#! /bin/sh
number_of_words=`wc -w *.txt`
echo $number_of_words

#result would be something like:
#165 readme.txt 388 results.txt 588 summary.txt
#and so on....

ÔÚÄúµÄ PHP ½Å±¾ÖУ¬Äú¿ÉÒÔÔÚ shell_exec() ÖÐÔËÐÐÕâ¸ö¼òµ¥µÄÃüÁÈçÇåµ¥ 2 Ëùʾ£¬²¢»ñÈ¡ÏëÒªµÄ½á¹û¡£ÕâÀï¼ÙÉèÔÚͬһ¸öĿ¼ÏÂÓÐһЩÎı¾Îļþ¡£

Çåµ¥ 2. ÔÚ shell_exec() ÖÐÔËÐÐÏàͬµÄÃüÁî

<?php
$results = shell_exec('wc -w *.txt');
echo $results;
?>

ÔÚͼ 1 ÖпÉÒÔ¿´µ½£¬»ñµÃµÄ½á¹ûÓë´Ó shell ½Å±¾µÃµ½µÄÒ»Ñù¡£ÕâÊÇÒòΪ shell_exec() ÔÊÐíÄúͨ¹ý shell ÔËÐÐÍⲿ³ÌÐò£¬È»ºóÒÔ×Ö·û´®µÄÐÎʽ·µ»Ø½á¹û¡£

ͼ 1. ͨ¹ý shell_exec() ÔËÐÐ shell ÃüÁîµÄ½á¹û

×¢Ò⣬½öʹÓÃºóÆ²ºÅ²Ù×÷·ûÒ²»áµÃµ½ÏàͬµÄ

Çåµ¥ 3. ½öʹÓÃºóÆ²ºÅ²Ù×÷·û

<?php
$results = `wc -w *.txt`;
echo $results;
?>

Çåµ¥ 4 ¸ø³öÁËÒ»ÖÖ¸ü¼Ó¼òµ¥µÄ·½·¨¡£

Çåµ¥ 4. ¸ü¼Ó¼òµ¥µÄ·½·¨

<?php
echo `wc -w *.txt`;
?>

ͨ¹ý UNIX ÃüÁîÐÐºÍ shell ½Å±¾Äܹ»Íê³ÉºÜ¶à¶«Î÷£¬ÖªµÀÕâµãºÜÖØÒª¡£ÀýÈ磬Äú¿ÉÒÔʹÓÃÊúÏß½«ÃüÁîÁ¬½ÓÆðÀ´¡£ÄúÉõÖÁ¿ÉÒÔʹÓòÙ×÷·ûÔÚÆäÖд´½¨ shell ½Å±¾£¬²¢ÇÒ½öµ÷Óà shell ½Å±¾£¨¸ù¾ÝÐèҪʹÓûò²»Ê¹ÓòÎÊý£©¡£

ÀýÈ磬Èç¹ûÄú½öÏ£Íû¼ÆËã¸ÃĿ¼ÏµÄǰ 5 ¸öÎı¾ÎļþµÄµ¥´ÊÊý£¬ÄÇô¿ÉÒÔʹÓÃÊúÏß (|) ½« wc ºÍ head ÃüÁîÁ¬½ÓÆðÀ´¡£ÁíÍ⣬Äú»¹¿ÉÒÔ½«Êä³ö½á¹û·Åµ½ pre ±ê¼ÇÄÚ²¿£¬ÈÃËüÄܹ»¸üÃÀ¹ÛµØ³ÊÏÖÔÚ Web ä¯ÀÀÆ÷ÖУ¬ÈçÏÂËùʾ¡£

Çåµ¥ 5. ¸ü¼Ó¸´Ô shell ÃüÁî

<?php
$results = shell_exec('wc -w *.txt | head -5');
echo "<pre>".$results . "</pre>";
?>

ͼ 2 ÑÝʾÁËÔËÐÐÇåµ¥ 5 µÄ½Å±¾µÃµ½µÄ½á¹û¡£

ͼ 2. ´Ó shell_exec() ÔËÐиü¸´Ô shell ÃüÁîµÃµ½µÄ½á¹û

ÔÚ±¾ÎĵĺóÃæ²¿·Ö£¬Äú½«Ñ§Ï°ÈçºÎʹÓà PHP ΪÕâЩ½Å±¾´«µÝ²ÎÊý¡£ÏÖÔÚÄú¿ÉÒÔ½«Ëü¿´×÷ÔËÐÐ shell ÃüÁîµÄÒ»ÖÖ·½·¨£¬µ«Òª¼ÇסÄúÖ»ÄÜ¿´µ½±ê×¼Êä³ö¡£Èç¹ûÃüÁî»ò½Å±¾³öÏÖ´íÎó£¬Äú½«¿´²»µ½±ê×¼µÄ´íÎó (stderr)£¬³ý·ÇÄúͨ¹ýÊúÏß½«ËüÌí¼Óµ½ stdout¡£

passthru()

passthru() ÔÊÐíÄúÔËÐÐÍⲿ³ÌÐò£¬²¢ÔÚÆÁÄ»ÉÏÏÔʾ½á¹û¡£Äú²»ÐèҪʹÓà echo »ò return À´²é¿´½á¹û£»ËüÃÇ»áÏÔʾÔÚä¯ÀÀÆ÷ÉÏ¡£Äú¿ÉÒÔÌí¼Ó¿ÉÑ¡µÄ²ÎÊý£¬¼´±£´æ´ÓÍⲿ³ÌÐò·µ»ØµÄ´úÂëµÄ±äÁ¿£¬±ÈÈç±íʾ³É¹¦µÄ 0£¬ÕâΪµ÷ÊÔÌṩ¸üºÃµÄ»úÖÆ¡£

ÔÚÇåµ¥ 6 ÖУ¬ÎÒʹÓà passthru() ÃüÁîÔËÐÐÔÚÇ°ÃæÐ¡½ÚÔËÐеĵ¥´Ê¼ÆÊý½Å±¾¡£ÈçÄúËù¼û£¬ÎÒ»¹Ìí¼ÓÒ»¸ö°üº¬·µ»Ø´úÂëµÄ $returnval ±äÁ¿¡£

Çåµ¥ 6. ʹÓà passthru() ÃüÁîÔËÐе¥´Ê¼ÆÊý½Å±¾

<?php
passthru('wc -w *.txt | head -5',$returnval);
echo "<hr/>".$returnval;
?>

×¢Ò⣬ÎÒ²»ÐèҪʹÓà echo ·µ»ØÈκζ«Î÷¡£½á¹û»áÖ±½ÓÏÔʾÔÚÆÁÄ»ÉÏ£¬ÈçÏÂËùʾ¡£

ͼ 3. ʹÓà return ´úÂëÔËÐÐ passthru() ÃüÁîµÄ½á¹û

ÔÚÇåµ¥ 7 ÖУ¬ÎÒͨ¹ýɾ³ý½Å±¾Í·²¿µÄ 5 Ç°ÃæµÄ¶ÌºáÏß (-) ÒýÈëÒ»¸öС´íÎó¡£

Çåµ¥ 7. ÔÚµ¥´Ê¼ÆÊý½Å±¾ÖÐÒýÈëÒ»¸ö´íÎó

<?php
//we introduce an error below (removing - from the head command)

passthru('wc -w *.txt | head 5',$returnval);
echo "<hr/>".$returnval;
?>

×¢Ò⣬½Å±¾Î´Äܰ´ÕÕÔ¤ÆÚÔËÐС£ÄúµÃµ½µÄÊÇÒ»¸ö¿Õ°×µÄÆÁÄ»£¬Ò»ÌõˮƽÏߺͷµ»ØÖµ 1£¬Èçͼ 4 Ëùʾ¡£Õâ¸ö·µ»Ø´úÂëͨ³£±íÃ÷·¢ÉúÁËijЩ´íÎó¡£Èç¹ûÄܹ»²âÊÔ·µ»Ø´úÂ룬²éÕÒºÍÐÞ¸´´íÎó¾ÍÈÝÒ×¶àÁË¡£

ͼ 4. ʹÓà passthru() ʱ²é¿´´íÎó´úÂë

exec()

exec() ÃüÁîÓë shell_exec() ÏàËÆ£¬²»Í¬Ö®´¦ÊÇËü·µ»ØÊä³öµÄ×îºóÒ»ÐУ¬²¢ÇÒ¿ÉÑ¡µØÓÃÃüÁîµÄÍêÕûÊä³öºÍ´íÎó´úÂëÌî³äÊý×é¡£Çåµ¥ 8 չʾÁ˵±ÔËÐÐ exec() ¶ø²»²¶×½Êý¾ÝÊý×éÖеÄÊý¾Ýʱ·¢ÉúµÄÊÂÇé¡£

Çåµ¥ 8. ÔËÐÐ exec() ¶ø²»²¶×½Êý¾ÝÊý×éÖеÄÊý¾Ý

<?php
$results = exec('wc -w *.txt | head -5');
echo $results;

#would print out just the last line or results, i.e.:
#3847 myfile.txt
?>

ΪÁ˲¶×½Êý×éÖеĽá¹û£¬Òª½«¸ÃÊý×éµÄÃû³Æ×÷ΪµÚ¶þ¸ö²ÎÊýÌí¼Óµ½ exec()¡£ÎÒÔÚÇåµ¥ 9 ÖÐÖ´ÐÐÁËÕâ¸ö²½Ö裬²¢ÒÔ $data ×÷ΪÊý×éµÄÃû³Æ¡£

Çåµ¥ 9. ´Ó exec() ²¶×½Êý¾ÝÊý×éµÄ½á¹û

<?php
$results = exec('wc -w *.txt | head -5',$data);
print_r($data);

#would print out the data array:
#Array ( [0]=> 555 text1.txt [1] => 283 text2.txt)
?>

ÔÚ²¶×½Êý×éÖеĽá¹ûÖ®ºó£¬Äú¿ÉÒÔ¶ÔÿÐнøÐÐһЩ´¦Àí¡£ÀýÈ磬Äú¿ÉÒÔÔÚµÚÒ»¸ö¿Õ¸ñ´¦½øÐл®·Ö£¬½«·ÖÀëµÄÖµ´æ´¢ÔÚÊý¾Ý¿â±íÖУ¬»ò¶Ôÿ¸öÐÐÓ¦ÓÃÌØ¶¨µÄ¸ñʽ»ò±ê¼Ç¡£

system()

ÈçÇåµ¥ 10 Ëùʾ£¬system() ÃüÁîÊÇÒ»ÖÖ»ìºÏÌå¡£ËüÏñ passthru() Ò»ÑùÖ±½ÓÊä³ö´ÓÍⲿ³ÌÐò½ÓÊÕµ½µÄÈκζ«Î÷¡£Ëü»¹Ïñ exec() Ò»Ñù·µ»Ø×îºóÒ»ÐУ¬²¢Ê¹·µ»Ø´úÂë¿ÉÓá£

Çåµ¥ 10. system() ÃüÁî

<?php
system('wc -w *.txt | head -5');

#would print out:
#123 file1.txt 332 file2.txt 444 file3.txt
#and so on
?>

һЩÀý×Ó

ÏÖÔÚÄúÒѾ­Á˽âÈçºÎʹÓÃÕâЩ PHP ÃüÁµ«¿ÉÄÜÈÔÈ»ÓÐһЩÒÉÎÊ¡£ÀýÈ磬ʲôʱºòÓ¦¸ÃʹÓÃÄĸöÃüÁÕâÍêÈ«ÓÉÄúµÄÐèÇó¾ö¶¨¡£

´ó¶àÊýÇé¿öÏ£¬ÎÒʹÓà exec() ÃüÁîºÍÊý¾ÝÊý×é´¦ÀíËùÓж«Î÷¡£»òÕß¶Ô¸ü¼òµ¥µÄÃüÁîʹÓà shell_exec()£¬ÓÈÆäÊDz»¹ØÐĽá¹ûʱ¡£Èç¹û½öÐè·µ»ØÒ»¸ö shell ½Å±¾£¬ÎÒ¾ÍʹÓà passthru()¡£Í¨³££¬ÎÒÔÚ²»Í¬µÄ³¡ºÏÖÐʹÓò»Í¬µÄº¯Êý£¬²¢ÇÒÓÐʱËüÃÇÊÇ¿ÉÒÔ»¥»»µÄ¡£ÕâÍêȫȡ¾öÓÚÎÒµÄÐÄÇéºÍҪʵÏÖµÄÄ¿µÄ¡£

Äú¿ÉÄÜÌáÎʵÄÁíÒ»¸öÎÊÌâÊÇ ¡°ËüÃǵij¤´¦ÊÇʲô£¿¡±¡£Èç¹ûÄúûÓÐÍ·Ð÷£¬»òÕßÒ»¸öÏîÄ¿·Ç³£ÊʺÏʹÓà shell ÃüÁµ«²»ÖªµÀÈçºÎʹÓã¬ÄÇôÎÒÔÚÕâÀïÌṩһЩ¼û½â¡£

Èç¹ûÄúÕýÔÚ±àдһ¸öÌṩ¸÷ÖÖ±¸·Ý»òÎļþ´«Ê书ÄܵÄÓ¦ÓóÌÐò£¬Äú¿ÉÒÔÑ¡ÔñʹÓà shell_exec() »òÕâÀïÌṩµÄÆäËûÃüÁîÖ®Ò»ÔËÐÐ rsync Ö§³ÖµÄ shell ½Å±¾¡£Äú¿ÉÒÔ±àд shell ½Å±¾Ê¹Æä°üº¬±ØÒªµÄ rsync ÃüÁȻºóʹÓà passthru() ¸ù¾ÝÓû§µÄÃüÁî»ò cron ×÷ÒµÖ´ÐÐËü¡£

ÀýÈ磬һλÓû§ÔÚÄúµÄÓ¦ÓóÌÐòÖÐÓÐÊʵ±µÄȨÏÞ£¨±ÈÈç¹ÜÀíԱȨÏÞ£©£¬ËûÏ뽫 50 ¸ö PDF Îļþ´ÓÒ»¸ö·þÎñÆ÷·¢Ë͵½ÁíÒ»¸ö·þÎñÆ÷¡£ÄÇô£¬¸ÃÓû§ÐèÒªÔÚÓ¦ÓóÌÐòÖе¼º½µ½ÕýÈ·µÄλÖ㬵¥»÷ Transfer£¬Ñ¡ÔñÐèÒª·¢Ë굀 PDF£¬È»ºóµ¥»÷ Submit¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬¸Ã±íµ¥Ó¦¸ÃÓÐÒ»¸ö PHP ½Å±¾£¬ËüʹÓ÷µ»ØÑ¡Ïî±äÁ¿Í¨¹ý passthru() ÔËÐÐ rsync ½Å±¾£¬ÕâÑùÄú¾ÍÖªµÀÊÇ·ñ·¢ÉúÎÊÌ⣬ÈçÏÂËùʾ¡£

Çåµ¥ 11. ͨ¹ý passthru() ÔËÐÐ rsync ½Å±¾µÄʾÀý PHP ½Å±¾

<?php
passthru('xfer_rsync.sh',$returnvalue);

if ($returnvalue != 0){
//we have a problem!
//add error code here
}else{
//we are okay
//redirect to some other page
}
?>

Èç¹ûÄúµÄÓ¦ÓóÌÐòÐèÒªÁгö½ø³Ì»òÎļþ£¬»ò¹ØÓÚÕâЩ½ø³Ì»òÎļþµÄÊý¾Ý£¬Äú¿ÉÒÔʹÓñ¾ÎÄ×ܽáµÄÃüÁîÖ®Ò»ÇáËÉʵÏÖÕâ¸öÄ¿µÄ¡£ÀýÈ磬һ¸ö¼òµ¥µÄ grep ÃüÁîÄܹ»°ïÖúÄúÕÒµ½Æ¥ÅäÌØ¶¨ËÑË÷Ìõ¼þµÄÎļþ¡£½«ËüÓë exec() ÃüÁîÒ»ÆðʹÓÿÉÒÔ½«½á¹û±£´æµ½Ò»¸öÊý×éÖУ¬ÕâÔÊÐíÄú¹¹½¨Ò»¸ö HTML ±í»ò±íµ¥£¬ËüÃÇÓÖ½øÒ»²½ÔÊÐíÄúÔËÐÐÆäËûÃüÁî¡£

µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÌÖÂÛÁËÓû§Éú³ÉµÄʼþ ¡ª¡ª Óû§Ö»Òª°´Ï°´Å¥»òµ¥»÷Á´½Ó£¬PHP ¾ÍÔËÐÐÏàÓ¦µÄ½Å±¾¡£Äú»¹¿ÉÒÔ½«¶ÀÁ¢µÄ PHP ½Å±¾ºÍ cron »òÆäËûÈճ̰²ÅųÌÐòÒ»ÆðʹÓ㬴ӶøÊµÏÖһЩÓÐȤµÄЧ¹û¡£ÀýÈ磬Èç¹ûÄúÒ»¸ö±¸·Ý½Å±¾£¬Äú¿ÉÒÔͨ¹ý cron ÔËÐÐËü£¬»òÕß½«Ëü´ò°üµ½ PHP ½Å±¾ºóÔÚÔËÐС£ÎªÊ²Ã´ÒªÕâÑù×ö£¿ÕâËÆºõÊǶàÓàµÄ£¬²»ÊÇÂ𣿲»ÊÇÕâÑùµÄ ¡ª¡ª ÄúÐèÒªÕâÑù¿¼ÂÇ£¬Äú¿ÉÒÔͨ¹ý exec() »ò passthru() ÔËÐб¸·Ý½Å±¾£¬È»ºó¸ù¾Ý·µ»Ø´úÂëÖ´ÐÐһЩÐÐΪ¡£Èç¹û³öÏÖ´íÎó£¬Äú¿ÉÒÔ½«Æä¼Ç¼µ½´íÎóÈÕÖ¾»òÊý¾Ý¿âÖУ¬»ò·¢ËÍÒ»·â¾¯¸æµç×ÓÓʼþ¡£Èç¹û½Å±¾³É¹¦£¬Äú¿ÉÒÔ½«Ô­Ê¼µÄÊä³öת´¢µ½Êý¾Ý¿â£¨ÀýÈ磬rsync ÓÐÒ»¸öÏ꾡£¨verbose£©Ä£Ê½£¬¶ÔËæºóÕï¶ÏÎÊÌâÊ®·ÖÓÐÓã©¡£

°²È«

ÎÒÃÇÔÚÕâÀï¼òÒªÌÖÂÛһϰ²È«ÐÔ£ºÈç¹ûÄú½ÓÊÜÓû§ÊäÈë²¢½«ÐÅÏ¢´«µÝµ½ shell£¬ÄÇô×îºÃ¹ýÂËÓû§ÊäÈ롣ɾ³ýÄúÈÏΪÓꦵÄÃüÁîºÍ²»ÔÊÐíµÄÄÚÈÝ£¬±ÈÈç sudo£¨×÷Ϊ³¬¼¶Óû§ÔËÐУ©»ò rm£¨É¾³ý£©¡£ÊÂʵÉÏ£¬Äú¿ÉÄܲ»Ï£ÍûÓû§·¢ËÍ¿ª·ÅµÄÇëÇ󣬶øÊÇÈÃËûÃÇ´ÓÁбíÖÐÑ¡Ôñ¡£

ÀýÈ磬ÄúÔËÐÐÒ»¸ö½ÓÊÜÎļþÁбí×÷Ϊ²ÎÊýµÄ´«Êä³ÌÐò£¬ÄúÓ¦¸Ãͨ¹ýһϵÁи´Ñ¡¿òÁгöËùÓÐÎļþ¡£Óû§¿ÉÒÔÑ¡ÔñºÍÈ¡ÏûÑ¡ÔñÎļþ£¬²¢Í¨¹ýµ¥»÷ Submit ¼¤»î rsync shell ½Å±¾¡£Óû§²»ÄÜ×Ô¼ºÊäÈëÎļþ»òʹÓÃÕýÔò±í´ïʽ¡£

½áÊøÓï

ÔÚ±¾ÎÄÖУ¬ÎÒÑÝʾÁËʹÓà PHP ÃüÁîÔËÐÐ shell ½Å±¾ºÍÆäËûÃüÁîµÄ»ù´¡ÖªÊ¶¡£ÕâЩ PHP ÃüÁî°üÀ¨ shell_exec()¡¢exec()¡¢passthru() ºÍ system()¡£ÏÖÔÚ£¬ÄúÓ¦¸ÃÔÚ×Ô¼ºµÄÓ¦ÓóÌÐòÖÐʵ¼ùѧµ½µÄ֪ʶ¡£

   
2927 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕ Ïà¹ØÎĵµ Ïà¹Ø¿Î³Ì



Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Àí½âJavascript
·ÇµäÐÍajaxʵ¼ù
³¹µ×µÄAjax
javascript ʹÓÃCookies
ʹÓà jQuery ¼ò»¯ Ajax ¿ª·¢


Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ


ijº½¿Õ¹«Ë¾IT²¿ JavaScriptʵ¼ù
ijµçÊÓÈí¼þ HTML5ºÍJavaScript
Öк½ÐÅ JavaScript¸ß¼¶Ó¦Óÿª·¢
´óÇìÓÍÌï web½çÃæAjax¿ª·¢¼¼Êõ
ºÍÀûʱ ʹÓÃAJAX½øÐÐWEBÓ¦Óÿª·¢