PHP 使用curl 执行远程服务器的一个shell脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 使用curl 执行远程服务器的一个shell脚本相关的知识,希望对你有一定的参考价值。
求高手们指教。。。
就是用php执行远程服务器上一个shell脚本,这个shell脚本是一个分析数据的脚本,我这个PHP页面就是提供一些查询条件,然后需要把shell执行的分析结果获取到,希望懂的人可以指教一二!就20分了 都在这了
可以啊,curl可以,http也可以啊
首先
假如 远程服务器有这些文件php脚本和shell脚本(分析数据的脚本)是在目标服务器上
a.php
data.php
data.sh
然后在a脚本里面运行shell命令,exec("cd ~/php/ && php ./data.php &");
这样php就会运行data.php 可以在data.php里面在运行sh脚本
或者直接在a.php里面运行sh脚本
然后把计算好的数据存入数据库
这样你就可以用http或者curl去激活a.php.然后分析数据的脚本也就运行了
大概了解没?
大哥 你看明白没啊 是要给远程发送shell命令 不是本地执行好吧?
远程动态输入命令?貌似不太安全啊~!
可以这样。a.php?cmd=cd ~/ && sh data.sh
然后a.php里面这样写
exec("$_GET["cmd"]");
太危险,相当不推荐
可以做好命令,然后去执行
a.php?cmd=a
然后a.php里面这样写
switch ($_GET["cmd"])
case "a":
exec("cd ~/php/ && php ./data.php &");
break;
case "b":
exec("cd ~/php/ && php ./xxxx.php &");
break;
参考技术A 如果你想在A服务器上 用php 访问 B服务器,在B上的shell执行,返回结果给A,直接用PHP访问需要在B上建立一个数据吐出的口,比如最简单的,在B上也放一个php文件,php文件调用本地的shell执行,然后吐出数据,A上,用PHP的file_get_contents()或是 fsockopen 或者 php的 curl 都可以。直接访问B提供的网页地址,获取数据。剩下的就是在B上用PHP触发shell,直接用 exec() 或者 system() 或者 popen等等,非常多的办法来启动shell。 参考技术B 可以啊,curl可以,http也可以啊
首先
假如 远程服务器有这些文件php脚本和shell脚本(分析数据的脚本)是在目标服务器上
a.php
data.php
data.sh
然后在a脚本里面运行shell命令,exec("cd ~/php/ && php ./data.php &");
这样php就会运行data.php 可以在data.php里面在运行sh脚本
或者直接在a.php里面运行sh脚本
然后把计算好的数据存入数据库
这样你就可以用http或者curl去激活a.php.然后分析数据的脚本也就运行了
大概了解没?
大哥 你看明白没啊 是要给远程发送shell命令 不是本地执行好吧?
远程动态输入命令?貌似不太安全啊~!
可以这样。a.php?cmd=cd ~/ && sh data.sh
然后a.php里面这样写
exec("$_GET["cmd"]");
太危险,相当不推荐
可以做好命令,然后去执行
a.php?cmd=a
然后a.php里面这样写
switch ($_GET["cmd"])
case "a":
exec("cd ~/php/ && php ./data.php &");
break;
case "b":
exec("cd ~/php/ && php ./xxxx.php &");
break;
参考技术C 这问题问的...............
你现在是碰到问题了?还是需要别人给你写段代码?
这个问题没有太多难点吧,safe_mode_exec_dir模式打开,用system()函数执行脚本,你的脚本返回正常结果,不就ok了。追问
大哥 你看明白没啊 是要给远程发送shell命令 不是本地执行好吧
无法使用PHP CURL下载远程图像
[我正在尝试使用CURL和php下载远程图像。下面是我的代码。但是,每当我尝试打开下载的图像时,总会得到:
Cannot read this file. This is not a valid bitmap file, or its format is not currently supported.
任何人都知道我的代码有什么问题吗?谢谢。
$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://imgur.com/a/E5ehGuv";
$imageName = pathinfo( $image, PATHINFO_BASENAME );
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $image );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
$source = curl_exec( $ch );
$info = curl_getinfo($ch);
curl_close( $ch );
file_put_contents( $imageName, $source ));
您的问题是此URL。
$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://imgur.com/a/E5ehGuv";
如果您转到此网址
您将看到图像页面,但NOT图像路径。 pathinfo()
功能在这里不起作用,并引发错误。
如果右键单击该图像,然后在新选项卡中打开图像,您将看到图像路径,在这种情况下为
https://i.imgur.com/Cbiu8Ef.png
所以您可以尝试使用此URL
$image ="http://api.scrapestack.com/scrape?access_key=TOKEN-HERE&url=https://i.imgur.com/Cbiu8Ef.png";
以上是关于PHP 使用curl 执行远程服务器的一个shell脚本的主要内容,如果未能解决你的问题,请参考以下文章