1。写shell脚本
!#/bin/sh
svn --username hanhh --password 111111 up https://192.168.1.223/svn/website_php/source /data/www/navidog.cn/
2。运行命令:crontab -e
3。添加每分钟都执行脚本:* * * * * /bin/sh /data/shell/svn.sh > /dev/null 2>&1
* * * * * /bin/sh /data/shell/svn.sh 这个没有添加 /dev/null 的可以在 tail -f /var/spool/mail/root 中查看错误
4. tail -f /var/log/cron:查看crontab 的运行日志
5。这个中文问题可以在执行脚本中添加环境变量 ,就可以更新了
!#/bin/sh
source /etc/profile
svn --username hanhh --password 111111 up https://192.168.1.223/svn/website_php/source /data/www/navidog.cn/
以下是示例代码
<?php
if($_GET['opt'] == 'up'){
$checkout = "svn --username hanhh --password 111111 up https://192.168.1.223/svn/website_php/source /data/www/navidog.cn";
//$checkout = "svn --username hanhh --password 111111 up http://192.168.1.223/svn/website_php/source /data/www/tmp";
$output = array();
$tmp = exec($checkout,$output);
if(is_array($output) && !empty($output))
foreach($output as $k=>$v){
echo "$v<br>";
}
}elseif($_GET['opt'] == 'stream'){
$svn_user = "hanhh";
$svn_pwd = "111111";
$svn_co_dir =" https://192.168.1.223/svn/website_php/source";
$itme_dir = '/data/www/tmp';
header("Cache-Control:no-cache,must-revalidate");
$handle = popen("svn up --username {$svn_user} --password {$svn_pwd} $svn_co_dir $itme_dir", 'r');
$read = stream_get_contents($handle);//需要 PHP5 或更高版本
echo "<pre>";
printf($read);
echo "</pre>";
pclose($handle);
}else{
?>
<ul>
<li><a href="/admin" target="_blank">后台</a></li>
<li><a href="http://pay.navidog.cn" target="_blank">前台</a></li>
<li><a href="info.php" target="_blank">info</a></li>
<li>-----</li>
<li><a href="index.php?opt=up" target="_blank">svn-up</a></li>
</ul>
<?}?>